Простой проект на STM32F030F4P6 (CoCoox IDE) перенос программы с ATMEGA48

Давно был сделан проект мед.прибора (проверка зрения) на ATMEGA48PA.
Приборчик совсем простой, есть 4 цветных светодиода, кнопками выбираем какой, следующей кнопкой яркость свечения, и следующей режим предявления (короткий импульс, пост.горение и триггер)В методу особо не вдавался, да и забыл.(давно было) :)
Короче заказчик говорит, что надо изготовить новую версию прибора с небольшими изменениями в алгоритме и добавить управление от ком порта (планирую Андроид планшет через USB OTG) Так как партия приличная и я имею с выпуска royalty, то имеет смысл сократить расходы.Поиск подходящего чипа привел к STM32F030F4P6 (в партии стоит около 17 рублей) Практически в 2 раза дешевле ATMEGA48 и корпус мельче (20 pin)
Проект перенес практически за пол дня.Все работает.Думаю для мелких поделок этот чип вполне гут. Отладку или прошивку можно делать по SWD или зашить через встроенный bootloader. Проверил работу через Андроид планшет (пока терминалом) 9600 все ок. BootLoader тоже со встроенным генератором работает. Выкладываю схему и тестовый проект на CoCoox. Использую PWM,UART с прерываниями и работу с GPIO. Все стандартными библиотеками.
Схема контроллера:


Схема BootLoader и консоли к Андроид планшету



Гуру этого дела прошу не «возбуждаться», топик для начинающих или переходящих с 8-32.
  • +4
  • 19 февраля 2014, 20:30
  • alexhi
  • 1
Файлы в топике: tl.zip

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

RSS свернуть / развернуть
Молодец, все правильно сделал. AVR потихоньку вытесняется болле мощными и дешевыми ARM.
0
А нет проблем с синхронизацией UART'а без внешнего кварца? И еще вопрос: stm8 разве не дешевле крупными партиями?
0
На небольших скоростях — проблем нет.
0
Утверждать не буду, даташиты сейчас лопатить тоже неохота, но помнится, что разброс параметров и стабильность тактового генератора в стм-ах несколько лучше АВР. Для УАРТа может быть меньше проблем из-за этого. Надо будет посмотреть
0
при +25 гадусах +-1%, от -40 до +85 +-5% (из даташита)
0
Ну да, а вот к примеру для тини2313 заводская калибровка +-10%.
0
Нет во всяком случае при 9600 по DS 1% при температуре 25С. На морозе не пробывал :)
Более того нормально прошивается через стандартную STM утилиту Flash Loader DEMO там скорость 38400 (пробывал)
Я не смотрел исходники, но возможно там автоподстройка частоты.Насчет цены STM8 не знаю, вот по каталогу Компела например:
STM8L101F2P6 (ST) — 0.9$ STM32F030F4P6 (ST) — 0.54$, а параметры гораздо лучше.
0
так тут все таки L серия. вот STM8S003 примерно 0,35 там же. А для поставленной задачи вполне подойдет.
На счет девиации частоты, то тут от скорости насколько я знаю не зависит, зависит от количества передаваемых бит в пакете. Для стандартной посылки в 8 бит и вправду документация на UART рекомендует не более 2%. а STM заявляют стабильность внутреннего генератора от -1,9 до 1,3 % в диапазоне от 0 до 70 градусов. А вот в диапазоне от -10 до 85 от -2,2 до 1,3%, тут уже можно глюк словить. Хотя там есть режимы работы при которых толерантность до 3% и выше. на CP2102 инфы на вскидку не нашел. Я что-то по старинке (обжегся несколько раз на мегах) кварц ставлю для надежности.
0
Наверное если поискать. Но в том же Компэле
STM8S003K3T6C (ST) — 0.606$ (от 400 шт)
STM32F030F4P6 (ST) — 0.54$ (от 1 шт)
Но параметры STM32 конечно лучше.Вообще я обычно стараюсь с запасом по «железу» делать.Раз понадобилось управление от PC, значит еще чего нибудь придумают :)
0
Так что, если схему без кварца делать, то думаю есть основания хорошо поработать над контролем ошибок UART пакета. Благо там куча всяких бит в регистре для этого предусмотрена.
0
А что там за сигнал RST в схеме бутлодера? он подключается к контакту который на Boot идет? можете эту часть поподробнее описать, пожалуйста?
0
А что там за сигнал RST в схеме бутлодера? он подключается к контакту который на Boot идет? можете эту часть поподробнее описать, пожалуйста?
=========================================
Этот переходник я использую и для прошивки AVR напр. Атмега88/168 c залитым туда bootloader (odoboot версия совместимая со средой Arduino) Там запуск bootloader происходит, дерганьем ноги DTR, происходит сброс процессора и он в течении 0.5 сек ждет что по RS232 придет команда. Удобно что не надо для входа в бут ничего замыкать и передергивать.Ну и Ардуинщики довольны (чую сейчас подтянутся Ардуино-ненавистники :)
Эту же железку использую как bootloader STM32, при подключении на ноге Boot появляется 1 и он входит в режим загрузки. Также эту железку использую как консоль RS233 для микроконтроллеров и роутеров.Можно конечно купить «шнурок» от сотового, но лень да и у них по моему DTR не выведен (хотя может и вру)
0
/*offtop
Планшеты крупных вендоров, зачастую, идут без USB OTG.
*/
0
Возможно, я делаю обычно на планшетах не дорогих (Mistery,3Q )~ 2000 руб. Там все есть и работа с USB COM переходниками и OTG норм. Бывает что лочат пермишен на работу с ними, но это легко лечится.По дорогим пробывал только SAMSUNG NOTE, работает.
Хотя по моему терминалу для Андроид TermUSB на Google Play
TermUSB for Android
отписываются что на многих брендовых работает
Единственное что огорчает, что на дешевых планшетах например Mistery убрали отдельный вход питания.Было удобно подключаешь микроконтроллер по USB к планшету и питание и все работает.А теперь только USB порт а он в режиме USB OTG питает USB мост контроллера и жрет батарею. Нахрена убрали непонятно. Также нет возможности поставить пакет OFFLINE распознавания голоса, у меня есть проекты включения голосом освещения и др.Или залочка VOIP и USB COM, ну нахрена! Понять бы логику зачем это делают…
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.