STM32F4-Discovery, начало работы (часть 1)

STM32F4-Discovery уже получила очень широкое распространение, а в нашем сообществе о ней, до обидного мало информации, поэтому поделюсь интересным ресурсом.
В первом примере описывается начало работы с IDE Atollic True Studio, приводятся исходный код демо-программы(архив защищен, но добрый дядька Enrico M. с радостью по первому требованию вышлет пароль) и пояснение ее работы. Если имеются проблемы с английским, то там же можно найти мой перевод на русский язык.
P.S. пока не спеша перевожу второй пример, там уже по-интереснее — работа с RTOS.
  • +1
  • 12 января 2012, 11:12
  • Sheld

Комментарии (78)

RSS свернуть / развернуть
«но добрый дядька Enrico M. с радостью по первому требованию вышлет пароль»
А сразу выложить в сообщество не судьба?
— Да, вроде все кто хотел уже поигрались с ней :)
Я побаловался и отложил, при появлении подходящей задачи бум описывать её.
0
  • avatar
  • ZiB
  • 12 января 2012, 11:19
А как же копирайт? :)
0
упсики, не предусмотрел :(
0
Не у всех была возможность получить данную плату.
P.S.: а если учесть ещё что по f3, имеющейся у гораздо большего числа людей, инфы тоже не густо, то ничего удивительного.
0
Да вроде у всех была, только мою, например, похоже почта профакапила, так как уже два с половиной месяца идет.
0
А, нет, все-таки пришло. Только стоило сказать, что потеряли, через 2 дня уведомление в ящике. Ровно два с половиной месяца. Первый раз из штатов так долго шло.
Начну смотреть через пару недель.
0
Ну где же статья. Я уже всю голову поломал, разбираясь как подключить к STM32F4-Discovery LCD-TFT на SSD1289. С нетерпением жду… думаю не один я такой!!!
0
Я подключил к STM32F4-Discovery LCD-TFT 3.2дюйма 320х240 пикселей со встроенным контроллером SSD1289, купленный в космодроме, вначале использовал GPIO, а потом применил встроенный контролер параллельной шины FSMC. Была мысль написать небольшую статью на эту тему с исходниками, если интересует?…
0
Такая статейка очень интересует!
0
Только вчера получил из Китая посылку с TFT дисплеем, скоро приедет CMOS-камера, опыта с cortex m4 — так что очень интересно!
0
Да, интересует, причем весьма. У меня и дискавери есть, и просто контроллеры валяются, и даже плата есть куда их можно ставить, а готового софта совсем мало :(
0
У меня LCD 2,8" QVGA на базе SSD9325(ILI9325), с разведенным на шлейфом интерфейсом i80/16bit. Ногодрыганием управление понятно, а вот по FSMC — это уже очень даже интерестно…

Заявлена поддержка контроллером управления по SPI… Облом заключается в отсутствии соответствующего интерфейса… Производителям что, сильно затратно добавить на гибкий шлейф дисплея дополнительно 4шт дорожки для SPI интерфейса?
0
Контролеры обычно поддерживают разнообразные интерфейсы, и параллельные и последовательные. Производители LCD дисплеев уже самостоятельно конфигурируют контроллер для роботы с нужным интерфейсом. Существует достаточно большое количество дисплеев, где дополнительно выведен и последовательный интерфейс на «широкий» шлейф. Последовательный интерфейс используют, обычно, где не нужна большая скорость обновления экрана и ограниченно пространство, например мобильные телефоны (LCD с «узкими» шлейфами).
0
Последовательный интерфейс используют, обычно, где не нужна большая скорость обновления экрана
А вот здесь желательно поподробнее… Какая, обычно, скорость обновления экрана по SPI?
0
Имеется введу чтобы обновить информацию на экране(записать данные во внутреннюю GRAM), требуется различное время для пересылки данных по параллельной и последовательной шине. Например с применением последовательной шины, полностью обновить данные во внутренней GRAM мы сможем 10Mb/(320*240*16) = 8,14 раз в секунду (где 10Mb — скорость SPI 10Mbit/sec), соответственно при использовании параллельной шины — 10Mhw/(320*240) = 130 раз в секунду (где 10Mhw — максимальное количество транзакций по параллельной шине Миллионов полу-слов(16bit) в секунду). Реально скорости обновления информации еще меньше. И не путайте с частотой развертки (она обычно 60-80 Гц для LCD) это разные параметры.
0
Вообще считается, что обновлять экран 24 раза в секунду это вполне достаточно для того, что-бы человеческий глаз не замечал мерцания. Именно такая частота 24 Гц используется например в кино. В телевидении используется частота обновления экрана 25 Гц, но это у «нас», а у «них» 30 Гц.
0
Эта частота для «экранов без памяти», то есть для экранов, которые надо обновлять, что бы информация вообще была видна на экране. «Экраны с памятью», каковыми являются большинство LCD модулей, частота обновления не имеет никакого отношения к частоте обмена с хостом (контроллером), обновлением занимается чип в самом экране и у него для этого есть память. Ну а скорость обмена с хостом влияет лишь на то, какого типа изображения можно показывать. Если она не достаточно то да, видео показать не получится, но статические картинки или (относительно) медленно изменяющиеся изображения (то же меню для юзера, например) будут показываться без проблем.
0
Я заразился идеей Microtouch, только на STM32. У него SPI до 18Mbit/s. Получается 18*10^3/(320*240*16)= ~14,6 раз в секунду. Полагаю, что для аля-Microtouch, менять картинку до 14 раз в секунду за глаза хватит, чтобы без оглядки уменьшить количество проводов соединения с дисплеем.

Как думаете, в промышленном устройстве, где ДЛЯ УПРАВЛЕНИЯ применяется LCD+Touchscreen, пользователю нормально воспринимать 14 кадров в секунду?
0
Как написал выше evsi «экраны с памятью» то есть со встроенным контроллером и памятью и предназначаются для организации интерфейса между машиной и человеком (меню, сенсорное управление и т.д.), то есть где нет необходимости выводить большой поток информации(например видео). Совершенно верно, для управления типа LCD+Touchscreen этого будет достаточно, я думаю даже меньшего количества кадров в секунду будет достаточно, а вот добавить анимацию может быть проблематично.
0
У STMicroelectronics есть плата STM3240G-EVAL на база STM32F4xx. В User Manual на плату присутствует схема подключения i80/16bit по FSMC — в самый раз для моего случая, однако выложена только прошивка, в исходном коде не покопаться… Так что с нетерпением жду статьи :)
0
Числа 26 января у них в солнечной Италии будут проходить семинары, где будет много практической работы с дисплеями, камерами и т.д.
Мне пообещали прислать все материалы, а я их естественно сюда выложу.
0
Есть у STMicroelectronics такая же плата только для STM32F2xx серии STM322xG-EVAL, исходники присутствуют в библиотеке стандартной периферии для STM32F2xx серии (stm32f2xx_stdperiph_lib). STM32F4xx и STM32F2xx полностью совместимы по периферии «Вверх» и pin-to-pin(то есть все что работает на STM32F2xx будет работать на STM32F4xx).
0
благодарствую за наводку
0
Прошу прощения, случайно поместил свой вопрjс Swiftу. Он адресовался ВАМ!… Ну где же статья. Я уже всю голову поломал, разбираясь как подключить к STM32F4-Discovery LCD-TFT на SSD1289. С нетерпением жду… думаю не один я такой!!!
0
Что делается? Опять не туда попал мой вопрос. Извиняюсь.
0
Классно, ну наконец-то появилась русскоязычная информация по STM32F4-Discovery. Спасибо очень помогло, жду с нетерпением новых переводов!
0
  • avatar
  • Aneg
  • 12 января 2012, 12:46
Очень рад, что помогло!
Второй перевод готов больше чем на половину, буду ускоряться.
0
Не спешите, дабы в угоду скорости не страдало качество. Я почерпнул из вашего перевода много полезного, необходимого и бывшего неясным после официальной доки от ST. Однако немного расстроила грамматика изложения. Даешь чистоту русского языка в публикациях, обещающих стать очень популярными :) З.Ы. Ни в коей мере не хочу показаться занудой (сам не идеален) и принизить ценность материала.
0
во второй части, очень надеюсь, халтуры будет меньше =)
0
Вообще на сайте ST уже давно лежит периферийная библиотека для F4, и она, как я понимаю, аналогична библиотеке для F10x. Так что, мне кажется, можно проекты с F10x аккуратно переносить на F4.

Более того, в даташитах приведены рекомендации по схемотехнике для перехода с F10x/2xx на F4.
0
Там заодно лежит не самых маленьких размеров документ (AN3427) о несовместимостях и о переносе. Причем «в лоб» не переносится даже с использованием периферийных библиотек.
0
К слову, библиотека периферии написана отвратно, за такой «дизайн» я бы выгонял без выходного пособия.
+1
стоит сейчас ненамного дороже, чем STM32VL discovery. Заказал себе в элитане. Обошлось 601 рубль + 200 доставка + страховка 4% от цены. На ебее дороже.
0
Купил, наконец-то две штуки. Сижу ковыряюсь.
Глупые вопросы, не ругайте сильно:
1) как в кейле подключить DSP-библиотеку
2) роюсь в ее исходниках, например в том же БПФ. Компилятор сам что-ли понимает, когда юзать всякие DSP-шные инструкции а-ля сложение с накоплением?
3) неужели нету хардверных синусов-косинусов а-ля fsincos в x86?
0
Тоже копаюсь в DSP CMSIS, насколько понял:
1)подключать её надо не к кейлу, а к проекту
2)компилятору в опциях указать USE FPU, это на вкладке Target в настройках проекта
3)FPU там не настолько продвинутый чтоб аппаратно реализовывать синусы косинусы
0
Подключил к STM32F4-Discovery дисплей 320х240(ili9325), через FSMC, правда пришлось кой что с платы сдуть, чтобы освободить занятые ножки. Пока реализовал минимум функциональности но всё работает, если кому интересно могу поделиться результатами
0
Да было бы интересно, а то стораюсь перенести проекты из stm32f1 в stm32f4 в IAR ewarm 6.30 а компилятор ругается, много всево непонятново, да и мало опыта и разобратся хочется.За ране спасибо.
0
компилировал и проверял под кейлом 4.23. За основу взял пример из папки boards/keil/.../GLCD_16bitIF_STM32F4xx.c. Так как в примере применяется чип в 144-ногом корпусе пришлось переделать инициализацию fsmc и gpio под 100-ногий чип примененный в плате. На текущий момент функциональность следующая: точка, символ, строка из флеш, озу, линия, прямоугольники, треугольники, окружность, сектор окружности, сетка аля осциллограф, кнопки. Если кому интересно говорите куда выложить исходники.
0
Полагаю, написать небольшой пост на эту тему и прицепить к нему исходники будет самым рациональным вариантом.
0
Кстати, да, было бы весьма интересно.
0
Кстати. Эта доска появилась на космодроме(украина) по вменяемой цене. В скором будущем собираюсь и ее прикупить. Будет вся коллекция.
0
  • avatar
  • a9d
  • 09 февраля 2012, 04:41
Спасибо.Недодумался о примере в кейле.Буду пробывать переносить в иар.
0
Вообще-то есть родная дока на эту тему.
0
Капаюсь в сайте ST об совместимости ф1 и ф4 но не как ненахожу, запутался в их доках.Подкинте сылку или номер типо ANxxxx,PMxxxx.Буду очень благодарен.
0
F1 и F4 семейства несовместимы на уровне прямого переноса кода. Отличия описаны а в следующих документах AN3364-Migration and compatibility guidelines
for STM32 microcontroller applications и более подробно в AN3427-Migrating applications from STM32F1 series to STM32F2 series. F2 и F4 при беглом взгляде по диагонали совместимы без применения напильника :). Документацию можно найти по ссылке www.st.com/internet/mcu/subclass/1520.jsp, в разделе Applications Note
0
Отличия F2/F4 в ядре (ну и частотах ядра, конечно). Остальное, в том числе вся периферия, одинакове. Собственно страницы и доки для F2 и F4 ссылаются на одни и те же аппноты для миграции, что, как бэ, намекает :)
0
Номера аппнотов неж привел камрад frog45. Их, на самом деле, достаточно просто находить — пробираемся, например через параметрический поиск, до нужного контроллера и идем на закладку Design Support. Там есть все документы так или иначе касающиеся либо конкретного проца, либо подсемейства, либо всего семейства вцелом. Иногда с таким подходом бывают заморочки, например, ссылка на AN3364 для семейства F4 есть, а на AN3427 — нет. Но в самом на первой странице AN3364 есть прямая отсылка на AN3427. Вобщем, с непривычки искать не очень удобно, но когда въезжаешь в логику организации этого добра, она выглядит достаточно рационально.
0
Есть предложение создать тему в форуме и там делится успехами и проблемами по F4 семейству, оно конечно если кому интересно.
0
начиная с выбора и настройки toolchain) А то хочу в эклипсе работать, а как прикрутить все не знаю(
0
TrueSTUDIO от Atollic вроде на основе эклипса сделан. Попробуй его. К тому же его можно использовать бесплатно без ограничения времени и размера кода.
0
Уже начал с ним, но тут какие-то ограничения по функционалу есть в Lite версии. Один breakpoint только можно при отладке ставить например, пока больше ничего не обнаружил.
0
Поддержка С++ отключена скорей всего.
0
Еще на выходе только elf файл получается. надо дополнительно в hex конвертировать
0
Я как то читал что берут фаил их оригинального эклипса и переписывают его. Потом увеличивается количество breakpoint.
0
И так же лечилось окно при старту… Но кажется сейчас его у же в новой аерсии нет.
0
C++ нет, интеграции с системами контроля версий нет, брейкпоинт один, окно с предложением купить полную версию появляется не только при запуске, запрет перенаправлений стандартного ввода-вывода (вместо printf и тд заглушки), вроде бы статистика по скомпилированному файлу порезана, листинга нет и тд… Ну и еще про баги некоторые пишут. А так, лично мне редактор кода понравился после MPLAB и фитоновского CodeMaster. Поддержка M4 в CooCox IDE планируется первом квартале 2012.
0
Полагаю любая инструкция пригодная для F1xx по установке и настройке тулчейна, подойдет и для F2/F4. Разве что периферийная либа другая.
0
www.emcu.it/STM32F4xx/STM32F4xx.html#Tutorial — по ссылке самое начало, и про выбор среды разработки и про всё остальное.
0
Ну кто-нибудь научите как подключить к STM32F4-Discovery, LCD-TFT на SSD1289.
0
По ссылке code.google.com/p/stm32radio/source/browse/trunk/stm32radio_examples/examples/4_gui_examples/ssd1289.c?spec=svn74&r=74 пример кода инициализации SSD1289 под STM32. Правда под STM32F4-Discovery прийдётся браться за напильник, доработать надо и плату и код
0
Там под F1xx, а хотелось бы под F4xx и на нашем родном и понятном языке. Linx_83 обещал статью по этому поводу, но видно не судьба… Может кто-нибудь возьмется за это правое дело? По поводу STM32F4-Discovery:
Плату дорабатывать, по моему, не нужно. Все развел и подключил. Ну болтается там пара светодиодов и еще пара элементов в параллель, но не мешают(как по мне). У меня дисплей инициализируется, запускается, можно цвет матрицы менять. А дальше мозгов не хватает, как текст, картинки и т.д. выводить. Мусор на экране и все…
0
В Кейле в папке примеров для платы MCBSTM32F400 есть файл GLCD_16bitIF_STM32F4xx там и картинки и текст и всё остальное правда под дугой ЖКИ но принцип один и тот же главное понять как точка выводится
0
За наводку спасибо конечно.
Что касается… главное понять как точка выводится… Так и я о том же. Вот если бы кто популярно объяснил.
0
Тут не столько про дискавери читать надо, сколько даташит на контроллер ЖКИ Если очень коротко то в ЖКИ есть встроенное ОЗУ, каждая ячейка которого отображает точку, принцип растровой графики вкл/выкл. Записывая в память ЖКИ данные вы тем самым поточечно формируете изображение, а встроенный контроллер его выводит на экран. Как реализовать надо смотреть в даташите на конкретный ЖККИ.
0
Спасибо, это понятно. А вот какой банк подключать??? FSMC_Bank1_NORSRAM???
0
Так он там один, посмотрите на местном форуме в теме STM32 + FSMC я выкладывал код инициализации контроллера FSMC, код рабочий из текущего проекта.
0
Ага уже посмотрел. Но все же пробовал подставлять с 1 по 4. Все равно цвет отображает, а картинку рвет.
0
Если не сложно, выложите рабочих функций отображения с кратким описанием аргументов.
0
Пиксели и линии выводить получается, а вот со шрифтами и изображением пока никак…
0
Все! С изображением картинок разобрался. Спасибо frog45 за подсказки! Теперь вожусь со шрифтами. Никто не поделится русскими буквачками?
0
0
у кейла в папке Board есть примеры для платы MCBSTM32F400 там есть всё для счастья и шрифты и картинки и линии
0
Спасибо. Там я уже все пересмотрел. Мене нужен русский шрифт.
0
Огромное спасибо. Буду разбираться.
0
e_mc2. Еще раз спасибо.
0
Не за что. Просто сам недавно осваивал дисплей на аналогичном контроллере. Если будут вопросы – пишите в личку.
0
может немного не в кассу, но все же.
у меня stm32f4discovery вроде как не видится компом. в диспетчере устройств она есть, прошивка st-link обновляется.
Ни Keil, ни CooIDE, ни ST-LINK прошивальщик плату не видят. уже пробовал ставить более старые версии ПО, последние тоже. виртуальных дисков в системе нет, кроме как от USB модема билайновского. что делать?
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.