Обновить
164.63

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

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

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

Настройка ToolChain-нa для Разработки на Микроконтроллерах YTM32x

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

Абсолютно все микроконтроллеры программируются одинаково, если собирать код из make файлов.

Настало время освоить очередное семейство ARM-совместимых микроконтроллеров. За плечами уже AVR, MSP430x, LPC21x, STM32x, MDR32x, ESP32x, SPC58x, CC26x2, NRF53x, AT32Fx. Теперь вот YTM32x от компании YUN TU (Suzhou YTM Semiconductor Co Ltd).

С какой же стороны следует подходить к микроконтроллерам YTM32x?
Давайте разбираться...

Читать далее

Создание CAN-концентратора на базе esp8266

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

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

Читать далее

Пора ли менять DCS на универсальную систему управления?

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

Что такое универсальная система управления (UCS), и действительно ли она способна заменить распределённые системы управления (DCS) в будущих задачах по управлению технологическими процессами? Каковы основные преимущества UCS?

Читать далее

STM32F4xx + DCMI + USB Custom (CDC + UVC)

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

В этой публикации рассмотрено использование микроконтроллера STM32F4xx для создания устройства с поддержкой DCMI (Digital Camera Interface), USB custom CDC+UVC (Communication Device Class + USB Video Class). Показано, как настроить и интегрировать эти функции с использованием STM32CubeMX и STM32CubeIDE, а также предоставлена ссылка на проект.

Результаты:

Продемонстрирована успешная работа устройства, которое может передавать изображения и видео через USB, а также использовать виртуальный COM-порт для обмена данными с компьютером.

далее

Ода структурам на примере работы с блоком питания Fnirsi DPS 150

Уровень сложностиСредний
Время на прочтение16 мин
Количество просмотров1.7K
В предыдущих двух статьях цикла, мы сначала научились разбирать протокол для управления блоком питания FNIRSI DPS150, а затем – изучили все основные команды для работы с ним. Теперь с одной стороны, было бы полезно показать готовую программу для работы с этим блоком питания, но с другой… А уровень ли это Хабра? Ну программа, ну для управления железкой… Да мы, системные программисты, по три библиотеки в день пишем на основе готовых команд… Нет! Для уровня Хабра в статье должна быть какая-то изюминка!

Поэтому я решил при разработке функционала, подробно рассказать про важность перехода от структур к «сырым» данным и обратно, от «сырых» данных к структурам. А чтобы было интереснее, сделаю это не только на языках C/C++, но ещё и на Питоне.

Кому интересно, приступаем!


Читать дальше →

Cyfral Intel. Перепрошиваем «говорящий» домофон

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

У меня давно уже лежал такой девайс, и я всё думал, что бы такого интересного про него рассказать. И вот, увидев пост товарища zatim про звонок (и немало им вдохновившись), я вдруг догадался: да это же почти что более навороченный преемник того самого девайса! А раз так, то как насчёт препарировать и его?


Итак, в сегодняшней статье поговорим про устройство и работу таких домофонов, их адовый UX, кодовые панели и ещё много про что. Заодно узнаем, как он говорит и можно ли загрузить в него свои собственные звуки. Как водится, будет много интересного.
Читать дальше →

Использование OpenOCD для установки/снятия запрета чтения памяти CH32V20x

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

Запретить чтение памяти МК можно из кода программы, но для повторного программирования придется снять запрет. И все бы ничего, но под Linux, для микроконтроллеров WCH, нет решения «из коробки» для разблокировки памяти. Для преодоления этого неудобства появилось решение — расширить возможности скрипта OpenOCD для работы с МК.

Читать далее

Исследуем «вредоносную» флешку RJ45

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

Обратная разработка аппаратного обеспечения бывает очень сложна — но иногда для неё может потребоваться только уютное кресло и Google Translate.

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

Недавно юный предприниматель взбаламутил соцсети, заявив, что приобретённый им в Китае девайс для подключения Ethernet-to-USB сразу был начинён вредоносом, который «ускользал от виртуальных машин», «считывал клавиатурный ввод» и «использовал характерные русскоязычные элементы».

Считайте, что я этого не говорил.

Читать далее

Язык Crystal на микроконтроллерах

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

Язык Crystal каждый раз удивляет меня. Я думал что язык с синтаксисом Руби не может быть быстрым как Си. Я думал что учитывая что его авторы сидят на Маке или Линуксе его никогда не портируют на винду. Я думал что не справятся с многопоточностью учитывая насколько это усложняет шедулер. И уж совершенно точно я был уверен что портировать его на микроконтроллеры нереальная задача - большой рантайм, ориентированная на GC стдлиба.

Сейчас я покажу как можно писать для микроконтроллеров на Crystal.

Читать далее

Портирование приложения под RISC-V в прямом эфире и не только: 12 лекций по разработке под открытую архитектуру

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

Уже второй год мы проводим бесплатную Зимнюю школу по программированию для RISC-V. В этом году она стала масштабнее, ведь и интерес к открытой процессорной архитектуре значительно возрос. Онлайн-лекторий, доступный каждому, продлится до конца января: вы сможете выбрать интересующий вас доклад и послушать его в «прямом эфире» или посмотреть в записи. Анализ производительности, примеры оптимизации программ, особенности разработки под GPU — актуальными знаниями поделятся эксперты из YADRO и преподаватели ведущих технических вузов России и Беларуси. 

Читать далее

Очень самодельная сенсорная система для инфракрасного счётчика людей

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

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

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

Почему они это делают? Из сочувствия к гибнущим на пожарах людям? Конечно. Но... бесплатно работать в течение нескольких лет... Всё ясно: любители. Не подумайте, что это означает некомпетентность. Мои товарищи компетентны. Ещё как! Нет, это означает, что они влюблены в задачу. Хотя временами ненавидят её. В любви это бывает: задача трудная.

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

Я, не задумываясь даже, ответствую им: «Подумаешь, проблема какая! Надо лишь расставить кое‑где инфракрасные счётчики людей. Вроде тех, что установлены на входах в магазины. Счётчик замечает человека, когда тот пересекает невидимый инфракрасноый луч. Если у счётчика два параллельных луча, один рядом с другим, то он может „сообразить“, входит человек или выходит. Счётчики должны быть связаны в сеть, чтобы сеть суммировала людей по всем входам и выходам. Это же просто.»

Читать далее

Небольшая переделка одного устройства

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

Понадобился мне на самолете цифровой компас, какое-то подобие привычному КИ-13.
Чтобы можно было определить направление на истинный север.

Читать далее

Запускаем советский процессор из журнала «Радио» с помощью Arduino

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

Привет! Меня зовут Илья Мамай, я инженер-программист в Синтакоре. В этой статье я хочу поделиться опытом некромантии сборки советского компьютера по мотивам «Микро-80», схемы которого были опубликованы в журнале «Радио». Но собирать я буду не по этим схемам. Используя их как опору и источник вдохновения, я начну с запуска процессора КР580ВМ80А (советского клона Intel 8080), определения признаков жизни и продолжу постепенным наращиванием функционала и возможностей системы. Здесь мы займемся и радиотехникой, и DIY, и программированием как самого процессора, так и современных микроконтроллеров. Но перед этим поделюсь историей, как я, будучи студентом 4 курса, дошел до этого…

Читать далее

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

Как взломать Harley Davidson. Часть 2

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

В прошлой части дизассемблировали код прошивки ECM последнего поколения мотоциклов в Ghidra, подправили его и запустили на тестовой плате Aurix TC275 Lite Kit, получили возможность обмениваться с ним сообщениями CAN и отлаживать его в winIDEA. Теперь настало время посмотреть, что же там интересного.

Читать далее

Работа с RISC-V контроллерами на примере GD32VF103 и CH32V303. Часть 4: переход на Си и Таймеры

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

Макетная плата GD32VF103


Часть 1. Введение


Часть 2. Память и UART


Часть 3. Прерывания


Часть 4. Си и таймеры


Часть 5. DMA


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

Читать дальше →

Преимущества Edge AI (из Отчёта  о  технологиях EDGE AI)

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

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

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

Читать далее

Рассматриваем циклы процессора в контроллере CH32x035

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

Когда мне предстоит начать работу с новым микроконтроллером, я обычно гляжу, а какое у него быстродействие GPIO. Сколько тактов на одну запись уходит по факту. Такая у меня традиция. Было дело, я так выяснил, что китайские клоны STM32 работают с GPIO чуть быстрее, чем оригинал. Для дешёвых контроллеров обычно ничего более интересного такие проверки не выявляют, но традиция есть традиция. Не изменял я ей и при начале освоения CH32x035 на базе RISC-V. И вот для него картинки получились такими интересными, что я решил поделиться ими с общественностью. Не то, чтобы там было что-то революционное, но от привычных мне они точно отличаются.

А ещё я добавлю к ним немного выводов… И нутром чую, что в комментариях мне объяснят, что я понимаю всё неправильно, а на самом деле… Но я буду только рад обоснованным высказываниям. Вместе мы установим истину.

Читать далее

SSD NVME M.2 через PCIe на Repka Pi 4 — это новый уровень. Впечатления, тесты, сравнения скорости

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

Недавно появилась новая модель Российского одноплатного микрокомпьютера - Repka Pi 4 Optimal, в котором множество улучшений - можно устанавливать модуль eMMC (Embedded MultiMediaCard), чтобы использовать его вместо карты памяти SD как для хранения данных, так и для загрузки операционной системы, но и это оказалось не самой главной “фишкой” новой модели Repka Pi - вскоре появилась версия платы этого одноплатника с интерфейсом PCIe 2.0 1x полностью совместимый с PCIe Raspberry Pi 5, т.е. все платы расширений для RPi 5 работают на Repka Pi 4 Optimal PCI. И это уже по настоящему интересно. Давайте посмотрим и попробуем вместе.

Читать далее

О мостиковых схемах и асинхронной логике

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

Александр Кушнеров
10.01.2025

 Аннотация – Дизайн замкнутых комбинационных схем основан на законах поглощения конъюнкций и дизъюнкций. Если в такой схеме используется только один выход, то её транзисторная реализация будет избыточной, а граф этой реализации будет содержать ложные циклы. Значения на выходах комбинационной схемы, в том числе и замкнутой, можно считать правильными лишь через какое-то время, необходимое для завершения всех переходных процессов. В статье показано как дополнить замкнутую схему индикатором завершения переходных процессов, т.е. сделать её асинхронной.

1. Введение

Замыкание выхода комбинационной схемы на один или несколько её входов может дать новую комбинационную схему. Поскольку данные обрабатываются от входов к выходам, обратную связь можно представить как направленную петлю на графе. С другой стороны, графы, которые задают контактные мостиковые схемы, содержат не направленные петли (циклы). Именно из-за петель такие схемы часто являются минимальными. Преобразование графа мостиковой схемы в последовательно-параллельный соответствует схеме на логических элементах. Это преобразование размыкает все петли и называется декомпозиция в базисе И/ИЛИ. Мы будем рассматривать декомпозицию, которая даёт минимальное количество логических элементов. Чтобы корректно замкнуть полученные схемы нужно выполнить определённые условия. В качестве этих условий мы используем известную замкнутую схему.

В инженерной практике релейно-контактные мостиковые схемы начали использоваться по крайней мере со второй половины 1890-х годов [1]. Однако, привлечение булевой алгебры для их анализа и синтеза состоялось лишь во второй половине 1930-х годов [2]. Рассмотрим простейшую мостиковую схему из пяти замыкающих ключей (контактов), назовём её K5. Каждый ключ в этой схеме управляется своей переменной. Присвоить переменные можно например так, как показано в Табл. 1. Последовательное соединение ключей записывается как произведение переменных, а параллельное – как сумма. Таким образом, чтобы записать булеву функцию схемы в дизъюнктивной нормальной форме (ДНФ), нужно найти все возможные пути от входа к выходу.

Читать далее

Велика ли полуночная невязка двухлучевых инфракрасных счётчиков

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

Как известно, инфракрасные счётчики зарабатывают себе на жизнь, считая людей. Обычно, на входах в торговые центры и отделы.

Самый бесхитростный из них — счётчик с одним инфракрасным лучом. Он считает подряд всё, что движется. Точнее, всё, что прерывает его луч. Неважно, входит человек или выходит: счётчик добавит к переменной‑сумматору одну единицу.

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

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

Как оценить эту расплывчатость? Какова типичная величина ошибок счёта для этого случая? Выясним это на практике.

Читать далее

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