Обновить
128K+

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

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

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

Клавиатура Vibe-кодера на Zephyr RTOS и двухъядерном микроконтроллере STM32WB55

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

В статье приведен мой опыт знакомства с Zephyr RTOS на примере создания беспроводной клавиатуры с тремя кнопками (Enter, Copy, Paste). Затронуты ключевые аспекты: настройка BLE-стека и HID-сервиса, управление энергопотреблением (STOP2, параметры соединения, программный сон), работа с Devicetree (overlay и правки dtsi), отладка через RTT, а также типичные проблемы (прошивка CPU2, EXTI-конфликты, требования HID к шифрованию). Проект полностью воспроизводим и содержит ссылки на полный исходный код и готовую прошивку.

Читать далее

Школьницы ваяют цифру на макетке ничуть не хуже школьников

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

Оказывается, школьницы стран бывшего СССР умеют ваять цифровые схемы на CMOS 4000 ничуть не хуже школьников, причем не только русскоязычных школьников, но и школьников из Индии и Китая. Под конец нашей месячной «Школы не в Замке, а в Клубе Хакеров по викендам» образовалась такая теплая компашка:

Читать далее

C++ для STM32. Часть 1: организация пакетов данных для отправки по интерфейсам связи

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

Привет, Хабр!
Это первая статья из планируемого цикла про мой объектно-ориентированный подход к написанию кода для микроконтроллера stm32 (а именно камня stm32f303vc на отладочной плате stm32f3discovery) с использованием возможностей языка вплоть до стандарта c++20. Но обо всём по порядку.

Читать далее

Оценка скорости реакции RTOS на события

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

продолжение темы RTOS, начало см.
https://habr.com/ru/posts/1060466/
https://habr.com/p/1062346/

Получив результат, а именно, запуск SMP версии RTOS, задался вопросом, а какая же плата в виде ухудшения временнЫх характеристик взимается за межъядерное взаимодействие сервисов RTOS?

Достал из пыльного чулана давно написанный тест производительнсти сервисов RTOS и причесал с целью использования в одно- и много-ядерном режиме.

Читать далее

История проекта «РобоБиатлон»: от детской игрушки до рейдерского захвата

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

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

Меня зовут Владимир Мозговой, и я являюсь основателем данного кружка. Историю одного из наших самых амбициозных проектов - молодёжных инженерных соревнований "РобоБиатлон", я и хотел бы рассказать в этой статье.

Читать далее

Скачивание прошивки с ПЛИС Altera MAX, ну и немного про ремонт

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

Привет Хабр. Мы хотим вам немного рассказать про один интересный недавний ремонт, а так-же свой опыт и инструкцию скачивания прошивки с ПЛИС ALTERA MAX.

Началось все с прибора Fluorophos FLM200 – прибор для проверки качества пастеризации молока.

Читать далее

Запуск файловой системы LittleFS на SPI‑NAND Flash от GigaDevice

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

В этой статье я подготовил обзор широко известной и доступной в продаже микросхемы Flash NAND памяти GD5F1GQ5xExxG. Согласно маркировке, это микросхема энергонезависимой NAND-памяти GigaDevice емкостью 128 МБ с доступом по интерфейсу SPI. Во второй части я расскажу, как установить на эту микросхему LittleFS — отказоустойчивую файловую систему, разработанную специально для микроконтроллеров.

Читать далее

Школьники рассказывают на видео чему они научились за три сеанса работы с микросхемами малой степени интеграции

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

Некий комментатор скормил ИИ мои посты про обучение школьников цифре на макетке, и иишница в частности ответило: “Высокий порог входа для части школьников. Проект предполагает понимание базовых вещей: что такое бит, такт, сдвиговый регистр, перенос, семисегментный индикатор”.

Это конечно ерунда полная. Школьники знают про арифметический перенос из того что их учили складывать столбиком числа во втором классе. Такт - это просто период между миганиями лампочки на модуле тактового генератора. Сдвиговый регистр они понимают по движению лампочек которое отображает его содержимое. А семисегментный индикатор они могут прощупать втыканием провода в пины идущие к каждому из светодиодов.

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

Читать далее

RTT без JLINK

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

“Обнаруженный в кустах рояль” под названием IAR i-Jet TRACE позволяет полноценную отладку SMP (Symmetric Multiprocessing) приложения, запущенного на нескольких ядрах многоядерного процессора, в данном случае это Allwinner T113.

Полноценная это значит: возможность старт-стоп отдельно каждого ядра, установка breakpoints для каждого ядра, просмотр регистров каждого ядра

Читать далее

Асимметричная криптография в Java Card

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

В этой статье разговор пойдет о приложении на Java Card, бегающем на смарт-картах. На хабре уже есть несколько публикаций на эту тему, в своей же я бы хотел немного выйти за рамки стандартного “Hello World”. Здесь вы узнаете как собирать апплет, увидите пример размещения данных в апплет на этапе инсталляции, а также установим защищенный канал между Хостом и картой.

Читать далее

SPI-контроллер на FPGA: от идеи до сигналов на осциллографе

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

Откройте любой учебный материал по FPGA. С вероятностью девяносто процентов он закончится мигающим светодиодом, бегущей строкой на семисегментнике или, в лучшем случае, генератором VGA-сигнала с цветными полосами. Это нормальные учебные задачи, но у них есть общее свойство, о котором редко говорят вслух: они работают сразу или не работают совсем. Прошили — мигает. Не мигает — перепроверили три строчки кода, нашли опечатку, мигает.

Реальная инженерная работа с ПЛИС устроена иначе. Реальная задача — это когда ваша микросхема должна разговаривать с другой микросхемой по протоколу, у которого есть спецификация на сорок страниц, четыре режима тактирования и подводные камни в каждом втором абзаце даташита. Когда «вроде работает» — это худший из возможных результатов, потому что «вроде» означает «упадёт у заказчика». И когда между «код написан» и «устройство работает» лежат недели верификации и отладки.

Эта статья - следующий шаг в моем обучении и попытка показать полный путь: от фразы "нам нужен SPI-контроллер" до момента, когда логический анализатор показывает красивые пачки импульсов на ножках кристалла. Здесь будут не только архитектурные решения и листинги, но и все ошибки, которые были сделаны по дороге: testbench, который врал, потому что master и slave-модель содержали один и тот же баг; гонка на один такт, из-за которой тест прерываний падал при исправном железе; и финальный детектив — прошивка, в которой SPI-сигналы честно генерировались... на других ножках, потому что файл назначения пинов на диске оказался не тем, который мы правили. Каждая такая история — это методика: симптом, гипотеза, эксперимент, причина, фикс.

Читать далее

Как мы ускоряли прошивку ESP (спойлер: совы не то, чем кажутся)

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

Производство пожаловалось: модуль WB-MGE v.3 на ESP32 шьётся слишком долго — 42 секунды на устройство. Что начиналось как простое «склеить вызовы esptool в один», превратилось в копание в исходниках загрузчиков на Си и Расте, патч прошивальщика, разгон системной шины, физику NOR-флеша (туннелирование Фаулера–Нордхайма — теперь я знаю что это такое), и в итоге ускорение почти в четыре с половиной раза. И да, совы оказались совсем не тем, чем казались.

Читать далее

Стоит ли использовать TCXO в LoRa2012?

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

Группа точек мониторинга орошения, распределённых в горной местности, днём нагревается на солнце, а ночью остывает — суточный перепад температур может достигать тридцати–сорока градусов. Обслуживающий персонал заметил, что с наступлением осени обратная передача данных с части узлов LoRa стала давать редкие потери пакетов, а после повторного включения питания работа восстанавливалась. Первой реакцией часто бывает переход на более дорогой термокомпенсированный кварцевый генератор (TCXO). Однако по мере того, как LoRa IP четвёртого поколения повысил толерантность к отклонению частоты, TCXO перестал быть ответом по умолчанию на все проблемы температурного дрейфа.

Читать далее

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

DTMF-MQTT шлюз на ESP32 и SIM800

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

История создания GSM-DTMF-MQTT шлюза как замены телеграм (и вообще любых интернет-сервисов) в проектах домашней и не очень автоматизации.

Читать далее

Как мы придумали NAPI-C как Linux-платформу для прототипирования с UART, I2C, SPI, GPIO

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

Есть классический путь начинающего embedded-разработчика: взять Arduino (плата для прототипирования с микроконтроллером), подключить датчик через I2C, написать 30 строк кода, порадоваться результату. Потом взять микроконтроллер ESP32 — чуть мощнее, Wi-Fi из коробки, уже интереснее. А потом наступает момент, когда задача требует полноценного TCP/IP-стека, SSH-доступа, записи данных в базу, отладки через gdb (GNU Debugger, отладчик в Linux) и еще пяти вещей, для которых на микроконтроллере нужно написать половину ОС.

Читать далее

Проектируем с нуля калькулятор на FPGA. Часть 8: От платы разработки до реального устройства

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

← Седьмая часть

В предыдущем посте я писал о микрокоде и слое скриптинга. На этом этапе калькулятор почти полностью существовал только в ПО: в виде десктопного Qt-приложения, выполняющего симуляцию, или в виде страницы с WebAssembly в браузере. Это удобная среда для разработки и демонстрации, но это не калькулятор. Калькулятор должен лежать на столе, его можно взять и постучать по кнопкам.

Сегодня мы поговорим об этом этапе (за исключением издевательств над кнопками).

Читать далее

Пингвин в гостях у Дельфина, или UNIX‑like система на Flipper Zero

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

Когда на экране терминала появилось приглашение #, Flipper Zero уже сложно было назвать просто устройством для работы с радиопротоколами, NFC и инфракрасными пультами. Передо мной находился маленький Unix-подобный компьютер: с ядром, процессами, командной оболочкой и файловой системой на microSD.

Читать далее

Поставил четыре датчика влажности на одну шину I2C — и они разошлись на 10%

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

У каждого датчика температуры и влажности в даташите написана своя погрешность. Но честная проверка — не читать даташит, а положить несколько штук в один и тот же воздух и снять показания в один и тот же момент. Я взял четыре популярных копеечных модуля с AliExpress — BME280, BMP280, AHT20 и HDC1080 — посадил их на одну шину I2C к одной ESP-шке и вывел всё на одну веб-страницу: у каждого датчика живое значение и график тренда, рядом.

Температуры совпали в пределах полуградуса. А вот с влажностью получилось интересно: один датчик показал на почти 10 процентных пунктов больше соседнего, который лежал в пяти миллиметрах от него. Ниже — как это выглядело, почему так вышло и на чём собран сам дашборд (спойлер: это несколько строк C++, без единой строчки фронтенда).

Читать далее

Подключаем к Raspberry Pi Pico MIDI-клавиатуру и делаем музыкальный синтезатор

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

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

Многие могут спросить: а в чём проблема? Взял МIDI-клавиатуру, подключил к компьютеру или смартфону с программой и играй сколько хочешь. Но у меня другая цель — понять, как нажатие на клавишу превращается в звук.

Читать далее

Дальняя связь на модулях LoRa: принимаем сигнал ниже уровня шума

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

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

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

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

Из этой статьи вы узнаете, как появились устройства LoRa и почему они могут принимать сигналы ниже уровня шума. Вы узнаете, как работать с модулями LoRa, подключенными к микрокомпьютеру Raspberry Pi, научитесь конфигурировать эти модули с учетом ограничений законодательства, а также передавать с их помощью сообщения на километры. В завершение статьи я расскажу, как сделать простую погодную станцию, измеряющую температуру, давление и влажность. Данные будут передаваться через LoRa и отображаться на OLED-мониторах, подключенных к передатчику и приёмнику.

Читать далее