Обновить
199.59

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

Учимся программировать микроконтроллеры

Сначала показывать
Порог рейтинга
Уровень сложности

Мои самодельные программаторы

Время на прочтение3 мин
Охват и читатели7.9K

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

Читать далее

Новости

Фильтр на Триггерах Шмитта

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели5.1K

В этом тексте я написал про своеобразный фильтр нижних частот.

Это гистерезисный фильтр на триггерах Шмитта.

Читать далее

Автономный радиодатчик температуры на солнечной батарее

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели10K

Тема автономных датчиков, не требующих замены или ручной зарядки элементов питания т.е. обслуживания довольно интересна. Здесь уже публиковались ряд статей на эту тему, что в какой-то мере поспособствовало началу моих экспериментов в этом направлении. Что в итоге у меня получилось, читайте в этой статье…

Читать далее

Хакинг бытовой техники: одна шина, чтобы управлять всеми

Время на прочтение12 мин
Охват и читатели10K

Двое реверс-инженеров пробуют разобраться, почему в старой стиральной машине Miele перестал работать отжим. Устранить неполадку им так и не удается — зато они умудряются отреверсить закрытый диагностический протокол и вытащить прошивку управляющей платы. А затем — написать утилиту, которая делает то же, что и проприетарный сервисный софт Miele, только без лицензий и посредников.

Детали этого эксперимента мы подробно разобрали в прошлой статье. Здесь история могла бы закончиться — но одной стиралки исследователям оказалось мало. 

Дальше они вскрыли посудомойку BSH, подключились к шине обмена данными D-Bus и нашли механизм доступа к памяти, позволяющий выгружать прошивку с любых устройств BSH через эту шину. А к финалу исследования и вовсе ударились в откровенный инженерный троллинг, научив облачное приложение BSH управлять техникой бренда-конкурента.

Продолжаем разбор доклада Hacking Washing Machines с конференции 39C3 и смотрим, как попытка разобраться в логике одной капризной стиралки превращается в операцию по стыковке двух закрытых экосистем бытовой техники.

Читать далее

Интеграция утилиты Artistic Style в скрипт сборки прошивки

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели5.3K

Есть утилита для автоматического выравнивания отступов в исходных кодах. Называется astyle.exe.

В этом тексте я покажу, как работать с утилитой Astyle.

Читать далее

А вы уже подали заявку в «Железо»? Рассказываем о нашей номинации в «Технотексте» и призах за лучшие статьи

Время на прочтение5 мин
Охват и читатели5.7K

Конкурс лучших статей Хабра «Технотекст-8» в разгаре. Подать заявку можно до 17 апреля 2026 года включительно. 

Уже третий год YADRO выступает хранителем номинации «Железо: проектирование и технологии производства». Сегодня расскажем, какие статьи ждем и что за призы подготовили для победителей (спойлер: на этот раз за 1 и 2 место вручим комплект из 3D-принтера, платы, цифрового осциллографа и не только). Заодно вспомним статьи, которые вышли в топ в прошлом году, — сможете посмотреть примеры и усилить свои работы. Погнали!

Читать далее

Как подружить RFID и MAX7219 в проектах Arduino (и не сойти с ума)

Время на прочтение10 мин
Охват и читатели7.1K

Arduino — это не только про соединение проводов и написание скетчей, но и про умение подружить железки, которые, казалось бы, созданы друг для друга, но упорно не желают работать вместе. Эта статья — история одной такой дружбы. Рассматривается решение, написанное и протестированное на основе товара «Умный дом на базе Arduino. Большой набор + книга», который вы можете приобрести в нашем Интернет-магазине.

Читать далее

Хакинг бытовой техники: от реверса стиралки к созданию открытого сервисного ПО

Время на прочтение12 мин
Охват и читатели13K

«Однажды у нашей старенькой стиралки где-то нарушилась логика, и она решила, что отжим нам не нужен. Вопреки нашим ожиданиям, вместо полусухих вещей мы получили мокрые». 

С этой поломки началось исследование Северина фон Внук-Липински и Хайо Нёренберга, в ходе которого им удалось восстановить работу диагностического протокола стиральной машины Miele, получить доступ к скрытым функциям и извлечь прошивку платы управления.

В этой статье разберем их доклад Hacking Washing Machines с конференции 39C3 и проследим, как мелкая бытовая неисправность привела к полноценному реверсу стиралки, а затем — к созданию свободной утилиты, которая заменяет закрытый фирменный софт для ремонта техники Miele.

Читать далее

Электроника как социальный конструкт: микросекундные таймстампы на STM32

Уровень сложностиСложный
Время на прочтение13 мин
Охват и читатели6.6K

Иногда в работе инженера кажется, что текущая задача является уникальной, что с такой проблемой никто ни разу не сталкивался. Соответственно, решение должно быть таким же уникальным.
Однако при более пристальном взгляде зачастую оказывается, что задача не просто не уникальна, она сама по себе является представителем некоего класса задач, для которого выработано общее типовое решение.

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

Во всех этих задачах требуется получать временные метки — таймстампы. Если вы используете микроконтроллер STM32, сделать это очень просто.

Зафиксировать время

Про открытость АСУ ТП по мотивам дискуссий в комментариях

Уровень сложностиПростой
Время на прочтение12 мин
Охват и читатели8.7K

В этой статье я изложил своё видение, что такое открытая автоматизированная система управления технологическими процессами (АСУ ТП), почему этой теме уделяется так много внимания со стороны промышленных заказчиков и ведущих мировых вендоров. Разобрал несколько наиболее распространенных критических аргументов от скептиков из профессионального сообщества.

Читать далее

Структуры данных на практике. Глава 5: Связанные списки — убийцы кэша

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели12K

«Связанные списки — это goto структур данных.», — авторство приписывают разным системным программистам.

История из учебника

Все студенты, изучающие computer science, узнают о связанных списках на первом курсе по структурам данных. Их описание звучит привлекательно:

Преимущества (согласно учебникам):

- Вставки и удаления за O(1) в известных позициях

- Динамический размер: увеличиваются и уменьшаются согласно необходимости

- Пространство не тратится впустую: можно распределять ровно столько, сколько нужно

- Гибкость: простота реализации стеков, очередей и других структур

Недостатки (согласно учебникам):

- Поиск за O(n): необходим обход, начиная с головы списка

- Лишняя память: указатели добавляют оверхед

- Невозможность произвольного доступа: нельзя выполнять переходы в произвольные позиции

Вывод из учебника: «Используйте связанные списки, когда требуются частые вставки/удаления и не нужен произвольный доступ».

Вроде бы звучит разумно?

Проверка реальностью

А вот, чего учебники нам не говорят: связанные списки — это почти всегда плохой выбор.

Не потому, что ошибочен анализ «О» большого, в нём всё правильно, а потому, что он неполон. Он забывает про оборудование.

Читать далее

Типовая разметка памяти STM32F4

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели11K

Как Вы могли заметить, у микроконтроллеров STM32F4 секторы NOR Flash памяти обладают разным размером: 16kByte(4 шт), 64kByte (1 шт), 128kByte ( 7+ шт.).

Это накладывает определенную специфику на программирование микроконтроллеров STM32F4.

Из каких секций обычно состоит Flash память микроконтроллерной программы?

В этом тексте я предлагаю простое решение проблемы разметки памяти для случая работы с микроконтроллерами STM32F4.

Читать далее

ESPB — брат WASM. JIT всемогущий

Время на прочтение7 мин
Охват и читатели8.7K

Доброе время суток! Так уж вышло, что написание статьи подоспело аккурат к празднику. И пока одни раздают поцелуи, а другие принимают в подарок долгожданные носки, я решил подготовить продолжение этой хардкорной разработки.

Со времени первой публикации прошло ровно 3 месяца. За это время переработал многое: добавил полноценный JIT для Xtensa и RISC-V, внедрил кучу оптимизаций в транслятор. Все это старательно тестировал на чипах ESP32, ESP32-C3 и ESP32-C6 (последний — по остаточному принципу, запустил только основной тест, главная отладка шла на первых двух).

Встречайте главные нововведения.

Читать далее

Ближайшие события

Незаконченный полёт — часть 2: biDshot, или Как я разговорил регулятор

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели10K

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

Читать далее

Реальный Real-time: управление ориентацией без фазовых задержек на быстрых МК

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели7.5K

В задачах стабилизации и высокоточного наведения присутствуют постоянные проблемы — классические алгоритмы (вроде PID-регуляторов) на высоких скоростях либо начинают звенеть из-за шумов дифференциальной составляющей, либо безнадежно отстают от динамики цели из-за фазового лага. С другой стороны, попытки внедрить туда тяжелые нейросети разбиваются о нехватку ресурсов микроконтроллера и неприемлемые задержки вычислений (latency).

Я разработал алгоритм управления, в основе которого лежит легковесное рекуррентное нейро-алгебраическое ядро. Оно работает напрямую с матрицами вращения в топологическом пространстве SO(3), что позволяет избежать множества проблем классической аппроксимации.

Читать далее

Незаконченный полёт

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели11K

Ровно полгода назад, 18 августа 2025 года, я опубликовал здесь свою первую статью о портировании прошивки AM32 на отечественный микроконтроллер К1946ВК035.

Ссылка на статью - https://habr.com/ru/articles/938128/

Те, кто читал ту статью (а таких людей, уверен, немного), помнят: не весь функционал удалось портировать с сохранением исходной производительности из-за некоторых ограничений в работе периферийных модулей отечественного микроконтроллера.
Напомню суть проблемы: микроконтроллер слишком часто уходит в прерывания для обработки входящих сигналов DSHOT, которые мы пытались обрабатывать сугубо софтварно, без применения DMA (но с небольшими хитростями). Отсюда и проблемы со своевременной обработкой сигналов других частей программы.

Читать далее

Шестибитный процессор без единой картинки

Уровень сложностиСложный
Время на прочтение12 мин
Охват и читатели5.5K

Всем привет, всем крепких нервов, решительности, смелости, силы воли и упорства. Ощущение «что-то страшное грядёт» довлеет всем настолько, что любая креативность убивается на корню. Однако, наш рептильный мозг редко бывает прав. Давайте скажем кортизолу решительное «нет» и не будем самоубивать тот участок жизни, который у нас есть здесь и сейчас. Рептильный мозг не знает, что мы давно уже не в пустыне среди шушпанчиков и никакой потенциальной пользы «в случае чего» от тех решений, которые он навязывает, не будет — а будет один только вред.

Итак, встречайте: ядро микроконтроллера с шестибитными байтами. Глава первая: описание «на словах».

Это обычный «школьный процессор», на котором студентам показывают базовые принципы работы железа. Fetch, Sum, Jump… В принципе, это роднит его как с древнейшими процами, имевшими 8-16 команд, так и с современными, разной степени эзотеричности (вплоть до Single Instruction Set Computer, имеющий всего одну команду типа «инверсия указанного бита и затем безусловный переход на указанный адрес»). Но я решил вдруг, ХЗ с какого перепугу, придать ему практический смысл в нашем странном веке, когда даже в одноразовые вейпы лепят грошовые 32-битники, которые потом летят в помойку.

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

Да я всё равно и на нём Doom запущу!

Программист микроконтроллеров: что спрашивают на собеседованиях

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели27K

В интернете есть много разных статей по решению задач с IT-собеседований, но на русском языке по программированию микроконтроллеров я видел только одну статью на Хабре. Недавно я менял работу: посещал много компаний и отвечал на вопросы по поводу различных аспектов моей профессии. По итогам этих и более ранних встреч решил написать о том, чем на собеседованиях могут озадачить программиста микроконтроллеров.

Дисклеймер: эта статья размещена в блоге YADRO, но список вопросов, выделенных в тексте, — это компиляция моего многолетнего опыта и десятков собеседований в разные компании. С наймом в конкретную компанию текст не связан.

Читать далее

Система функционального контроля для микросхем ADV7180BCPZ & ADV7343BSTZ

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели6.9K

В данной статье я описал, как мы разрабатываем систему для функционального контроля микросхем ADV7180BCPZ (SDTV Video Decoder) и ADV7343BSTZ (Multiformat Video Encoder). Показана архитектура системы, общий алгоритм и сценарии тестирования.

Читать далее

Распознавание речи и голосовое управление на Repka Pi 4, автономная работа, real-time, нейросеть Vosk на базе Kaldi

Уровень сложностиСредний
Время на прочтение18 мин
Охват и читатели8.8K

В современном мире технологии распознавания речи используются очень широко. Например, они нашли применение в системах управления умным домом, в устройствах IoT, при управлении различным оборудованием. Наличие в одноплатных микрокомпьютерах портов вводы/вывода и промышленных интерфейсов позволяет управлять устройствами голосом.

В статье рассказано, как настроить локальное (автономно работающее) распознавание речи в реальном времени на микрокомпьютере отечественного Российского производства Repka-Pi 4 Optimal, на борту у которого есть всего 2 Гбайт оперативной памяти.

Рассмотрим такую работу на конкретных примерах и разберём подробно, как это работает. Дальше простор для фантазии и создания своих проектов открывается безграничный.

Читать далее
1
23 ...