Найти в Дзене
Wizardino

Wizardino - набор типовых решений для разработчиков на базе STM32

Wizardino v 1.0
Wizardino v 1.0

Для начала - немного информации об идее данного проекта и о том, как я этому пришел.

В настоящее время я работаю лид-программером в крупной компании, по направлению автомобильной электроники (automotive). Так что работа с микроконтроллерами мне близка и понятна. Кроме того, весьма давно занимаюсь разработкой различных устройств на базе микроконтроллеров так сказать для души. Хотя и для основной работы бывает весьма полезно...

После выполнения нескольких десятков проектов я понял, что большинство требований клиентов к устройствам достаточно стандартны. Таким образом, для экономии сил и времени можно разработать несколько типовых решений, которые в дальнейшем можно применять так сказать "из коробки". Берем базовую плату с установленным и настроенным микроконтроллером и всякой полезной обвязкой от USB до сенсорного дисплея, делаем к ней дополнительный шилд, реализующий конкретный функционал, и - готово. Важно отметить, что я старался сделать все модели максимально простыми, так чтобы их при желании можно было изготовить своими руками. Все инструкции по изготовлению будут даны.

Такой набор готовых типовых решений по аналогии с Arduino я решил назвать "Wizardino", взяв за основу английское слово Wizard, то есть - мудрец. Все материалы связанные с проектом от схемотехники до исходного кода программ будут распространяться в соответствии с принципами открытого ПО (Open Source).

За основу я решил взять микроконтроллеры семейства STM32 фирмы ST Microelectronics, так как при невысокой цене оно обладают крайне развитой периферией, что позволяет реализовать требуемый функционал с минимумом финансовых и временных затрат. В качестве примера, типичный набор периферийных устройств для микроконтроллеров этого семейства включает в себя:

- USB 2.0 (как device only, так и OTG)
- SPI
- I2C
- UART
- CAN
- ADC (многоканальный)
- DAC
- несколько таймеров, в том числе с поддержкой ШИМ

И все это по цене сравнимой с микроконтроллерами семейства Atmega. Добавим к этому тактовую частоту от нескольких десятков до сотен мегагерц, объем Flash памяти в десятки и сотни килобайт, и много-много других вкусностей. Ну и упомянем еще 32-битное ядро, построенное на весьма мощной архитектуре ARM Cotex. Прямо огромная бочка меда - самый сладкий сон Винни-Пуха. Увы, в комплекте к этой бочке идет ложка дегтя, которую мы и постараемся элиминировать. Под ложкой дегтя я понимаю корпуса, в которых выпускаются эти микроконтроллеры. А именно, выпускаются они в основном в корпусах LQFP. Это не тот тип корпуса, который можно легко и непринужденно вставить в панельку. Под такой корпус надо разрабатывать плату, а учитывая, что расстояние меду выводами составляет доли миллиметра, плату надо делать более чем аккуратно.

В качестве второго минуса я бы назвал отсутствие хорошей инфраструктуры вокруг этих микроконтроллеров. Конечно, фирма ST Microelectronics выпускает хорошие решения для ознакомления и прототипирования - платы серий Nucleo и Disco. Решения отличные, хорошо поддержанные средствами разработки от ST. Однако, для серьезных разработок они ИМХО мало подходят по двум параметрам - размеры и стоимость. Поэтому имеет смысл попробовать разработать что-то компактное и дешевое, что можно было бы применять в том числе и в тиражной продукции. Такая попытка и является сутью проекта Wizardino.

Для разработки используется следующий инструментарий:

  • Схемотехника и трассировка плат выполнена в очень недорогой, но хорошей по функционалу среде DipTrace. Достаточно самой простой версии, так как делать плату с более чем двумя слоями излишне сложно.
  • Настройка проекта - ПО STM32 Cube MX. Программа бесплатна, доступна на сайте st.com
  • Среда разработки ПО - Atollic TrueStudio For STM32. Также отличная бесплатная среда разработки, официально распространяемая фирмой ST. К огромным достоинствам этой среды помимо удобства я бы отнес оптимизирующий компилятор, умеющий вырезать неиспользуемые куски кода. При работе с микроконтроллерами это огромный плюс, так как резко уменьшает размеры готового образа экономя ресурсы.
  • Среда разработки ПО для ПК - MS Visual Studio. Соответственно, все связанные с проектом утилиты разрабатываются для MS Windows. Поддержку Linux и Android не обещаю, однако, если найдутся энтузиасты, которые возьмут это на себя, обещаю всемерную поддержку