Обновить
64K+

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

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

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

Основы Universal Measurement and Calibration Protocol (XCP)

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

XCP (Universal Measurement and Calibration Protocol) — это бинарный автомобильный интерфейсно-независимый протокол прикладного уровня модели OSI-7. Используется при разработке и отладке ECU. Появился в далёком 2003 году как потомок ранее существующего протокола CCP.

Читать далее

Новости

Перистальтический насос‑дозатор на 3D‑принтере для лабораторной установки водоподготовки

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

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

Для такого исследования нужен точный перистальтический насос‑дозатор на маленький расход. Реагенты должны поступать в воду непрерывно, с заданной дозой в мг/л, от 1 до 13 мл/мин. Реагентов два — коагулянт и флокулянт, значит, нужно два канала.

Подходящий готовый насос я не нашёл и спроектировал свой. Рассказываю, как он устроен, где я ошибся и как он работает на установке.

Читать далее

Как я запустил Bad Apple с частотой 20 fps на E‑Ink дисплее за $71

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

Мне удалось запустить полноценное чёрно-белое видео на стоковой плате ESP32-S3 с экраном на электронных чернилах: никакой ПЛИС и никакого ПК — панель управляется напрямую по параллельной шине. В статье я подробно расскажу, как работает этот драйвер. Если коротко, то в нём используется векторный блок, принимающий по 64 пикселя за раз; управляющие сигналы (waveforms), которые хранятся в регистрах, а не в таблицах, и дельта-движок, который обрабатывает только изменения. При этом точность всей системы контролировалась с помощью планшетного сканера.

Читать далее

Почему завод превращает электронику в тыкву. Как защитить промышленные контроллеры от электромагнитных бурь

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

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

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

Читать далее

SoftSerial: Программный UART на STM32

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

В этом тексте я написал про то как реализовать программный UART на микроконтроллере.

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

В этом случае одним из решений может быть пуск программного UART.

Вот об этом и текст.

Читать далее

Взлом режима Secure Debug на RP2350 с помощью лазера и фотонной эмиссии

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

В этом эксперименте мы с помощью дифференциальной микроскопии фотонной эмиссии засекли, в какой момент на чипе RP2350 (ревизии A4) активируется регистр отладки, и точно определили, куда целиться лазером. Затем, поймав нужный момент через интерфейс SWD, мы с помощью лазерного импульса точечно переписали два бита, восстановив доступ к режиму Secure Debug.

Читать далее

FASt: как я написал приложение для создания ассет паков для Flipper Zero и чуть не сошёл с ума из‑за китайских флешек

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

Как моя жена стала моим первым заказчиком

Началось все с того, что моя любимая красавица жена сказала мне, что я провожу слишком много времени со своим девайсом Flipper Zero. Постоянно кручу его в руках, прошиваю, делаю всякие настройки и т.п. А на неё стал меньше смотреть.

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

Читать далее

Монитор на e-ink для сервера за выходные

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

Если совсем коротко: плата Waveshare ESP32-S3-ePaper-1.54, один кабель USB и экран 200×200, который висит рядом с сервером и показывает загрузку процессора, температуру видеокарт, память, диск, аптайм, живой пинг и т.д по выбору админа.

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

Как собрать такой себе

Как украсть «невидимое»: извлекаем прошивку из Execution-Only Memory

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

Во время исследования контроллеров Realtek я столкнулся с таким любопытным способом защиты прошивки от реверс-инжиниринга, как XOM (eXecution Only Memory). Эта технология разработана ARM уже около 10 лет назад. Опираясь на свой опыт, назвать ее очень популярной не могу. Однако, в Realtek решили использовать XOM в ряде своих контроллеров, которые попали к нам на исследование.

Если коротко, XOM – это аппаратно-программная технология, формирующая execute-only область памяти. Суть XOM состоит в аппаратной фильтрации транзакций на шине AXI (AHB). Если транзакция в защищаемую область запрашивает исполнение инструкции - доступ разрешен, если чтение/запись данных – доступ запрещен. Таким образом, прочитать или перезаписать прошивку в XOM просто так не получится.

Данная статья описывает подход к восстановлению спрятанной в XOM прошивки, основанный на анализе изменений состояния памяти и регистров процессора, возникающих вследствие выполнения инструкций процессора.

Решить ребус...

Чип, спроектированный в Грузии. 4 часа лекций про ASIC, FPGA, TinyTapeout, с вопросами про тайминг и CDC

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

После поездки в Грузию (см. пост Хакерспейсы Батуми и Тбилиси + ASIC чип спроектированный в Грузии) мы доотладили проект Tbilisi CORDIC и засабмиттили его на сайте TinyTapeout для производства на фабрике IHP в Германии, Leibniz-Institut für innovative Mikroelektronik.

Затем мы устроили две ондайн-лекции на Zoom-е - одну на английском, другую на русском. С вопросами и ответами лекции растянулись на два часа каждая, и мы выложили их на YouTube, ВКонтакте и RuTube. Ниже выложенные видео и их содержание на русском и английском.

UPD: В России MPW-сервисами по производству малосерийных чипов для университетов занимается МИЭТ, см. статью про кооперацию МИЭТ и ТУСУР.

Читать далее

Я написал верификатор eBPF для микроконтроллера. А потом ядро Linux объяснило мне, где я неправ

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

Ученики подарили мне ESP32. В коробке было всё, что обычно: датчик температуры, реле, горсть светодиодов, круглый дисплей и провода, которых, как выяснится позже, всегда не хватает ровно на один.

Нормальный человек собирает из этого термостат за вечер. Я собрал термостат, посмотрел на него и подумал: а неприятно же будет каждый раз лезть с кабелем, если я захочу поменять порог с 22 на 23 градуса.

Дальше мысль поехала не туда, и в итоге на плате оказался интерпретатор eBPF со своим верификатором байткода. Логика управления теперь заливается по Wi-Fi обычной программой на C, скомпилированной clang -target bpf. А потом я взял десять маленьких программ и прогнал каждую через свой верификатор и через верификатор ядра Linux, чтобы посмотреть, кто из нас двоих что думает.

Сошлись шесть из десяти. Про оставшиеся четыре и написана статья — они оказались интереснее, чем сам проект.

Читать далее

О решении головоломки Jane Street по реверс‑инжинирингу

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

Или: почему я никогда не выбираю лёгких путей

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

Чтобы было понятнее, о чём именно пойдёт речь — вот публикация «Can you reverse engineer an ASIC?» в блоге Jane Street, с которой всё это и началось.

А если кому вдруг захочется почитать (ужасный) код, который я использовал в этом состязании, можете заглянуть в мой репозиторий на GitHub.

Читать далее

Бенчмарк аппаратного крипто блока К1921ВГ015

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

Я давненько подписан на TDMLab вконтакте и под одним из постов про новый отечественный микроконтроллер возник вопрос про аппаратный криптографический ускоритель данного МК. Так получилось что у меня на руках есть отладочная плата на К1921ВГ015 и я как раз работаю с криптографией в том числе. Поэтому решил написать небольшой тест и представить общественности, потому что многие относятся настороженно к отечественным микроконтроллерам (как и я по началу), а зря.

Читать далее

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

SoftSerial: Двоичный ЦАП на STM32 (или формирователь цифрового паттерна)

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

В этом тексте я показал как сделать универсальный полностью конфигурируемый однобитный ЦАП на основе микроконтроллера STM32F407ZG.

Суть проста.
В программе есть RAM массив двоичных семплов длинны N, которые надо отправить "на улицу" со строго выдержанным микросекундным периодом.

Есть частота дискретизации, задаваемая частотой переполнения аппаратного таймера.

Надо выдать на GPIO пин этот поезд из нулей и единиц. Причем сделать это так, чтобы в ARM процессоре было не более 2х прерываний: половина перемещения и окончание перемещения.

В тексте представлена пошаговая методичка того как это сделать.

Читать далее

SoftSerial: Двоичный АЦП на STM32 (или самодельный логический анализатор)

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

Можно ли на STM32 реализовать однобитный ADC?
Причем без использования аппаратного ADC.

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

При этом во время чтения N однобитных семплов должно произойти не более 2х аппаратных прерываний.

Да, можно.

Читать далее

Переделка радиоприемника «Электроника 26–01»

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

В этой статье я расскажу о том, как я чинил и модернизировал довольно редкий и несколько необычный советский радиоприемник «Электроника 26–01», и о том, какую «тайну» скрывает его управляющая микросхема.

Читать далее

Сторож на ESP32-CAM

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

# Сторож на ESP32-CAM

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

Читать далее

Коллекция Lumeward. Дверной автоответчик

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

Все знают Arduino, Raspberry Pi, ну или Flipper на худой конец. Это экосистемы вокруг аппаратных платформ. Мой светильник из прошлой статьи тоже в некоем роде аппаратная платформа. И я решил тоже сделать вокруг него экосистему.

Экосистему я назвал Lumeward.

Читать далее

Морфинг клеточных структур в игре «Жизнь» на микроконтроллере

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

Это уже не первый мой эксперимент с оживлением перехода графических форм. Мой первый эксперимент был с кривыми Безье: Шрифт на кривых Безье на микроконтроллере, затем с матричным шрифтом Матричный шрифт с анимацией на микроконтроллере. В этот раз наблюдение за чужим проектом навело меня на мысль об анимации Game of Life. Почему именно Game of Life - точки рождаются и умирают в непосредственной близости друг от друга, что позволяет построить автоматические переходы между ними.

Читать далее

Инженерный дневник — умная розетка на esp32

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

Как автоматизировать полное обесточивание материнской платы после прошивок — без Wi-Fi, без магии, зато с полным разбором что и почему.

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