Обновить
246.21

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

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

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

Электронные песочные часы с Алиэкспресс

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

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

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

Насколько получилось лучше, чем у предшественников? Судить читателям.

Читать далее

ЛикБез по CAN-FD

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

В этой заметке я написал про свой опыт работы с CAN шиной. Вы узнаете с какой стороны следует подходить к CAN сети.

Образно выражаясь CAN - это труба для чисел. Можно метафорично сказать, что CAN - это нервная система автомобиля. Именно по САN передаются сигналы от датчиков и к исполнительным механизмам.

Читать далее

GigaVulnerability: обход механизмов защиты микроконтроллеров GigaDevice GD32

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

При разработке аппаратных решений на базе микроконтроллеров производители хотят защитить свою прошивку от попадания в руки злоумышленников, так как в ней могут содержаться чувствительная информация, ключи шифрования, уникальные алгоритмы, представляющие ценность, и др. Для этого в большинстве микроконтроллеров реализованы технологии защиты от считывания (readout protection) встроенной флеш-памяти. Но так ли хорошо они защищают?

К сожалению, не все технологии Readout Protection работают так, как задумывалось. Для обхода защиты могут быть использованы уязвимости отладочных интерфейсов, нетривиальные атаки типа fault-injection и даже инвазивное вмешательство.

Мы в Positive Labs занимаемся исследованиями безопасности различного «железа». Поэтому, когда в наши руки попало устройство на базе микроконтроллера семейства GD32 компании GigaDevice, мы сами не заметили, как начали исследовать применяющиеся в этих микроконтроллерах технологии защиты. Данные микроконтроллеры довольно популярны и используются повсеместно, в том числе в качестве замены микроконтроллеров STM32, т.к. зачастую совместимы с ними по выводам и даже по карте адресного пространства. Исследование оказалось довольно увлекательным, а результаты — впечатляющими!

Вперед

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

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

В прошлой части мы немало узнали о внутреннем устройстве прошивки. Но ни грубая сила видеокарты, ни интеллект моих скриптов на Питоне не помогли: алгоритм генерации 64-битного ключа так и остался тайной, а мотоцикл не взломанным. Что же, в этой части нас наконец-то ждет удача, а на десерт предложу разбор прошивки BCM с двойным разоблачением.

Читать далее

Гений. Миллиардер. Плейбой. Филантроп. Участник «Технотекста-7»

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

Открылся прием заявок на седьмой «Технотекст» — конкурс лучших статей Хабра. В этом году мы в YADRO вновь поддерживаем номинацию «Железо: проектирование и технологии производства» и призываем «железных человеков» присылать свои материалы. В ней есть за что побороться: для каждого победителя заготовлен большой набор подарков: платы, осциллографы, книги, инструменты… и даже сертификаты на рассыпуху. Для лучшего молодого автора — отдельный призовой комплект, а для тех, кому немного не хватило до победы, — поощрительные наборы мерча. Другие подробности — в посте.

Читать далее

Солнечный коллектор для умеренного климата

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

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

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

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

Изначальными причинами были только хорошо аргументированные «лень ходить из бани в дом, чтобы помыться», «не хочу бочку выше головы», «хочу хороший душ в бане» и т. д. Чтобы читатели были в курсе — баня мобильная, режим работы — финская парная, но возможно поставить душевую кабину в предбаннике. Расстояние до дома метров 15, прокладывать дополнительную сеть ГВС экономически оказывается не выгодным.

Читать далее

Включаем функции сбора статистики в ESP32-arduino для PlatformIO

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

При использовании arduino framework в PlatformIO нет возможности конфигурирования esp32 arduino core, больша́я часть функций по умолчанию отключена, а для изменения конфигурации предлагается вручную пересобирать SDK. Давайте пройдем этот квест.

Речь пойдет о функциях FreeRTOS vTaskGetRunTimeStats / vTaskList, но таким же образом можно изменить и другие опции sdkconfig.

Читать далее

Подключить педали экспрессии к компьютеру за полчаса

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

Эта статья — сжатый туториал на тему подключения педалей экспрессии к компьютеру. От читателя не требуется специальных навыков в области электроники, но умение паять желательно. На минималистичное повторение подключения при наличии всех узлов и материалов действительно достаточно полчаса (автор проверил с секундомером и уложился в 10 минут). С другой стороны, верхнего предела нет: потенциал по обработке сигнала с педалей (кривые, лимиты) при этом ограничивается разве что фантазией, средствами языка Python и быстродействием контроллера.

Читать далее

Мини обзор контроллеров от Artery (AT32)

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

В этой статье я хочу поделиться своим опытом знакомства с микроконтроллерами компании Artery Technology, которые представляют собой одну из альтернатив STM. Рассмотрим, какие модели микроконтроллеров и макетных плат доступны для покупки, скачаем ПО и библиотеки от производителя и сравним их с привычным STM32. Цель статьи — на примере своего опыта показать, что из себя представляют микроконтроллеры Artery, какие у них есть приятные и сомнительные стороны, и что нового они могут предложить. Надеюсь, этот материал станет полезным ориентиром в выборе компонентов для ваших разработок.

Читать далее

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

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

Читать далее

STM32F4xx + DCMI + USB Custom (CDC + UVC)

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

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

Результаты:

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

далее

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

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

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

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

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


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

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

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

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


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

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

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

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

Читать далее

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

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

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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

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

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

Читать далее

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