В среде профессионалов, которые измеряют партии своих устройств в килоюнитах и считают контроллеры, меньше чем на 100 выводов, ерундой, часто всплывает одна парадоксальная тема. А какой контроллер сейчас стоит рублей 20-30, и подойдет для бомж DIY? AVR после продажи компании ATMEL подорожали, STM8 после кризиса полупроводников подорожали тоже, но не так сильно. Я купил свои 15 портовые STM8S003 по 25 рублей за штуку. Конечно, CH32V003 дышат им в спину, но о них позже.
Когда в 2011 году я переходил c atmega8 на stm32, меня очень вдохновил проект opencm3. Но вдохновил не на его изучение, а на написание похожего. На сегодня в моём варианте почти библиотеки есть макросы регистров для микроконтроллеров серий stm32f10x и stm32f40x, stm8s003, nrf51, nrf52, rp2040, и cc2640/1310. Реально же протестирована из этого списка только stm32f103. Кроме регистров для 103-й я написал базовые функции для включения/выключения тактирования периферии и управления портами ввода‑вывода. А также написаны примеры для USB профилей HID gamepad, HID keyboard и USB serial port. В этом же посте задокументирую функции портов и тактирования.
КРЕНка на 220, если коротко. Если погуглить этот вопрос напрямую, то найдется довольно дорогая микросхема TL783. В свою очередь, драйверы из 50 рублевых ламп стоят либо 100 рублей за пакет, либо выпаиваются бесплатно из доноров. Несмотря на то, что драйвер предназначен для стабилизации тока, из него не сложно получить стабилизатор напряжения. Что я и применил в фонарике, заряжающемся от розетки.
Как то выдрал из старого принтера HP экранчик, и решил вспомнить былые времена примитивных поделок с символьными экранчиками. Получилось добавить printf, вывести русские символы и мерцающий растр. А так же дополнил программу кодом для дисплеев WH1602, которые использовал раньше.
На сегодняшний день DCDC конвертеры выпускают не только всем известные крупные производители, но и китайцы. Последние отличаются ценой около 50 рублей за 10-20шт. Когда я вижу настолько дешевые детальки, меня поглощает желание встроить их повсюду. Ситуация немного похожа на ситуацию с блогером Александр Полулях, он заливал алюминий везде, в тыкву, арбуз, муравейник, настолько было много таких экспериментов, что ему уже начали советовать в комментариях залить этот алюминий себе самому не буду говорить куда. Хотя применение данной микросхемы в этом посте оправдано, т.к. всегда огорчало падение яркости на фонариках, по мере того, как в них садятся батарейки.
Купил на пробу светодиодов со встроенным драйвером сразу двух вариантов, в варианте отдельного драйвера и в варианте светодиода. Понимая что радиолюбитель не мигавший красиво диодиками не радиолюбитель. Распаял и я свою примитивную мигалочку, по сути отладочную плату.
Дата появления микроконтроллеров STM32, судя по datasheet, 2007 год, и с тех пор они признаны очень успешным и популярным чипом. Поэтому для них уже написано множество готовых примеров с поддержкой почти всех технологий как самим вендором так и комьюнити. Это и всевозможные USB устройства включая флешку и звуковую карту, и целочисленные варианты кодеков (WMA, Speex), и даже готовые сборки под ethernet с lwip стеком так же в наличии. В то время комьюнити пытается догнать вендора и написало библиотеку libopencm3, уже в отличии от оригинала, основанную на make, а не привязанную к среде. И в ней есть так же примеры с USB. И вот, на фоне всего этого я представил что STM32 ничем не сложнее меги, вооружившись таблицей разметки памяти с адресами регистров начинаю писать еще один вариант стандартной библиотеки для STM32. Гораздо более наивный, но зато компактный. Смыл был однозначно, я вообще считаю что если не понравился любой стандартный продукт, то это повод переписать его полностью, хотя вы можете со мной не согласиться.