Как стать автором
Обновить
138.53
Рейтинг

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

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

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

Вы в самом деле хотите стать программистом микроконтроллеров?

Программирование микроконтроллеров *Карьера в IT-индустрии Производство и разработка электроники *Электроника для начинающих

В этом тексте я напишу о буднях программиста МК в РФ.

Что вообще пишут программисты МК и на чем?

Основной язык программирования это С. Языку С уже более 50лет. Кроме микроконтроллеров С уже практические никому не нужен. Навыки программирования на С очень слабо конвертируются. В свое время, видимо на С написали компилятор для С++ и нужда в С для desktop как таковая отпала. A сам С остался для сборки артефактов для микроконтроллеров с экстремально малыми ресурсами. Хотя и сейчас большинство компаний в ЕС уже микроконтроллерные сборки собирают на С++ 17. 

Иногда программистам MК приходится обсчитывать аналоговые цепи и вычислять какие-то сложные 8-этажные формулы и строить графики. Для этого практикуют бесплатный интерпретатор Python.

Главным образом программисты МК составляют Board Support Package, пишут драйверы для новых умных периферийных чипов, пишут загрузчики, портируют RTOS(ы) на разные процессорные ядра, пишут код-генераторы, скрипты сборки, составляют модульные тесты, изредка производят рефакторинг, часто чинят ошибки в Legacy коде, изредка что-то изменяют в коде Assembler(а), который запускается до вызова функции main().

Иногда программист МК даже ничего не пишет сам вообще. Важно уже не сколько уметь программировать сколько уметь тестировать и собирать, улучшать из готового кода из интернета. Какие-то исходники можно взять из github или ядра Linux. Там есть код на многие темы. Драйверы для множества чипов.  Важно уметь верифицировать найденные сорцы и аккуратно подключить их к нужной сборке.

Читать далее
Всего голосов 121: ↑102 и ↓19 +83
Просмотры 20K
Комментарии 180

Новости

TinyML — машинное обучение на микроконтроллерах

Блог компании FirstVDS Программирование *Машинное обучение *Программирование микроконтроллеров *Разработка под Arduino *


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

Тем не менее подобные интеллектуальные решения всё сильнее входят в жизнь и начинают захватывать всё новые и новые сферы.

Одним из достаточно жарких направлений в современной микроэлектронике и интеллектуальных системах является тема встраивания подобных алгоритмов в маленькие неэнергозатратные системы (потребление которых при работе этих алгоритмов измеряется милливаттами). Подобный подход называется TinyML — алгоритмы машинного обучения на микроконтроллерах. Об этом и поговорим в статье ниже.

Читать дальше →
Всего голосов 16: ↑16 и ↓0 +16
Просмотры 2.8K
Комментарии 11

А JTAG то у вас для красоты только, или нужен зачем?

FPGA *Программирование микроконтроллеров *Производство и разработка электроники *
Tutorial

Как можно CPLD JTAG пины использовать как активную часть работающего устройства?

Читать далее
Всего голосов 16: ↑15 и ↓1 +14
Просмотры 3K
Комментарии 1

29 Атрибутов Хорошей Блок-Схемы для PCB

Анализ и проектирование систем *Разработка робототехники *Программирование микроконтроллеров *Схемотехника *Производство и разработка электроники *

В этом тексте написал о забытом понятии: блок-схемы для разработки электроники. В ГОСТ(е) их называли Э1 (Схема структурная). Блок-схем это хороший уровень абстракции при анализе электронного устройства или PCB. Представил несколько атрибутов, которые сформировались при создании блок-схем. Привел примеры образцовых блок-схем. 

Читать далее
Всего голосов 22: ↑18 и ↓4 +14
Просмотры 3.6K
Комментарии 61

Микроэлектроника, взгляд изнутри: автоматическая машина для сборки и размещения Zheng Bang ZB3245TSS с сюрпризом

Блог компании М.Видео-Эльдорадо Антивирусная защита *Программирование микроконтроллеров *Читальный зал
Перевод


Ассортимент М.Видео и Эльдорадо традиционно велик. Однако, машин по производству микрочипов у нас в продаже пока не было. Вашему вниманию предлагается переводная история о ребятах, купивших черную коробочку с сюрпризом. В качестве сюрприза оказался банальный троян. Энжойте.
Читать дальше →
Всего голосов 19: ↑10 и ↓9 +1
Просмотры 1.2K
Комментарии 7

Kincony KC868-A16: контроллер 16-го уровня

Блог компании RUVDS.com Программирование микроконтроллеров *Разработка для интернета вещей *Разработка под Arduino *DIY или Сделай сам


Итак, мы с вами потренировались на начальных контроллерах компании Kincony (KC868-A4, KC868-A8, KC868-Uair, KC868-AG) и теперь переходим в «высшую лигу» и разберём устройство и назначение более серьёзного контроллера KC868-A16. Это представитель всё той же линейки ESP32 контроллеров Kincony для DIY и малой автоматизации, но имеющий другую архитектуру и некоторые дополнительные (долгожданные) возможности, например, встроенный интерфейс RS485.

Здесь всё также присутствует возможность работы как по беспроводному Wi-Fi, так и по проводному Ethernet, возможность работы с беспроводными устройствами 433 МГц и подключения дополнительного оборудования и т. д., но не будем забегать вперёд и постараемся обстоятельно разобраться с тем, что же представляет собой Kincony KC868-A16 и как его можно использовать в вашем хозяйстве.
Читать дальше →
Всего голосов 44: ↑44 и ↓0 +44
Просмотры 3.7K
Комментарии 11

Разработка гироскопического эхолокатора

Программирование микроконтроллеров *Схемотехника *
Из песочницы

Личные проекты – это важный элемент любой технической профессии. Они дают какую-то нить идентичности, столь востребованную в наше время – вот ты уже не следуешь вслепую по линейному конвейеру жизни, а выходишь за рамки, создаешь что-то новое, попутно расширяя свой технический кругозор и повышая квалификацию. Ну, или переводишь большую часть дохода и/или времени на очередную попытку, потому что «в этот раз точно получится, ну столько же сил вложено, куда отступать».

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

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

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

Читать далее
Всего голосов 17: ↑17 и ↓0 +17
Просмотры 4K
Комментарии 12

Как мы выкручиваемся в условиях постоянной нехватки чипов (часть 1)

Блог компании СпецПромДизайн Программирование микроконтроллеров *Схемотехника *Производство и разработка электроники *

Проблемами с постоянной нехваткой микросхем сейчас никого не удивить. Началось это всё ещё в конце 2020 года, в начале 2021 стала сильно тяжелее, с введением санкций в 2022 году стал просто кошмар!

Читать далее
Всего голосов 48: ↑47 и ↓1 +46
Просмотры 9.6K
Комментарии 18

Вслед за солнцем. О гелиотропии и подвижности солнечных батарей

Программирование микроконтроллеров *Научно-популярное Энергия и элементы питания Экология

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

Читать далее
Всего голосов 19: ↑19 и ↓0 +19
Просмотры 4.2K
Комментарии 11

Пишем свою библиотеку для I2C OLED микродисплея 128х32px

Блог компании RUVDS.com Программирование *Программирование микроконтроллеров *Разработка под Arduino *DIY или Сделай сам

Недавно я обратил свой взгляд на небольшой, но весьма привлекательный OLED микродисплей, который можно вполне успешно применять в своих самоделках, одна беда — известные библиотеки для него поддерживают только латинский шрифт. Ситуация усугубляется тем, что я использую его для подключения к esp32, а не Arduino. Поэтому arduino-библиотеки можно сразу отбросить. Что с этим делать и как дальше жить, об этом мы и поговорим в этой статье.

Читать дальше →
Всего голосов 65: ↑59 и ↓6 +53
Просмотры 7.3K
Комментарии 23

Библиотека для адресных светодиодов STM32

Open source *C *Программирование микроконтроллеров *Гаджеты DIY или Сделай сам
Из песочницы

Драйвер для STM32 для реализации протокола адресных светодиодов (WS2812, WS2811, SK6812, и т.д.), с рациональным использованием буферной памяти и DMA.

Читать далее
Всего голосов 21: ↑20 и ↓1 +19
Просмотры 6.7K
Комментарии 23

Матричная клавиатура и Ардуино — использование прерываний

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

Традиционно матричные клавиатуры подключают к платам Ардуино ( и другим) по следующей схеме (см. https://habr.com/ru/post/460409/ )

Читать далее
Всего голосов 9: ↑6 и ↓3 +3
Просмотры 3.5K
Комментарии 37

Что означает информация в заметке Коммерсанта «Британия морозит «Байкал»

Высокая производительность *FPGA *Программирование микроконтроллеров *Производство и разработка электроники *Процессоры

Газета "Коммерсантъ" опубликовала важный материал "Британия морозит «Байкал». Российские процессоры лишаются доступа к технологиям". К сожалению, авторы заметки никогда не видели то, о чем они написали, то бишь semiconductor IP, и не понимают его природы. Зато его видел я. Поэтому я решил написать к их заметке своего рода толкование:

1. Что именно британские компании ARM и Imagination продают российским лицензиатам, таким как Байкал? (Спойлер: не патенты, хотя патенты в картину входят)

2. Чем Apple отличается от Байкала в лицензировании semiconductor IP?

3. Сколько стоят лицензии на ядра и сколько стоит архитектурная лицензия?

4. Как компания-разработчик semiconductor IP может обнаружить, что произведенный кем-то чип использует ее ядро?

5. Были ли прецеденты подобных высоких отношений с китайскими компаниями?

6. Почему в статье упоминается МЦСТ (Эльбрус)? Они же вроде сами спроектировали CPU собственной архитектуры? (Спойлер: а GPU?)

7. Могут ли британские патенты стать проблемой для разработчиков российcких ядер с архитектурой RISC-V?

8. Что логично ожидать от российских полупроводниковых стратегов?

Читать далее
Всего голосов 245: ↑237 и ↓8 +229
Просмотры 42K
Комментарии 84

KeybJr – универсальное подключение клавиатуры к PCjr

Блог компании RUVDS.com Программирование микроконтроллеров *Производство и разработка электроники *Старое железо
Перевод

В качестве продолжения своей предыдущей статьи об IBM PC и его особенностях я решил реализовать KeybJr – небольшой открытый проект, позволяющий подключать к PCjr клавиатуру через проводное соединение или ИК-порт. Натолкнуло меня на это отсутствие в системе возможности для подключения нормальной клавиатуры за исключением редких и дорогостоящих сторонних решений.
Читать дальше →
Всего голосов 30: ↑30 и ↓0 +30
Просмотры 3.4K
Комментарии 3

Разглядывая JTAG: что внутри?

FPGA *Программирование микроконтроллеров *Производство и разработка электроники *Электроника для начинающих

Ознакомившись с работой JTAG в общих чертах и написав файл BSDL для воображаемой микросхемы в предыдущей статье, можно рассмотреть работу модуля JTAG внутри микросхем более детально. Для этого мы напишем прошивку для микроконтроллера и для ПЛИС (на «Си» и на «SystemVerilog»), которые позволят считывать/устанавливать логические уровни на отдельных выводах микросхемы через данный интерфейс.

Реализовать интерфейс JTAG
Всего голосов 31: ↑31 и ↓0 +31
Просмотры 6.2K
Комментарии 8

Go для самых маленьких. Разрабатываем для Arduino и других микроконтроллеров

Блог компании OTUS Go *Программирование микроконтроллеров *Интернет вещей

Язык Go благодаря своей простоте, возможности компиляции в выполняемый образ и встроенной поддержке многозадачности стал, в некотором смысле, "серебряной пулей" для создания высокопроизводительных инструментов и, совместно с Rust, сформировал современный технологический ландшафт для DevOps. Но в действительности, благодаря поддержке набора инструментов LLVM, стало возможным использовать Go и для встраиваемых систем, например при создании мобильных приложений для Android/iOS (например, проекты android-go или gomobile) или микроконтроллеров. В этой статье мы поговорим о возможностях проекта TinyGo, его преимуществах по сравнению с C++ для Arduino и других микроконтроллеров, рассмотрим несколько примеров по работе с оборудованием (на примере реализации драйвера шины SPI для светодиодной ленты WS2812).

Читать далее
Всего голосов 13: ↑12 и ↓1 +11
Просмотры 4.6K
Комментарии 4

Модуль Black Pill как альтернатива бюджетным Led контроллерам T1000S, SP107 и т.п. для управления чипами WS2812B, APA102

Программирование микроконтроллеров *Софт Электроника для начинающих Визуальное программирование *
Продолжаю серию статей на тему использования цифровой светодиодной ленты с индивидуальным управлением пикселей.

Более 5ти лет мы занимаемся поставкой LED контроллеров для световых шоу с радио управлением. Сотни коллективов в различных уголках мира успешно используют наше железо и софт.


Компактность, отличная радио синхронизация, стабильный фреймрейт и адекватность ПО позволили создавать костюмы высокой детализации, применять самые смелые дизайнерские решения.


Но все же, большая часть аудитории пользуется недорогим китайским железом, в пределах $8-$15, для решения своих простых задач.
Читать дальше →
Всего голосов 15: ↑14 и ↓1 +13
Просмотры 3.3K
Комментарии 10

Как отобрать у микроконтроллера QN902x его прошивку

Беспроводные технологии *C *Реверс-инжиниринг *Программирование микроконтроллеров *

Когда у меня появился умный чайник Xiaomi Mi Smart Kettle Pro - у меня возник тот же вопрос, что и у многих его пользователей: почему его нельзя включить удаленно? Чайник позволяет подключиться к нему через блютуз, задать температуру которую он будет поддерживать и еще пару незначительных параметров, но его невозможно удаленно включить, что нивелируют его ценность как компонента умного дома.

Читать далее
Всего голосов 98: ↑98 и ↓0 +98
Просмотры 14K
Комментарии 51

Соединение нескольких устройств через SPI

Блог компании FirstVDS Программирование микроконтроллеров *Разработка под Arduino *
image
SPI: Master&Slaves. Источник картинки

Довольно часто при создании различных самоделок на основе микроконтроллера Arduino разработчики как бы «приделывают к телу руки и ноги», то есть присоединяют некую периферию, которая управляется с центрального микроконтроллера. Однако иногда возникают такие ситуации, когда необходимо соединить «два мозга друг с другом», то есть соединить два микроконтроллерa. Об этом мы и поговорим в этой статье.

Читать дальше →
Всего голосов 30: ↑25 и ↓5 +20
Просмотры 6.5K
Комментарии 29

KC868-AG: IoT шайба

Блог компании RUVDS.com Программирование микроконтроллеров *Разработка для интернета вещей *Разработка под Arduino *DIY или Сделай сам


Не знаю как у вас, а меня первая ассоциация при взгляде на Kincony KC868-AG — это хоккейная шайба. На самом деле это очередной IoT контроллер от компании Kincony на популярном микроконтроллере ESP32, предназначенный для IR управления домашней аппаратурой и дополнительно снабжённый беспроводным приёмником и передатчиком 433 МГц для взаимодействия с устройствами наподобие метеодатчиков, умных розеток и тому подобных устройств.

Во многом KC868-AG напоминает уже рассмотренный нами раньше контроллер KC868-Uair, но есть и некоторые отличия. Об этих отличиях и о том, как можно использовать KC868-AG мы и поговорим дальше.
Читать дальше →
Всего голосов 40: ↑40 и ↓0 +40
Просмотры 4.7K
Комментарии 14

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