Обновить
214.27

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

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

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

Процессорный модуль Corgi SoM v1 на базе Xilinx Zynq-7000

Уровень сложностиСредний
Время на прочтение25 мин
Количество просмотров3.2K

Коллеги, приветствую, обзорная статья работы с Corgi SoM v1 на базе AMD (Xilinx) Zynq-7000. Статья охватывает работу модуля с Vivado IDE, Vitis IDE, подготовку базового образа, работу с Embedded Linux (u-boot, device tree, linux kernel, rootfs). Подготовку образа для SPI NOR памяти, SPI NAND памяти и сопутствующие моменты необходимые для старта работы с данным модулем. Дополнительно статья будет полезно для linux embedded разработчиков, которые делать будут bring-up плат на базе AMD(Xilinx) zynq платформ.

Читать далее

JsonX — JSON на микроконтроллерах по-человечески

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

JSON сейчас встречается буквально везде - от веб-сервисов до IoT, но есть нюанс: почти все популярные JSON-библиотеки писались с расчётом на десктопы и серверы, где оперативку никто не считает по килобайтам. А вот на микроконтроллерах, особенно Cortex-M, каждый байт на счету. Да, конечно, можно гонять сырые структуры и их же писать в конфиг-файл, это как говорится "не запрещено конституцией". Но отладка в таком случае превращается в отдельный квест. В какой-то момент я понял, что мне надоело вручную возиться с JSON на микроконтроллерах: писать километры кода для обхода дерева cJSON, ловить утечки и гадать, где malloc снова подставит. Из всех этих соображений и родился JsonX — лёгкая и минималистичная надстройка над cJSON, которую я делал в первую очередь под микроконтроллеры.

Преимущество JsonX:

Читать далее

Покраска Cтека (Stack Painting)

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

В процессорах ARM Cortex‑M стек растет от большего адреса к меньшему. То есть вниз. В этом тексте я написал как оценивать расходование стековой памяти прямо во время исполнения программы на микроконтроллере. Считать израсходованный стек можно определив соотношение непрерывно прописанных нулей к ненулевым значениям в диапазоне стековой памяти.

Читать далее

Одноразовый вейп в качестве веб-сервера

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

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

Предыстория

Уже пару лет я собираю коллекцию одноразовых вейпов, полученных от друзей и членов семьи. Поначалу я только извлекал аккумуляторы для «будущих» проектов (это точно не синдром Плюшкина), но в последнее время одноразовые вейпы стали гораздо более продвинутыми. Не хотел бы я быть юристом, которому придётся доказывать, что устройство с разъёмом USB C и перезаряжаемым аккумулятором можно классифицировать, как «одноразовое». К счастью, в ближайшее время я не планирую подаваться в юриспруденцию.

В прошлом году я разбирал одну из этих технологичных сосок для взрослых и заметил нечто любопытное: вместо обычной чёрной капли, которой заливают ASIC (Application Specific Integrated Circuit), я увидел небольшую интегральную схему с маркировкой «PUYA». Не буду винить читателей, если это название не вызвало у вас того же восторга, что и у меня — большинство людей никогда его не слышало. Эта компания больше всего знаменита своими флэш-чипами, но впервые я узнал о них из поста Джея Карлсона о самом дешёвом флэш-микроконтроллере. Это довольно мощные крошечные микроконтроллеры ARM Cortex-M0+.

За последний год у меня скопилось довольно много таких одноразок с PY32; это были разные модели вейпов одного производителя. Я не буду бесплатно рекламировать табачный бренд, но выражу благодарность проектировщику за маркировку на отладочных контактах!

Читать далее

Ещё один PID-контроллер. Теория

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

В сегодняшней статье расскажу, как на стенде измеряется угол, чем обеспечивается защита от дурака, и как мне помог ChatGPT.

Читать далее

Электрический стол (или Зачем нужны ARM Cortex-M0)

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

Стол для программиста - это святое. От удобства стола зависит производительность труда программиста и, как следствие, качество результата всей работы.

Именно за столом на работе по сути и проходит вся трудовая жизнь.

В 2024 я купил себе в кабинет для работы стол с подъемной столешницей. Спустя год электроника подъёма внезапно перестала работать. Произошел полный отказ. Семи-сегментный индикатор стал показывать непонятный токен rE5. Кнопки перестали слушаться. Столешница застыла под потолком.

Я не знал, что мне делать. Пришлось разбираться, что же это такое за шайтан машина: электрический стол.

Читать далее

Асинхронность в микроконтроллерах

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

Статья посвящена созданию асинхронных алгоритмов на микроконтроллерах с использованием средств языка С и без RTOS.

Созерцаем электропривод

Делаем брелок с LED матрицей ярче

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

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

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

Читать далее

Pixel Table: от идеи до реализации интерактивного пиксельного стола

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

Меня зовут Анатолий, и я программист с инженерным бэкграундом. Помимо основной деятельности, бэкенд разработки на Go, меня часто тянет собрать что-нибудь эдакое электронно-светодиодное с использованием микроконтроллеров.

Этап 0: Как всё начиналось

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

Читать далее

Глубокий анализ модуля UWB650: от основных принципов до расширенной калибровки задержки антенны

Уровень сложностиСредний
Время на прочтение34 мин
Количество просмотров836

Цель этой главы — заложить теоретическую основу для глубокого понимания функций и производительности модуля UWB650. Начиная с основных принципов сверхширокополосной (UWB) технологии, мы постепенно сосредоточимся на конкретной аппаратной реализации модуля UWB650, предоставляя инженерам необходимые базовые знания и технические спецификации для проведения первоначальной оценки.

Читать далее

Lua, как инструмент во встроенных системах

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

Есть немало проектов по встраиванию интерпретат��ра Lua на микроконтроллеры, и некоторые из них помогли мне в своей работе на начальном этапе. Но в данном случае речь пойдет о коммерческом проекте ПЛК, запущенном 3 года назад. За это время был получен интересный опыт, и я хотел поделиться своими мыслями по использованию Lua как инструмента разработки бизнес-логики в распределенных контроллерах ввода/вывода и управления технологическими процессами и оборудованием.

Читать далее

Обзор USB-CAN переходника USB2CANFD_V1

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

В этом тексте я произвел обзор широко распространенного переходника с USB на CAN? который называется USB2CANFD V1.

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

Читать далее

Медианный фильтр на двух бинарных кучах

Уровень сложностиПростой
Время на прочтение21 мин
Количество просмотров5.5K

В программировании микроконтроллеров порой приходится прибегнуть к медианной фильтрации.

В этом тексте я произвел разбор решения LeetCode задачи 480. Sliding Window Median в контексте реализации на языке программирования Си.

Читать далее

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

DIY: как сделать игру за несколько минут

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

От идеи до готовой игры за пару вечеров: как гуманитарий сделал аркаду на ESP32 с помощью Copilot и Wokwi. Исходники в комплекте.

Читать далее

Знакомство с программным USB на CH32V003

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

Давно хотел сделать устро��ство с USB, но больше всего мне казалось интересным это использовать программное USB. И для микроконтроллера CH32V003 давно существует библиотека rv003usb, которая решает эти задачи. В этой статье можно было бы рассказать как делать простейшее USB-устройство на основе её, но эта библиотека заметно больше и предлагает, помимо самой библиотеки, несколько полноценных рабочих программ: загрузчик и программатор.

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

Попробуем сделать свой Digispark!

Читать далее

Программист embedded лезет в FPGA (часть 2, передышка на семисегментниках)

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

В предыдущей статье мы поморгали диодом. Большое дело, вообще‑то. После удобных сред разработки, вроде VSCode, CubeIDE, или продуктов JetBrains (поклонники Vim вышли из чата), Квартус не кажется очень уж дружелюбным. Плюс смена подхода к разработке: от программы к схеме. Но ничего, вроде, справились. Получается, мы погрузились в тему, наверное, на уровне «намочить ноги». Теперь, неспеша, зайдём по щиколотку.

Читать далее

Интеграция DMR858M: Практическое руководство по созданию пользовательских цифровых раций на ESP32

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

В области разработки встраиваемых систем интеграция радиочастотных (РЧ) функций в продукт часто сопряжена со сложным проектированием аппаратного обеспечения и трудоемкой реализацией стека протоколов. Модуль DMR858M значительно упрощает этот процесс, предоставляя высокоинтегрированную подсистему цифровой мобильной радиосвязи (DMR) с мощностью передачи до 5 Вт.1 Это не просто РЧ-трансивер, а комплексное решение, внутренне объединяющее микроконтроллер (MCU), чип цифровой рации, РЧ-усилитель мощности и аудиоусилитель.1 Такая конструкция позволяет разработчикам управлять полнофункциональным ядром рации — поддерживающим стандарт DMR Tier II, совместимым с традиционными аналоговыми режимами и оснащенным функциями SMS и шифрования голоса — через простой последовательный интерфейс.1

Читать далее

Схемотехника и алгоритмы световых мечей: вызовы и решения

Время на прочтение13 мин
Количество просмотров22K

Сага «Звёздные войны» давно стала больше, чем просто серией фильмов. Миллионы людей объединены общей страстью, и для многих из них обладание своим личным световым мечом становится очень важным. Ведь это не только предмет коллекционирования, технологический артефакт или даже спортивный инвентарь, а символ джедайской (или ситхской) философии.

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

Привет, на связи Крэйл из команды умных устройств Яндекса. Но сегодн�� я расскажу не о Станциях, а о своём необычном хобби. Однажды ко мне обратились производители компонентов с задачей разработать электронику для кастомных световых мечей. Проект оказался ярким во всех смыслах. А в статье я расскажу о том, какие были условия и как я справлялся с поставленными задачами.

Читать далее

CAN-шина (Теория)

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

Вэтом тексте изложены базовые теоретические основы по CAN шине безотносительно к конкретному микроконтроллеру.

CAN — это двухпроводный, дифференциальный, последовательный, полудуплексный интерфейс для передачи бинарных данных между электронными платами (PCB). В качестве кабеля чаще всего применяют одну экранированную витую пару проводов с именами: CAN_L и CAN_H.

Читать далее

Практическое руководство по реализации LoRa-связи точка-точка между модулем LoRa1120 и ESP32

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

Ядром модуля LoRa1120 является чипсет LR1120 от Semtech, интегральная схема, разработанная специально для беспроводной связи на большие расстояния с низким энергопотреблением и для приложений геолокации ¹. Перед началом разработки реальных приложений ключевым фактором успеха является глубокий анализ основных технических возможностей этого модуля. Это не просто LoRa-приемопередатчик, а комплексная платформа, объединяющая несколько режимов связи и функции позиционирования.

Читать далее

Вклад авторов