Еще в студенческие годы мне пришлось весьма тесно обобщатся с микроконтроллерами, тогда это были 8-битные 8051 и AVR. Сейчас, захотев вернутся этому занятию, перевел свой взгляд на весьма широкое семейство контроллеров STM32. О них немало написано на просторах Сети, тем не менее я изъявил желание написать небольшой цикл статей о работе с STMками. Знакомство с ними я хотел бы начать, как говорят, с полного 0. Для экспериментов мною была приобретена простая и дешевая (3$) отладочная плата Maple Mini. Используемый в ней контроллер STM32F103CB обладает весьма внушительным букетом возможностей. (особенно в сравнении с решениями в своей ценовой категории). Подробно можно почитать в сети, и конечно же, в даташите.. Родная Ардуиноподобная среда разработки мне сразу не пришлаcь по вкусу (на вкус и цвет, как говорят...). Из всего изобилия разнообразных сред разработки я остановил свой взгляд на mikroC for ARM компании mikroelektronika. Когда-то я сталкивался с их компиляторами(для 8081), мне весьма понравилось. Хоть и не без косяков, но решил попробовать.
Рубрика «stm32» - 28
Первые шаги с STM32 и компилятором mikroC для ARM архитектуры — Часть 1
2016-12-23 в 10:25, admin, рубрики: Maple-mini, microC, stm32, Микроконтроллеры для начинающих, программирование микроконтроллеровSTM32: FreeRTOS и пьезокерамический излучатель
2016-12-08 в 6:00, admin, рубрики: buzzer, freertos, stm32, программирование микроконтроллеров
Керамический пьезоизлучатель (buzzer) — простая деталь, наравне со светодиодом требующая минимального набора ресурсов для управления и настолько же легко подключаемая к микроконтроллеру. Как и светодиоду с возможностью плавной регулировки яркости, от микроконтроллера ему требуется не более одного канала таймера и внешний вывод.
Много в интернете уроков «Подключаем пищалку к ардуино», только вот заканчиваются они проигрыванием «В траве сидел кузнечик» или озвучкой срабатывания RFID датчика. Наверное тем, кто занят этим профессионально и серьезно, не до ведения блогов и записи видеоуроков.
А ведь миниатюрный керамический динамик — шаг в сторону более дружелюбного интерфейса с человеком. Нажатия кнопок, касания сенсорной панели, реакция на различные события… Такая вот обратная связь в виде звукового отклика!
Под катом попробуем сделать с этим что нибудь, а именно напишем драйвер пьезодинамика и заставим его параллельно озвучивать несколько разных внешних событий.
Читать полностью »
Белочка приходит к людям после разговора с электросчетчиком
2016-12-01 в 4:51, admin, рубрики: arduino, blue pill, diy или сделай сам, stm32, STM32F103C8T6, wd588, дистанционное, показаний, Программирование, считывание, электросчетчикЭтим летом на даче, в конце августа, добившись наконец нормального обмена устройства, которое будет описано ниже, с электросчетчиком, я сидел на крылечке и слушал разговор двух белок, одна сидела на большой туе, а вторая – на яблоне. Тут позвонил мой друг, только что вернувшийся из автопохода на Белое море. На его вопрос «как дела?» я ответил, пребывая все еще погруженным в проект: «поговорил со счетчиком, сижу вот, слушаю разговор двух белок». Друг помолчал и сказал: «Ну про белочек после литра выпитой я конечно знаю, но после разговора со счетчиком???» :)))
В статье описано устройство (далее – «Говорилка»), предназначенное для снятия показаний с электросчетчика и проговаривания их синтезированным голосом в телефонную линию. Кроме собственно показаний потребленной энергии Говорилка считывает текущие дату, напряжения по фазам, токи по фазам, потребление общее и по фазам и отображает эти данные на встроенном TFT дисплее. Также к Говорилке подсоединены датчики температуры, влажности, атмосферного давления и освещенности.
Реализация протокола MIL-STD-1553 на STM32
2016-11-29 в 12:37, admin, рубрики: C, MIL-STD-1553, stm32, интерфейсы, микроконтроллеры, МКИО, программирование микроконтроллеров, Промышленное программированиеОднажды, появилась необходимость использования в нашем устройстве мультиплексного канала обмена информацией (МКИО), он же ГОСТ Р 52070-2003, он же MIL-STD-1553В. Первоначальный результат поисков несколько удивил: типовые решения выдаваемые поисковой системой, как правило, основывались на использовании ПЛИС. Поскольку решать проблему нужно было быстро, появилась мысль сделать конвертер протокола из MIL-STD-1553 в MODBUS RTU. При этом постараться использовать достаточно недорогие технические решения и микроконтроллер из семейства STM32.

На фото из Википедии: F16, на котором впервые был использована шина MIL-STD-1553В. Наши устройства не летают :), поэтому каких либо ограничений по применению элементной базы нет. Просто у Заказчика приборная сеть построена на основе этой шины. Первая часть статьи описывает прием и передачу по шине МКИО, вторая часть будет про конвертер в MODBUS.
Читать полностью »
Беспроводная отладка STM32
2016-11-02 в 13:01, admin, рубрики: diy или сделай сам, esp8266, open source, openocd, stm32Хочу рассказать о необычном использовании ESP8266 в качестве посредника между STM32 и openOCD. У этого способа довольно много недостатков и его применение может быть вызвано только невозможностью использования обычного (проводного) средства отладки.
Плюс у этого способа один и он очевиден, поэтому перейду сразу к недостаткам:
- Требуется патчить openOCD
- Необходимо изменить прошивку в ESP8266
- Низкая скорость работы
Подключение oled дисплея с контроллером SSD1306 к STM32 по I2C
2016-10-24 в 22:23, admin, рубрики: coocox, oled, SSD1306, stm32, stm32f103, программирование микроконтроллеров
Многие, наверное, знают о таких маленьких дешёвых (меньше $3) OLED дисплеях, которые можно найти в огромном ассортименте на ebay или aliexpress. В интернете существует множество различных статей о том, как подключать эти дисплеи к Arduino и другим МК, но для STM32f10x затруднительно найти даже библиотеку. Поэтому я решил написать эту статью.
Данный дисплей имеет разрешение 128х64 пиксела и контроллер SSD1306 и подклчается к микроконтроллеру по интерфейсу I2C.
Читать полностью »
Начинаем работать в STM32CubeMX. Часть 2
2016-10-17 в 1:07, admin, рубрики: dac, DMA, stm32, микроконтроллеры, прерывание, программирование микроконтроллеров, таймерВ прошлый раз мы научились создавать в STM32CubeMX новый проект, настраивать тактовый генератор, таймер и порт ввода-вывода, и немного помигали светодиодом. Сегодня мы освоим цифро-аналоговый преобразователь и научимся работать с ним через DMA. В результате у нас должен получиться простой генератор прямого синтеза (Direct digital synthesizer, DDS).

Читать полностью »
Начинаем работать в STM32CubeMX. Часть 1
2016-09-26 в 1:59, admin, рубрики: stm32, микроконтроллеры, прерывание, программирование микроконтроллеров, таймерПриветствую аудиторию хабра, и хочу предложить вашему вниманию первый пост, посвященный использованию среды разработки STM32CubeMX, написанный для тех, кто хочет начать изучение STM32 «с нуля».

Я планировал написать несколько постов, рассмотрев несколько периферийных устройств микроконтроллера и их конфигурирование в STM32CubeMX. Но эти посты не заменяют фирменной документации и не претендуют на полноту. В них будут рассмотрены только некоторые, наиболее, на мой взгляд, типичные, примеры использования периферии STM32.
Надеюсь, кому-то этот материал будет полезен.
Читать полностью »
Работа с датчиками тока на эффекте Холла: ACS758
2016-09-15 в 6:46, admin, рубрики: ACS758, stm32, датчик тока, Производство и разработка электроники, Электроника для начинающих, эффект Холла, метки: Датчик токаВсем привет!
Пожалуй, стоит представиться немного — я обычный инженер-схемотехник, который интересуется также программированием и некоторыми другими областями электроники: ЦОС, ПЛИС, радиосвязь и некоторые другие. В последнее время с головой погрузился в SDR-приемники. Первую свою статью (надеюсь, не последнюю) я сначала хотел посвятить какой-то более серьезной теме, но для многих она станет лишь чтивом и не принесет пользы. Поэтому тема выбрана узкоспециализированная и исключительно прикладная. Также хочу отметить, что, наверное, все статьи и вопросы в них будут рассматриваться больше со стороны схемотехника, а не программиста или кого-либо еще. Ну что же — поехали!
Не так давно у меня заказывали проектирование «Система мониторинга энергоснабжения жилого дома», заказчик занимается строительством загородных домов, так что кто-то из вас, возможно, даже уже видел мое устройство. Данный девайс измерял токи потребления на каждой вводной фазе и напряжение, попутно пересылая данные по радиоканалу уже установленной системе «Умный дом» + умел вырубать пускатель на вводе в дом. Но разговор сегодня пойдет не о нем, а о его небольшой, но очень важной составляющей — датчике тока. И как вы уже поняли из названия статьи, это будут «бесконтактные» датчики тока от компании Allegro — ACS758-100.
________________________________________________________________________________________________________________________
Даташит, на датчик о котором я буду рассказывать, можно посмотреть тут. Как несложно догадаться, цифра «100» в конце маркировки — это предельный ток, который датчик может измерить. Скажу честно — есть у меня сомнения по этому поводу, мне кажется, выводы просто не выдержат 200А долговременно, хотя для измерения пускового тока вполне подойдет. В моем устройстве датчик на 100А без проблем пропускает через себя постоянно не менее 35А + бывают пики потребления до 60А.

Рисунок 1 — Внешний вид датчика ACS758-100(50/200)
Читать полностью »
STM32 USB Mass Storage Bootloader
2016-09-05 в 10:46, admin, рубрики: bootloader, stm32, stm32f103, usb msd, программирование микроконтроллеровИзвестно, что софт можно дописывать вечно, а всякого рода недочёты на плате полностью исправляются ревизии так к третьей. И если с железом уже ничего не поделаешь, то для обновления микропрограмм придумали неплохой способ обхода ограничений пространства и времени — Bootloader.
Загрузчик — это удобно и полезно, не правда ли? А если загрузчик собственной реализации, то это еще более удобно, полезно и гибко и не стабильно. Ну и конечно же, очень круто!
Так же, это прекрасная возможность углубиться и изучить особенности используемой вычислительной машины — в нашем случае микроконтроллера STM32 с ядром ARM Cortex-M3.
На самом деле, загрузчик — это проще, чем кажется на первый взгляд. В доказательство, под cut'ом соберём свой собственный USB Mass Storage Bootloader!

