Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

Продолжение очередной статьи: STM32 для начинающих. Интерфейсы

Программирование микроконтроллеров
Предыдущая публикация: «Очередная статья — STM32 для начинающих»

И как этим пользоваться?


В предыдущей статье создали класс для работы с портами ввода-вывода, проверили. И что дальше? Зачем это все запихивать в класс?

Возьмем для примера простенький опрос кнопок:


Для этой схемы в простейшем случае опрос будет выглядеть так:

int GetKey()
{
  volatile uint32_t* addr = reinterpret_cast<uint32_t*>(GPIOA_IDR);
  uint32_t ret_val = *addr;
  return ret_val & 0x0F;
}
Читать дальше →
Всего голосов 17: ↑14 и ↓3+11
Просмотры5.1K
Комментарии 13

ИК датчик движения на STM32

Беспроводные технологииПрограммирование микроконтроллеровРазработка для интернета вещейПроизводство и разработка электроникиИнтернет вещей

Приветствую, в этой статье вы узнаете: как сделать датчик движения с использованием ИК диода и ИК приемника на STM32 с минимальным использованием ядра (т.е. с максимальной загрузкой периферии) на регистрах, используя таймеры.

Прочитать полностью
Всего голосов 23: ↑22 и ↓1+21
Просмотры10K
Комментарии 58

How I’m creating a digital mini-guitar

Я пиарюсь
image

In this article, I’ll try to describe roughly how I’m creating a device, from the idea to realization of the usable prototype.

My name is Dmitriy Dudarev. I develop electronics, and really enjoy creating different portable devices. I also enjoy music. Half a year ago, I borrowed acoustic guitar from my friend, so that I could learn to play it from lessons on Youtube and tablatures. It was a hard work. Maybe, I did something wrong, or tried not so hard, or fine motor skills prevented multiplication in my predecessors’ community. In any case, I couldn’t achieve anything but sounds of raspy strings. My resentment was strengthened by constant string detune. And others didn’t really enjoy much listening my uneven Nothing else matters for thousand times.
But, going through all these tortures, I haven’t forgotten the main rule of electronics engineer. If something exists, you can put microcontroller there. Or, at least, make a portable electronic modification.
Read more →
Всего голосов 4: ↑4 и ↓0+4
Просмотры814
Комментарии 0

Передача аналогового тв сигнала с помощью STM32

Программирование микроконтроллеров
Помните как некто cnlohr запустил передачу ТВ сигнала на ESP8266?

Недавно мне попалось к просмотру это видео, стало интересно как это возможно и выяснил что автор видео разогнал частоту I2S до телевизионного диапазона, а затем с помощью DMA генерировал AM сигнал. Мне захотелось повторить это, но или прошивка криво собирается, или ESP модуль оказался неподходящий. Запустить передачу телесигнала не получалось.

Затем я вспомнил что STM32 умеет выводить свой тактовый сигнал на один из пинов.
Читать дальше →
Всего голосов 89: ↑89 и ↓0+89
Просмотры18K
Комментарии 35

STM32F3xx + FreeRTOS. Modbus RTU с аппаратным RS485 и CRC без таймеров и семафоров

Программирование микроконтроллеров
Из песочницы
Всем привет! Относительно недавно, закончив ВУЗ, я попал в небольшую компанию, которая занималась разработкой электроники. Одна из первых задач с которой я столкнулся — необходимость в реализации Modbus RTU Slave протокола с использованием STM32. С грехом пополам я её тогда написал, однако этот протокол начал встречаться мне из проекта в проект и я решил зарефакторить и оптимизировать либу с использованием FreeRTOS.
Читать дальше →
Всего голосов 34: ↑33 и ↓1+32
Просмотры11K
Комментарии 18

8 оттенков серого, или ZX Spectrum48 за $3

CСтарое железоВидеотехникаМониторы и ТВDIY или Сделай сам

Прочитав статью Передача аналогового тв сигнала с помощью STM32 решил попробовать нарисовать телевизионный сигнал на дешевой китайской плате stm32f401ccu6 за $2.5 без дополнительного железа.

Когда-то давным-давно
Всего голосов 47: ↑46 и ↓1+45
Просмотры18K
Комментарии 86

Zx spectrum128, CP/M 2.2 и терминал на STM32F407

Open sourceCСтарое железоПроцессорыDIY или Сделай сам
Tutorial
Нарисовав черно-белый Spectrum48 за $3 на телевизоре и получив вопросы как: «а почему не цветной», «а почему без музыки», «а где НЕИГРУШКИ» — решил поправить и опубликовать менее бюджетную версию, Spectrum128+СP/M, примерно на $25 железа.


Читать дальше →
Всего голосов 33: ↑33 и ↓0+33
Просмотры14K
Комментарии 45

Клоны STM32: хороший, плохой, злой

Блог компании RUVDS.comПрограммирование микроконтроллеровСхемотехникаПроизводство и разработка электроникиDIY или Сделай сам
Перевод
После того, как некий продукт становится популярным, у компаний, которые могли бы его создать, но не сделали этого, неизбежно возникает желание прокатиться на волне его популярности. Это — лишь вопрос времени. Именно этот феномен в ответе за то, что было создано так много ужасных детских игрушек и компьютерных игр. Проявляется он и в мире электроники. Поэтому неудивительным должно выглядеть то, что произошло с чрезвычайно успешной серией микроконтроллеров (Microcontroller Unit, MCU) STMicroelectronics, основанных на ARM. На долю этих контроллеров выпало немалое количество имитаций, клонов и явных подделок.



Пожалуй, подделки — это главная проблема. Дело в том, что эти чипы прикидываются, судя по их маркировке, настоящими STM32. Но при этом характеристики их совместимости с другими компонентами могут очень сильно отличаться от характеристик настоящих чипов. Если говорить об имитациях и клонах, которые маркированы по-своему, то тут ситуация выглядит немного более запутанной. Ведь вполне можно представить себе, что компании, производящие такие микроконтроллеры, по чистой случайности, спроектировали такие чипы, которые, и в плане распиновки, и в плане регистров, полностью совместимы с крайне популярными микросхемами-конкурентами. Это, пожалуй, было бы самой искренней формой подхалимажа.

Поговорим о том, какие существуют подделки и имитации STM32, и о том, каково это — с чем-то подобным столкнуться.
Читать дальше →
Всего голосов 60: ↑60 и ↓0+60
Просмотры22K
Комментарии 65

О кэшах в микроконтроллерах ARM

Блог компании EmboxOpen sourceСистемное программированиеПрограммирование микроконтроллеровПроцессоры
image Привет!

В предыдущей статье мы для ускорения графики на микроконтроллере в Embox применяли процессорный кэш. При этом мы использовали режим «write-through». Тогда мы писали о некоторых преимуществах и недостатках связанных с «write-through» режимом, но это был лишь беглый обзор. В этой статье я, как и обещал, хочу подробней рассмотреть типы кэшей в ARM микроконтроллерах, а также сравнить их. Конечно, все это будет рассмотрено с точки зрения программиста, и вдаваться в детали работы контроллера памяти в данной статье мы не планируем.
Читать дальше →
Всего голосов 31: ↑30 и ↓1+29
Просмотры7K
Комментарии 6

Как получить 9В/12В от зарядного с Quick Charge (на примере STM32)

Программирование микроконтроллеровСхемотехникаРазработка под ArduinoDIY или Сделай самЭлектроника для начинающих
Из песочницы

Чем может быть полезна быстрая зарядка


С увеличением ёмкости аккумуляторов телефонов потребовалось увеличить и мощность зарядных устройств, чтобы достичь маленького времени зарядки, для чего и нужно было увеличивать выходную мощность: напряжение, ток. Таким образом зарядные с Quick Charge 3.0 кроме 5 В могут выдавать 9В/12В/20В +возможность регулировки с шагом 0.2 В (до 12 В).


image

Ввиду распространенности ЗУ с этой технологией появляется интерес использовать их для получения повышенного напряжения без дополнительных преобразователей.

Читать дальше →
Всего голосов 49: ↑49 и ↓0+49
Просмотры19K
Комментарии 21

Как программировать многоядерные микроконтроллеры

Разработка робототехникиПрограммирование микроконтроллеровРазработка для интернета вещейПроизводство и разработка электроникиПроцессоры
Tutorial


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


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

Читать дальше →
Всего голосов 47: ↑47 и ↓0+47
Просмотры12K
Комментарии 17

Электронная книга своими руками на STM32H750 от А до Э

Производство и разработка электроникиDIY или Сделай сам


В этой статье я хочу поделиться опытом разработки электронной книги с использованием недорогого контроллера STM32H750VB, распространенных дискретных компонентов и относительно недорогого дисплея E-Ink. Статья будет большой, так как приведены будут все процессы от постановки задачи до получения первой версии устройства, способного выполнять поставленную задачу. Все будет снабжено схемами, трассировками, кодом и комментариями. Почему в названии от «от А до Э»? Потому что нельзя просто так взять и сделать конечный продукт без ошибок и недоделок.

Читать дальше →
Всего голосов 127: ↑127 и ↓0+127
Просмотры27K
Комментарии 77

Включаем периферию контроллера за 1 такт или магия 500 строк кода

ПрограммированиеC++CПрограммирование микроконтроллеров
Из песочницы


Как часто, при разработке прошивки для микроконтроллера, во время отладки, когда байтики не бегают по UART, вы восклицаете: «Ааа, точно! Не включил тактирование!». Или, при смене ножки светодиода, забывали «подать питание» на новый порт? Думаю, что довольно часто. Я, по крайней мере, — уж точно.

На первый взгляд может показаться, что управление тактированием периферии тривиально: записал 1 — включил, 0 — выключил.

Но «просто», — не всегда оказывается эффективно…
Читать дальше →
Всего голосов 36: ↑34 и ↓2+32
Просмотры8.6K
Комментарии 41

STM32 и бесконтактный датчик температуры MLX90614. Подключение по I2C

Программирование микроконтроллеров
Tutorial

Датчик MLX90614 - это датчик с бесконтактным считыванием температуры объекта посредством приема и преобразования инфракрасного излучения. Он умеет работать в трех режимах: термостат, ШИМ выход и SMBus. В режиме термостат датчику не требуется контроллер, он просто держит температуру в заданных пределах, управляя драйвером нагрузки открытым стоком. В режиме ШИМ на выходе датчика появляется сигнал ШИМ, скважность которого зависит от температуры. В целях подключения к контроллеру наиболее интересен режим SMBus. Так как этот протокол электрически и сигнально совместим с I2C мы будем работать с датчиком, используя аппаратный I2C. О нем и пойдет речь в данной статье. Все режимы датчика настраиваются записью в определенные ячейки EEPROM. По умолчанию датчик находится в режиме SMBus.

Читать далее
Всего голосов 17: ↑15 и ↓2+13
Просмотры7.2K
Комментарии 17

Ladder на службе в быту, а также почему это может оказаться Вам интересно и даже полезно

Промышленное программированиеПрограммирование микроконтроллеровПроизводство и разработка электроникиУмный дом

Путь LED-самурая


image

Немного предыстории — около года назад я опубликовал обзорную статью, где была описана минимальная отладочная плата для микроконтроллера серии STM32F405. Особого интереса тогда публикация не вызвала. А зря. Согласен, слишком много «расплодилось» подобных решений на просторах интернета.

Но полезное, как известно, никогда не пропадает даром. И этот случай — тому подтверждение. Недавно коллега открыл небольшую фирму, занялся строительством жилых домов «под ключ». Одним из устройств, которое ему было очень нужно — это система управления динамическим освещением.

Паяльник, гугл, отрицание, гнев, торг, депрессия, принятие — вот его путь в одном предложении.
Теперь обо всем по порядку.
Читать дальше →
Всего голосов 17: ↑17 и ↓0+17
Просмотры7K
Комментарии 9

Низкоуровневое программирование STM32: от включения питания до «Hello, World»

Блог компании RUVDS.comНенормальное программированиеПрограммирование микроконтроллеровDIY или Сделай сам
Перевод
В этом материале я хочу рассказать о том, как писать программы для микроконтроллеров (Microcontroller Unit, MCU) Cortex-M, вроде STM32, используя лишь набор инструментов ARM и документацию, подготовленную STMicroelectronics. У некоторых читателей может появиться вопрос о том, почему кому-то это может понадобиться. Если вам эта идея, на первый взгляд, не показалась очень уж страшной, то, возможно, вам будет интересно то, о чём пойдёт речь в этом материале. И, кстати, подумаем о том, кому и зачем это может пригодиться.

Конечно, разрабатывать программы для MCU STM32 можно с помощью существующих фреймворков. Это может быть ST HAL, обычный CMSIS, или даже что-то, более близкое к Arduino. Но… что тут увлекательного? Ведь, в итоге, тот, кто пользуется каким-то фреймворком, полностью зависим от документации к нему и от его разработчиков. И, с другой стороны, если документация к STM32 кажется кому-то, работающему с этой платформой, так сказать, бредом сивой кобылы, то можно ли говорить о том, что этот человек по-настоящему понимает данную платформу?



Поэтому давайте поговорим о низкоуровневом программировании STM32 и доберёмся от включения питания STM32 до «Hello, World».
Читать дальше →
Всего голосов 49: ↑39 и ↓10+29
Просмотры18K
Комментарии 19

Полноценный трехпортовый USB-Serial адаптер на STM32 Blue Pill (STM32F103C8T6)

Open sourceПрограммирование микроконтроллеров

Некоторое время назад мне в очередной раз потребовался USB-Serial адаптер. И не просто адаптер c RX/TX, а чтобы еще присутствовали управляющие сигналы. И не один UART, а несколько. И еще желательно, в виде одного композитного устройства, чтобы все это хозяйство не занимало больше одного USB-порта. Так и началась эта история...

Читать дальше →
Всего голосов 42: ↑42 и ↓0+42
Просмотры11K
Комментарии 70

Делаем из ENC28J60 внешнюю USB сетевую карту

Настройка LinuxСетевые технологииПрограммирование микроконтроллеров
Из песочницы

ENC28J60 - простой Ethernet контроллер, который может выступать в роли внешней сетевой карты у одноплатных компьютеров с GPIO (для raspberry есть даже готовый драйвер) и прочих ардуин. У моего лэптопа GPIO не выведены, попробуем исправить этот недостаток и прикрутить к нему ENC28J60 посредством STM32F103 и шнурка USB.

Давайте посмотрим, как это можно сделать.

Читать далее
Всего голосов 36: ↑36 и ↓0+36
Просмотры4.4K
Комментарии 4

Кому в микроконтроллере жить хорошо?

Промышленное программированиеПрограммирование микроконтроллеровРазработка под ArduinoПроизводство и разработка электроники

В каком году — рассчитывай, в какой земле — угадывай, задачился вопросами. Насколько ARM быстрее AVR? Какая разновидность протокола Modbus более «быстрая»? ASCII или RTU?
Читать дальше →
Всего голосов 25: ↑22 и ↓3+19
Просмотры6.8K
Комментарии 19

Составное устройство USB на STM32. Часть 1: Предпосылки

Разработка систем связиПрограммирование микроконтроллеров


История эта началась три года назад, когда я осознал, что мне скоро исполнится 50 лет, что я погряз в бумажной работе, и что мне хочется чего-то нового. Работу поменять в моём возрасте уже проблематично, поэтому я решил начать pet-проект.

Первое, что приходит в таких случаях на ум старому радиолюбителю: новая радиостанция. Стопроцентно аппаратные решения остались в далёком прошлом. Сейчас гораздо более актуальны SDR-трансиверы: решение это программно-аппаратное, есть опубликованные примеры реализации, к некоторым из них даже выложены исходные коды прошивок.

Основная проблема в разработке заключалась в том, что несложные SDR-радиостанции, работающие в связке со звуковой картой, требуют наличия у компьютера, к которому они подключены, двухканальных линейных входа и выхода для работы приёмо-передающего тракта, а также COM-порта для работы CAT-интерфейса. В современных же ноутбуках аудиовход обычно предназначен для подключения микрофона гарнитуры и бывает только монофоническим.

Решением проблемы стала реализация составного устройства USB, состоящего из виртуального COM-порта и дуплексной звуковой карты. Кому интересно, как я с этим справился, не имея опыта программирования, милости прошу под cut.
Читать дальше →
Всего голосов 43: ↑42 и ↓1+41
Просмотры9.1K
Комментарии 40