Notice: Memcache::get(): Server localhost (tcp 11211) failed with: Connection refused (111) in /home/a146/www/we.easyelectronics.ru/engine/lib/external/DklabCache/Zend/Cache/Backend/Memcached.php on line 134
STM32 / Поиск по тегам / Сообщество EasyElectronics.ru

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

Для начала предисловие. Я не программист, и все знания приобрел в процессе решения технических задач. Поэтому для меня до сих пор банальные для других вещи становятся как открытие. В институте изучал 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.


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

json и кирилица

Экспериментируя с json и xmlhttprequest обнаружилась неочевидная проблема -как передать кирилицу?

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

2-x фазный ШИМ (PWM) генератор на STM32F030F4

Для питания ряда устройств (например электродвигателей переменного тока) иногда необходимо наличие сдвинутых по фазе питающих напряжений. Для питания 2-х фазных индукционных двигателей необходимо наличие двух фаз синусоидального напряжения с частотой 400 Герц и сдвинутых по фазе на 90 градусов. Один из примеров таких двигателей являются двигатели серии ДИД. Они интересны тем, что их частота вращения может составлять от 16000 до 18000 об/мин. Для питания таких двигателей и было сделано данное устройство, которое представляет собой задающий генератор 2-х фазного 400 Гц напряжений сдвинутых по фазе на 90 градусов относительно друг друга.
В качестве микроконтроллера использован STM32F030F4. Его выбор обусловлен его «минимализмом» — наименьший из корпусов в серии STM32F0 и естественно с минимальной стоимостью. Схема подключения изображена ниже. Микроконтроллер работает на частоте 48 МГц. В качестве задающего генератора использован TIM3, так как в данном контроллере только этот таймер можно конфигурировать так, чтобы использовать выходы трех каналов. Третий канал можно в случае необходимости использовать для генерации 3-фазного напряжения. Таймер работает в режиме генерации ШИМ (PWM). Для получения синусоидального напряжения 400 Гц в канале используется высокочастотное изменение коэффициента ШИМ с частотой 40 кГц, на которую настроен системный таймер SysTick. Синусоида формируется с помощью таблицы значений синуса с шагом 360/100 градусов. Очень полезный калькулятор для такого рода таблиц можно найти на сайте. При желании с помощью АЦП можно управлять амплитудой, фазой, частотой генерации. Но в данной реализации это не сделано.



Ниже показаны выходные осциллограммы генератора. Синяя и фиолетовая синусоиды — сдвинуты на 90 градусов, желтая — выход таймера для синей синусоиды, зеленый — тестовый сигнал генерируемый при начале формирования синусоиды




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

Keil µVision 5 + STM32F4 Discovery - Начало

Всё началось с того, что сходу не получилось «быстро стартануть» Keil µVision 5 + STM32 (везде описание приведено для 4-го Keil-а). Посему решил для себя зафиксировать «опыт» картинками и чуточкой текста :)


Читать дальше
  • +3
  • 07 апреля 2015, 10:55
  • Selin