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

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

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

Сначала показывать
  • Новые
  • Лучшие
Порог рейтинга
  • Все
  • ≥0
  • ≥10
  • ≥25
  • ≥50
  • ≥100

Микроконтроллер + компьютер + своё программное обеспечение

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

Своё устройство на микроконтроллере я начал "пилить" еще в начале 2019-го. Тогда я даже не думал, что захочу связать его с компьютером, но устройство постоянно эволюционирует, и вот настала пора. Причём нужно не просто связать, а написать своё фирменное ПО, которое будет управлять устройством через USB. С подобной задачей я столкнулся впервые, а беглый поиск в сети выдал такие результаты, после которых появилось ещё больше вопросов и каша в голове.

Читать далее
Всего голосов 19: ↑13 и ↓6 +7
Просмотры 9.2K
Комментарии 30

Новости

Проектировщики RISC-V из Yadro покажут школьникам как проектировать процессоры

Параллельное программирование *FPGA *Программирование микроконтроллеров *Процессоры Электроника для начинающих

Через неделю будет выставка ChipEXPO, на которой для начинающих будет школа проектирования железа с упражнениями на FPGA платах, а для более продвинутых - конференция Микроархитектура, верификация и физическое проектирование микросхем.

И на части для школьников, и на части для взрослых будут выступать проектировщики RISC-V процессора из Syntacore / Yadro Станислав Жельнио и Никита Поляков. Сегодня Коммерсант сравнил этот проект с полетом на Луну.

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

Далее мы расскажем про новые упражнения в школе этого года - распознавание и генерацию музыки с помощью FPGA и приведем забавные сведения из советской физматшкольной книжки 1963 года как Бах изменил гаммы.

В конце поста мы покажем, как эта деятельность поможет получить в будущем интересные и высокооплачиваемые работы в Apple, Intel, SpaceX, как и самом в модном в этом сезоне российском микроэлектронном проекте - Syntacore / Yadro (в конце поста скриншоты их объявлений).

Как же все установить до семинара?
Всего голосов 26: ↑25 и ↓1 +24
Просмотры 6.4K
Комментарии 50

«Магический глаз» тёплых ламповых времён — эмуляция на ардуино

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

В магнитофонах и приёмниках моей юности использовались исчезнувшие ныне ламповые индикаторы уровня на лампах 6E1П или 6Е5С. Сейчас пришла пора ностальгирования по "старым временам" и на алиэкспрессе или амазоне можно купить собранные индикаторы, они почти также популярны как часы на лампах "Никси".

Поскольку лампа требует высокого напряжения для работы, в современных устройствах это решается с помощью преобразователя напряжения на таймере 555 упроавлящим мощным полевым транзистором включенным в первичную обмотку повышающего трансформатора, и дальше вторичная обмотка подключается к умножителю напряжения из 4-5 ступеней. Этого достаточно чтобы преобразовать входные 5 вольт в 250 с током 1-2 ma.

Я хочу поделиться своим домашним проектом, суть которого в эмуляции, насколько возможно, "зелёного глаза" лампы 6E1П с помощью быстрого OLED дисплея, контролируемого платой Arduino:

Читать далее
Всего голосов 19: ↑18 и ↓1 +17
Просмотры 10K
Комментарии 27

Контроллер АСУНО с ВЕБ интерфейсом настроек

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

Это моя первая статья на Хабр. Статья посвящена разработке и некоторым особенностям контроллера, поэтому вопросы, относящиеся к организации работы сервера не рассматриваются в данной статье. Но для того, чтобы лучше понять работу контроллера АСУНО некоторые моменты все же будут даны. В статье будет рассмотрено назначение контроллера, дана функциональная схема, фото самого контроллера и подключение внешнего оборудования. В статье приводятся принтскрины веб интерфейса. ВЕБ интерфейсом легко пользоваться, он интуитивно понятен для обслуживающего персонала. Хотя им пользуются только при настройке контроллера во время пусконаладочных работ это сильно экономит время настройки и подготовки контроллера к работе. Наличие в контроллере ТСР клиента и ТСР сервера расширяет возможности диагностики оборудования. Контроллер выполнен на процессоре PIC32MX795F512L фирмы Micrpchip. ПО разработано без использования ОС, написано на С. Возможно данная статья будет иметь продолжение, если заинтересует читателей. Приятного чтения. Область применения

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

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

Зачем нужен отчёт MISRA Compliance и как его получить в PVS-Studio?

Блог компании PVS-Studio Информационная безопасность *C++ *C *Программирование микроконтроллеров *

Если вы не понаслышке знаете о MISRA и хотели бы понимать, соответствует ли ваш проект какому-то из стандартов ассоциации MISRA, то есть решение. Имя ему - MISRA Compliance. С недавних пор PVS-Studio научился генерировать отчёт соответствия по этому стандарту, и хочется поделиться тем, как это делается. Возможно, кому-то это упростит жизнь.

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

Как обмануть автопилот PX4: настоящая HITL-симуляция на шине UAVCAN

Разработка робототехники *Программирование микроконтроллеров *Производство и разработка электроники *Робототехника Мультикоптеры

Мы разработали и хотим представить новый вариант HITL-симуляции дронов, когда автопилот может даже не знать, работает ли он с реальными датчиками на шине или же в симулируемом окружении. Набор программных модулей, работающих в «боевом» режиме и в режиме симуляции (почти) идентичен, в отличие от альтернативного MAVLINK-HITL подхода. Этот проект — наш вклад в экосистему вокруг PX4 и UAVCAN. Будем рады адоптерам и контрибьюторам.

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

Аналоговое и цифровое питание. Мифы и реальность

Блог компании twin3d Разработка робототехники *Программирование микроконтроллеров *Энергия и элементы питания Электроника для начинающих

Иногда разводишь ты такой плату микроконтроллера или изучаешь документацию к чипу и натыкаешься на такую картину: два питания — аналоговое и цифровое. Две земли тоже не редкость. Я встречал людей, которые даже после пары лет работы в индустрии не всегда знали точно, зачем и когда нужно разделять питание и землю и как это корректно делать. Мы попробуем сегодня пробраться вниз по кроличьей норе. В том числе станут понятны практики подключения аудио оборудования проводами, которые покупаются за золотые слитки.

Узнать как разделять питание и властвовать
Всего голосов 47: ↑43 и ↓4 +39
Просмотры 17K
Комментарии 49

Мышь для людей с ограниченными возможностями

Программирование микроконтроллеров *Гаджеты Компьютерное железо 3D-принтеры Здоровье

Речь в данной статье пойдет про проектирование оборудования, которое упрощает работу за компьютером. Предыстория моего небольшого проекта связана, совершенно неожиданно, со спектрумами, apple 2 и прочей ретрокомпьютерной техникой. Есть увлечение такое — ковыряться во всяком старье. Плюс делать это в прямом эфире на YouTube. Коллективный разум помогает чинить. После одного из стримов обратился подписчик с весьма необычной просьбой. Зовут его Александр и у него ДЦП. Соответственно, ему трудно работать на компьютере. А желание работать имеется, что не может не радовать.

Читать далее
Всего голосов 58: ↑57 и ↓1 +56
Просмотры 5.3K
Комментарии 35

Генерация перемещаемого кода для процессоров ARM в компиляторе LLVM

Системное программирование *Компиляторы *Программирование микроконтроллеров *


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



К сожалению, в системах Cortex M такой путь напрямую невозможен. Программа привязана к абсолютным адресам и не может исполняться в произвольном месте. С чем это связано и как мы сделали её перемещаемой, подправив компилятор LLVM, рассказано в данной статье.
Читать дальше →
Всего голосов 14: ↑12 и ↓2 +10
Просмотры 1.9K
Комментарии 13

Как выполнить аппаратную реализацию энкодера h264, не написав ни строчки кода на VHDL/Verilog?

Блог компании ЦИТМ Экспонента Алгоритмы *FPGA *Программирование микроконтроллеров *Инженерные системы

Вступление

Сжатие видео с камеры является важной задачей как при трансляции данных через сеть Интернет, так и при передаче данных через радиоканал. Это позволяет в разы сократить объем передаваемой информации при небольшой потере детализации в исходном видео. Сейчас самым популярным алгоритмом для сжатия видео является кодек h264. Хотя уже существует следующая реализация кодека – h265, но он имеет большую вычислительную сложность алгоритма и пока не нашел столь широкого применения, и его реализацию можно оставить на потом :)

Модельно-ориентированное проектирование - это что?

При разработке алгоритма для ПЛИС можно выделить два основных подхода: написать алгоритм сразу на языке описание аппаратуры VHDL/Verilog/SystemC или использовать более высокоуровневые средства проектирования. Во втором случае вначале строится эталонная модель алгоритма в MATLAB/Simulink, тестируется, верифицируется и постепенно подготавливается к автоматической генерации HDL кода из алгоритма. Конечно, мы выбрали второй вариант, т. е. наш план – на основе MATLAB кода сделать эталонную модель алгоритма Simulink, а после – адаптировать ее к автоматической генерации кода и получить HDL для ПЛИС.

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

Как мы автоматизировали нефтедобычу, или немного о телемеханике

Промышленное программирование *SCADA *Разработка систем связи *Программирование микроконтроллеров *Инженерные системы

"Перед тем, как начинать автоматизацию, нужно избавиться от бардака. Иначе получится автоматизированный бардак."

А расскажу-ка я сегодня вам немного про АСУТП. Вернее, не совсем. Когда говорят "АСУТП", на ум обычно приходят какие-нибудь производственные площадки, "серьезные" ПЛК типа Siemens или Allen-Bradley с алгоритмами на МЭКовских языках программирования, мнемосхемы в SCADA-системах по всем правилам ГОСТ, и огромные тома проектов под все это дело... Нет, сегодня речь пойдет не о том. Сегодня мы поговорим о "неправильном" АСУТП. А именно, о системах радиотелемеханики.

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

ЭТТ, или когда в резюме можно написать, что профессионально моргаю светодиодом

Блог компании Миландр Программирование *Программирование микроконтроллеров *Производство и разработка электроники *Научно-популярное

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

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

Как это работает?
Всего голосов 36: ↑36 и ↓0 +36
Просмотры 3.6K
Комментарии 12

Шрифты для графического дисплея? Это же очень просто

Open source *Алгоритмы *C *Программирование микроконтроллеров *Софт
Из песочницы

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

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

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

Оптимизируем производительность Teensy 4.1 при разработке в NXP MCUXpresso

Системное программирование *Программирование микроконтроллеров *Компьютерное железо


В предыдущей статье мы выяснили, что производительность контроллера MIMXRT1062, применённого на плате Teensy 4.1 можно существенно поднять, перераспределив внутреннюю память по сильносвязанным шинам. Для этого мы воспользовались механизмом FlexRAM. В библиотеках от Teensyduino всё уже сделано за нас, но в данном цикле статей я рассказываю, как вести разработку в среде MCUXpresso от NXP. Мы произвели необходимые доработки проекта, и вот уже данные ложатся в достаточно потолстевший банк памяти DTCM:



То же самое текстом
Memory region         Used Size  Region Size  %age Used
     BOARD_FLASH:       32400 B         8 MB      0.39%
        SRAM_DTC:       22420 B       256 KB      8.55%
        SRAM_ITC:          0 GB       256 KB      0.00%
         SRAM_OC:          0 GB       512 KB      0.00%


Но банк ITCM, где должен быть код, пуст. Сегодня мы научимся настраивать среду разработки для переноса большей части кода в него.
Читать дальше →
Всего голосов 6: ↑5 и ↓1 +4
Просмотры 474
Комментарии 0

Создание контроллера вторичных часов “Воронеж”

Блог компании RUVDS.com Ненормальное программирование *Программирование микроконтроллеров *DIY или Сделай сам
Tutorial
Отладочный стенд.

Многие из вас на предприятиях и иных объектах бывшего СССР встречали зелёные сегментные часы. Были самостоятельные устройства, типа “Электроника-7”, но так же существовали и вторичные, как в предыдущем посте, только более сложного строения — часы семейства “Воронеж”. Они также включались в единую часовую сеть предприятия и показывали то время, которое передавалось от главных первичных часов по проводам.

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

Тем не менее, я смог их победить, и могу теперь рассказать, как же они работают и поделиться кодом своего проекта.
Читать дальше →
Всего голосов 85: ↑84 и ↓1 +83
Просмотры 10K
Комментарии 65

Отладка C на ZX Spectrum

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

Если ваш Спектрум пылится на полке, эта статья подскажет, как дать ему вторую жизнь, а вам — новое хобби. Возможно, вы хотели бы встретить вызов: всего лишь ~40кб памяти, включая код программы. Реализовать хорошее приложение крайне затруднительно, так как вы столкнетесь не только с нехваткой памяти, медленным процессором, но и отсутствием нормальной отладки на уровне исходного кода.

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

LOAD ""
Всего голосов 51: ↑51 и ↓0 +51
Просмотры 11K
Комментарии 40

Чуть подробнее о настройке среды разработки esp-idf для разработки приложений Esp32

Программирование *Eclipse *Компиляторы *Программирование микроконтроллеров *
Из песочницы
Tutorial

Эта заметка посвящена установке Eclipse и Visual Studio Code под Linux и Windows. Особенность состоит в том, что для всех IDE и для работы в консоли используется одна и та же установка esp-idf.

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

Проигрыватель мелодий из игры Monkey Island

Блог компании RUVDS.com Ненормальное программирование *Алгоритмы *Программирование микроконтроллеров *DIY или Сделай сам
Перевод

Приключение начинается...

Кратко:

  • Я модифицировал DOSBox для извлечения пар значений частоты/задержки мелодий PC-спикера из игры «Остров обезьян».
  • Затем с помощью алгоритма Хаффмана я втиснул всю эту музыку в ATiny85 (512 байтов ОЗУ, 8Кб флэш).
  • После этого собрал небольшую плату с динамиком для ее воспроизведения…
  • … в качестве подарка моим племянникам и племянницам, с которыми встречусь в ближайшем будущем спустя год изоляции из-за пандемии.

Все верно – их дядя откровенный ботан, позаботившийся о том, чтобы детство племяшей не прошло без знакомства с Гайбрашем Трипвудом:)
Читать дальше →
Всего голосов 38: ↑37 и ↓1 +36
Просмотры 3.5K
Комментарии 13

По пути к вершине Эльбруса: Кузнечик на DSP

Блог компании Миландр Криптография *Программирование микроконтроллеров *
Из песочницы
Tutorial

C интересом прочитал статью о впечатляющих показателях  процессора Эльбрус  на алгоритме шифрования  Кузнечик.  В этой же статье приведена ссылка на проект  с реализацией указанного алгоритма.    Вот мне и захотелось   посмотреть, как пойдет  реализация этого алгоритма шифрования на сигнальном процессоре  К1967ВН44(28) , с которым мне часто приходится работать.  

Шаг за шагом

DSP   серии  К1967ВНхх  имеют собственную среду разработки CM-LYNX , компилятор С и С++ на базе Clang.   Этого набора достаточно чтобы попробовать  сделать оценку производительности процессора  на указанной выше реализации алгоритма . В архиве проекта   два файла: в одном 8-битная версия   алгоритма, а в другом 128-битная версия, т.е. вариант для процессоров поддерживающих операции со  128-разрядными числами.  

Для полноты эксперимента, начинаю с 8-битной версии. После компиляции и запуска на отладочной плате К1967ВН44, при максимально возможном уровне оптимизации  –О2,  получаю результат

Self-test OK!

kuz_encrypt_block(): 54.804 kB/s (n=200kB,t=3.649s)

kuz_decrypt_block(): 52.435 kB/s (n=200kB,t=3.814s) 

Программа    информирует , что тест самопроверки  прошел успешно , а затем производит замер скорости шифрования-дешифрования. По умолчанию, в инструментальном софте для платы К1967ВН44 используется определение  частоты процессора 250 МГц. Для этой частоты и произведены вычисления.            

Чтобы понять, что это за уровень скорости  54.804 kB/s, приведу аналогичный показатель последовательной обработки для процессора Эльбрус(8СВ) -  150 мегабайт в секунду на одном ядре. До Эльбруса  нужно еще ускориться где-то в 3 000 раз.  

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

Самогонный аппарат — полный автомат. Часть 3. Заключительная

Программирование микроконтроллеров *DIY или Сделай сам
Прошло +100500 лет с момента первой и второй публикаций. Настала пора поставить точку в этом многолетнем вопросе.

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


КДПВ. Точь-в-точь — мой аппарат
Поехали? Нет! Погнали!
Всего голосов 64: ↑63 и ↓1 +62
Просмотры 18K
Комментарии 19

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