Подключение линейного энкодера к STM32

image
Однажды ко мне попал линейный энкодер ПЛФ-3 и мне захотелось подключить его к микроконтроллеру. Однако, как оказалось, дело это не самое простое. Какие именно проблемы возникли при этом, и как они были решены — читайте далее.


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

Асинхронное USB аудио на STM32

Для того, чтобы вывести звук из компьютера в микроконтроллер, у современного распространенного компьютера есть четыре подходящих интерфейса: Ethernet, Bluetooth, USB и S/PDIF. В МК, три из них требует использования внешнего железа (S/P DIF вход напрямую стал поддерживаться начиная с STM32F446), а Ethernet, кроме того — еще и специального драйвера на стороне компьютера. Поэтому выбор пал на USB.


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

RC5 symmetric-key block cipher STM32

Может кому то пригодится.
RC5.c, RC5.h
Описание здесь
RC5 wiki
Описание на Хабре
  • +3
  • 22 сентября 2015, 02:11
  • x893

О размерности данных в программах для микроконтроллеров

Для начала предисловие. Я не программист, и все знания приобрел в процессе решения технических задач. Поэтому для меня до сих пор банальные для других вещи становятся как открытие. В институте изучал Fortran 77, после появления персонального компьютера начал осваивать Си для AVR. Сейчас осваиваю STM32. Программы под Windows пробовал писать( пару примитивных по нужде, подгрядывая в интернете как это делается). В результате я понял, что мне больше подходит низкоуровневое программирование (когда понимаешь процессы, которые происходят). Для большего утоления информационного голода не хватает знаний как работают компиляторы. В сети практически нет информации об этом (или я не правильно поисковый запрос формировал). Теперь про суть.

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

Заметка о полетном контроллере Flip32 Mini

Начал делать первые шаги в коптеростроительстве, после экспериментов с MultiWii и Arduino Pro Micro решил заказать мелкую легкую платку с STM32. По моему скромному опыту, из датчиков достаточно датчика угловых скоростей, акселерометра и барометра. Порывшись в интернетах нашел дешевую платку Flip32 Mini за $22.

Краденое в интернетах изображение Flip32 Mini


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

Опыт использования USART3 в STM32F100C6

Как известно виновники многих открытий — случайности.
Так и я не обратил внимания, что у STM32F100C6 по документации всего два USART и развел третий. Запустил обмен на передачу, все замечательно работало. Однако когда начал налаживать прерывание на прием обнаружил, что в STM32F10x_StdPeriph_Driver для этого МК прерывание не настраивается. Что такое думаю, как так. Открыл даташит и смотрю, а их два.
Ну думаю раз на передачу работает дело за тем, что бы допилить STM32F10x_StdPeriph_Driver.
Выполнил следующие доработки (компилятор KEIL)
В файле stm32f10x.h в разделе #ifdef STM32F10X_LD_VL добавил строку
USART3_IRQn = 39, /*!< USART3 global Interrupt */
которую скопировал из раздела
#ifdef STM32F10X_MD

Далее в фале запуска startup_stm32f10x_ld_vl.s
добавил обработчик прерывания от USART3
Прием заработал.
Оба отредактированных файла прилагаю.

На передачу USART3 работал долго и уверено, а вот когда наладил прерывание через некоторое время, после активного обмена МК перестал работать. Прошивается, но не работает. Под отладчиком посмотреть, что там происходит, возможности нет из-за особенности схемы.

Обращаю внимание функция сия выходит не документированная и использовать ее можно скорее для экспериментов или для каких то разовых работ.

Первый обзор отладочной платы STM32F746GDISCOVERY топик-ссылка

В моих руках недавно оказалась новая отладка от ST с МК STM32F7, небольшой обзор внутренностей прилагается. Вкратце: МК с 216 МГц/462 DMIPS, 64 Мб SDRAM, 128 Мб Flash, ЖК-экран 4.3 дюйма с ёмкостным (!) тач-скрином, и конечно Ethernet (LAN8742), FS/HS USB, слот SD-карты и MIPI-камеры, плюс два MEMS-микрофона, чтобы делать стереозвук или чистить шум. Первые впечатления очень хорошие, хочу попробовать сделать микрофонную решётку, и много чего ещё. В примерах есть куча всего, в т.ч. и Ethernet.

Удобный модуль для STM32

У меня возникает вечная проблема, когда нужно вытравить плату под STM32 LQFP48. Лазерный принтер заставляет сильно помучиться, пока получается годный шаблон для засветки. И в любом случае, он с изъянами… + плата должна быть 2-х сторонней (иначе сложно развести питание).
+ проверить работу контроллера можно только на готовой плате. Еже ли что, то всю плату переделывать. А это опять 0.3 через 0.5. Опять геморой…

В итоге родился такой модуль:

Кому интересно, прошу под кат…


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

Демоны в АЦП STM32



Современные АЦП обычно содержат внутри УВХ. В последнее время АЦП часто строятся по схеме уравновешивания заряда, а не уравновешивания токов, как это было в АЦП на основе резисторной матрицы R-2R. В случае АЦП с уравновешиванием заряда роль емкости УВХ выполняет внутренняя матрица конденсаторов. Конденсаторы матрицы в процессе преобразования перезаряжаются. Поэтому вход такого АЦП ведет себя достаточно нетривиально. Именно к такому типу АЦП относится и внутренний АЦП микроконтроллеров STM32. Довольно много информации по этому поводу содержится в документе AN2834. Но там полезные рекомендации, как на стр. 37: «Do not add any external capacitor (Cext) to the input pin when applying this above workaround» чередуются с вредными советами, как на стр. 39: «An extra large Cext enables sampling more often». Это подтолкнуло к написанию данного поста.



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

Управление светодиодной лентой на WS2812B с STM32F10x

Про подключение светодиодных лент на WS2812B к STM32 написано немало статей. Наиболее правильный вариант, с моей точки зрения, описан в статье на Хабре, однако у него есть ряд недостатков:

  • Новичку трудно в нем разобраться
  • Неэкономно расходуется память, что позволено STM32F4 — не позволено STM32F10x

Оба этих недостатка я попытался устранить в своей библиотеке stm32f10x-ws2812b-lib.


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