STM32 Peripheral Libs: FWLib -> SPL -> Middleware+HAL+CubeMX -> Middleware+Snippets -> CMSIS-Driver API ? Куда это все ведет и есть ли истинный путь?

Прочитал статью, в которой чел, несколько лет назад плотно подсевший на библиотеку STM32 Standard Peripherals Library (SPL) (которая сейчас уже NRND – Not Recommended for New Designs), не захотел почему-то осваивать новую библиотеку для работы с периферией STM32 HAL (она входит в состав нового firmware под названием STM32Cube), но накатил поверх SPL свою обертку. Т.к. с точки зрения переносимости кода, SPL – это собственный проприетарный велосипед ST Micro (причем некоторые считают её весьма неудачным велосипедом), получается, что на этот велосипед поставили еще и свой собственный велосипед, якобы ДЛЯ УПРОЩЕНИЯ КОДИРОВАНИЯ, т.е. получили велосипед в квадрате.

В той статье я высказал некие свои мысли по поводу родных Peripheral Libs для STM32 и о неких “новых” тенденциях в технологии кодирования периферии MCU ARM Cortex-M, а именно STM32Snippets. Чуть далее привожу фрагмент начального разговора.

И позволю себе продолжить мои мысли на эту тему, но сразу скажу, что я никогда не придерживался никакого лагеря в этом бесконечном споре библиотечников и регистрщиков, а находился как бы выше всего этого и с интересом наблюдал за происходящим все эти годы с высоты, как и положено настоящему ПЖ, т.е. TE (Technical Evangelist) местного пошиба. Проблема существовала на самом деле и было интересно увидеть, как ее будет решать индустрия и сообщество MCU кодеров.


Читать дальше

Вывод звука на STM32 + библиотека

Озадачился выводом звука (мелодий) на stm32 для одной поделки. Стал изучать материалы…
Задача: с минимальными ресурсами по CPU и памяти (а так-же с минимальным объема работ по подключению в коде) — выводить звук.
Итоги изысканий и результат:

Детали под катом…
UPDATE: Суть решения не выводе как таковом, а в формировании первоначального сигнала в коде. Я у себя использовал усилитель D-класса на рассыпухе. Но это не обязательно. Вывод можно делать и через DAC. Можно приделать любой усилитель. Можно использовать внешний DAC. Суть решения в пункте 2 и 3: генерация данных с минимум нагрузки на МК.
З.Ы. А вы обсуждаете первый пункт, который я применил в конкретном месте в конктерных условия, потому что мне так было проще…
З.З.Ы. Удалил часть про PWM, как не главную :)



Читать дальше

STM32 HAL. Часть 2 - Системное время (+ модуль преключателя).

Приветствую коллеги и просто любопытствующие. Я несколько лет занимаюсь разработкой ПО для встраиваемых систем. В основном для STM32 с использованием Standart Peripheral Library. Недавно попытался пересесть на их HAL под названием CUBE. Мягко говоря, разочаровался этим непродуманным продуктом и окончательно решил, что надо поделиться своим собственным HAL-ом, который накатывается поверх Standart Peripheral Library. В этой и, очень надеюсь, последующих статьях я выложу коды, опишу их и примеры их использования. Кому это интересно — прошу под кат.

Читать дальше

STM32 HAL. Часть 1 - GPIO и внешние прерывания.

Приветствую коллеги и просто любопытствующие. Я несколько лет занимаюсь разработкой ПО для встраиваемых систем. В основном для STM32 с использованием Standart Peripheral Library. Недавно попытался пересесть на их HAL под названием CUBE. Мягко говоря, разочаровался этим непродуманным продуктом и окончательно решил, что надо поделиться своим собственным HAL-ом, который накатывается поверх Standart Peripheral Library. В этой и, очень надеюсь, последующих статьях я выложу коды, опишу их и примеры их использования. Кому это интересно — прошу под кат.

Читать дальше

Эмуляция носителя FAT32 на stm32f4


Некоторое время назад возникла данная задача — эмуляция носителя FAT32 на stm32f4.
Её необычность заключается в том, что среди обвязки микроконтроллера вовсе может не быть накопителя, вроде FLASH-контроллера или SD-карты.
В моём случае накопитель был, но правила работы с ним не позволяли разместить файловую систему. В ТЗ, тем не менее, присутствовало требование организовать Mass Storage интерфейс для доступа к данным.
Результатом работы явился модуль, который я озаглавил «emfat», состоящий из одноимённого .h и .c файла.
Модуль независим от платформы. В прилагаемом примере он работает на плате stm32f4discovery.
Функция модуля — отдавать куски файловой системы, которые запросит usb-host, подставляя пользовательские данные, если тот пытается считать некоторый файл.
Итак, кому это может быть полезно и как это работает — читайте далее.


Читать дальше

Радиотракт брелков автомобильных сигнализаций.

В последнее время, меняется парк автомобильных сигнализаций на новые, более совершенные и защищенные от взлома, с диалоговым кодом и расширенным функционалом. Старые, остаются не у дел, но их вполне можно использовать для других нужд. Рассмотрим схемотехнику их радиотракта, которые работают на частоте 433,920 МГц, выделенной для этого в России.





Читать дальше

Таймер для автомобильного подогревателя

Возникла задача, дистанционно запускать в автомобиле предпусковой обогреватель двигателя, работающего на жидком топливе.
Так как устройство, которое это делало раньше вышло из строя, то решено запуск производить с помощью автомобильной сигнализации,
подавая команду через «дополнительный канал».




Читать дальше

Подключение дисплея UG-2896GDEAF11 к STM32L

Решил проверить качество и удобство использования современного небольшого OLED дисплея.





Читать дальше

Блок электронного зажигания на STM32VL DISСOVERY

Давно хотел иметь работающий настольный сувенир, такой как двигатель внутреннего сгорания. Есть такие, продаются в магазинах и в интернете. Качество и красота присутствуют, но цена немного не подходящая. (Восстановил одну из первых своих статей за 2011 год.)





Читать дальше

Проверка возможностей автомобильного генератора в качестве электродвигателя.

Решил провести эксперимент, по возможности использования генератора от легкового автомобиля, как тягового двигателя с прямым приводом на колесо, для велосипеда или что-либо подобного.
У меня как раз есть исправный генератор, но использовать его в автомобиль я не могу, как и некоторые другие вещи, но зато попробую провести этот эксперимент сам. В интернете на специализированных форумах есть размышления, что так не делают, что и в конструкции генератора специально особым образом подобраны формы ротора и статора, для работы его как генератора. Да и наличие отдельной катушки возбуждения усложняет конструкцию. Но из достоинств – генератор не создает практически никаких сопротивлений вращению, если на него не подан ток, и он есть за бесплатно. Заниматься самому математическим анализом реализации такой возможности, нет достаточного опыта и данных, пока (если кто разложит все по полочкам — буду признателен).
Схема подключения генератора:





Читать дальше