Рубрика «программирование микроконтроллеров» - 34

Введение

Модель дисплея называется H016IT01. Данный дисплей интересен прежде всего тем, что он является транфлективным(transflective). Это означает, что изображение на нем должно быть видно даже под ярким солнцем. А также это чуть ли не единственная доступная модель с этой особенностью на известном китайском сайте.

Статья же увидела свет потому, что информации по контроллеру SSD1283A очень мало(как в русском, так и западном сегменте сети), и руководства я нигде не встречал. В сети можно найти даташит, однако там нет информации по инициализации и работе с дисплеем, а из полезного только описания регистров.

Хочу подчеркнуть, что данный материал конечно же не является истиной последней инстанции. Я привожу лишь свой опыт взаимодействия с устройством. Основная цель статьи проста — помочь всем тем, кто решил, хочет или захочет поработать с данным дисплеем, не более.

image
Читать полностью »

Отладочная плата MDB1986

Несколько лет назад я познакомился с российскими микроконтроллерами фирмы Миландр. Это был 2013 год, когда инженеры бурно обсуждали первые результаты ФЦП «Развития электронной компонентной базы и радиоэлектроники» на 2008-2015 годы. На тот момент уже был выпущен контроллер К1986ВЕ9x (ядро Cortex-M3) и только-только появился контроллер 1986ВЕ1Т (ядро Cortex-M1). Он же в пластиковом корпусе LQFP-144 имел в документации обозначение К1986ВЕ1QI (авиа), а на самой микросхеме обозначение MDR32F1QI. На сайте изготовителя у него стоит суффикс «авиа», так как он имеет интерфейсы специфичные для авиастроения (ARINC 429, MIL_STD_1553).Читать полностью »

Известно, что семейство микроконтроллеров STM32F4xx, имея на борту достаточно производительные ядра, вполне подходящие для «не мясорубочных» задач ЦОС не имеют полноценного интерфейса ввода данных с простейшей параллельной шины в режиме «pipe-line» (clk-data). «Покурив» «dm00037051.pdf», нашел не специфичный, но на первый взгляд подходящий вариант – интерфейс DCMI (Digital camera interface).

Конечно, использование для нагруженной классической ЦОС (КИХ, БИХ, FFT) микроконтроллеров STM32, не совсем является оптимальным вариантом, но если вдруг так легли карты и все-таки возможностей данного микроконтроллера вполне достаточно, плюс нужно достаточное количество низкоскоростных интерфейсов. Об этом под катом.

Читать полностью »

Рисунок 1

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

В июле 2019 года в операционной системе реального времени VxWorks, на которой работают более 2 миллиардов устройств, найдены критические уязвимости. На Хабре про это не написали ни слова, хотя это важная новость в области промышленного программирования, RTOS и automotive.

Wind River VxWorks используется для ежедневной работы множества устройств интернета вещей, таких как веб-камеры, сетевые коммутаторы, роутеры, файрволлы, VOIP телефоны, принтеры и устройства видеосвязи, а также в светофорах.

Кроме того VxWorks используется в safety-critical системах, включая SCADA-системы, поезда, лифты, промышленные контроллеры, мониторы состояния пациентов, полетные Wi-Fi системы и даже марсоходы.

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

Согласно новому отчету Armis, совокупность уязвимостей называют URGENT/11, так как в данной группе 11 элементов, 6 из которых критически важны и уязвимы к разрушительным кибератакам.
Читать полностью »

Делаем шлюз между Wi-Fi и LoRa для UDP

Шлюз для UDP между Wi-Fi и LoRa - 1

У меня была детская мечта — выдать каждому бытовому «безВайФайному» устройству билет в сеть, т. е. IP-адрес и порт. Спустя какое-то время я понял, что не стоит откладывать. Надо взять и сделать.

Техническое задание

Сделать шлюзом M5Stack с установленным Модулем LoRa. Шлюз будет подключён к Wi-Fi-сети, в которой получиь по DHCP локальный IP-адрес. Шлюз с определённой периодичностью будет вещать в «LoRa-эфир» своё имя (аналог SSID для Wi-Fi) и диапазон допустимых портов, чтоб другие устройства знали, что есть такая сеть, к которой можно подключиться и в каком диапазоне можно повыбирать свободный порт. Поскольку это будет прототип, аутентификация не в этот раз. Новые устройства-клиенты будут находить доступную LoRa-сеть и передавать ей выбранный порт. После того, как шлюз получил от нового клиента порт, проверяет свободен ли он, если да, то регистрирует нового клиента и начинает слушать данный порт на собственном асинхронном UDP-сервере. После регистрации клиент получит согласие или отказ на использование заявленного порта. Порядок работы отображён в таблице 1.

Таблица 1

сторона направление и данные сторона сеанс
[ клиент ] <— сигнал-маяк — [ шлюз ] 0xA1
[ клиент ] — выбранный порт —> [ шлюз ] 0xB1
[ клиент ] <— согласие или отказ — [ шлюз ] 0xA2
[ клиент ] — UPD-пакет —> [ шлюз ] 0xB2
[ клиент ] <— UPD-пакет — [ шлюз ] 0xA3
[ сеть ] <— UPD-пакет — [ шлюз ] 0xC1

Передо мной на столе лежат всякие Модули для M5Stack и скучают. Давайте возьмем LoR’у и развлечёмся с ней. Сама концепция модулей прекрасна! Что тут скажешь? Но, модули у меня первой ревизии, в которых ужаснейшая встроенная антенна, выполненная на гибкой печатной плате и приклеенная к боковой стенке корпуса. Я проводил однажды полевые тесты таких модулей (можно посмотреть на русскоязычном канале на

). Естественно, пришлось удалить эти рудименты и впаять стандартные спиралевидные антенны, которые идут в комплекте с Ra-01. После такой кастомизации дальность связи заметно улучшилась, но появился побочный момент — антенна имеет диаметр больший, чем допустимое расстояние между модулями. Пришлось отказаться от Завершающего модуля на время проекта.

Читать полностью »

Статическая подписка с использованием шаблона Наблюдатель на примере С++ и микроконтроллера Cortex M4 - 1

Всем доброго здравия!

В преддверии Нового года хочу продолжить рассказывать про использование С++ на микроконтроллерах, на этот раз попытаюсь рассказать про использование шаблона Наблюдатель (но далее я буду называть его Издатель-Подписчик или просто Подписчик, такой вот каламбур), а также реализацию статической подписки на С++17 и преимущества этого подхода в некоторых приложениях.

Читать полностью »

Здесь я расскажу как создать минимальный проект на CMSIS с использованием «родной» IDE для микроконтроллеров STM – STM32CubeIDE.

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

STM32 + CMSIS + STM32CubeIDE - 1

Читать полностью »

В прошлый раз мы осваивали создание нового проекта при помощи STM CubeMX первую часть можно найти здесь.
Для тех, кому лень перечитывать — закончилось все тем, что пустой проект успешно собрался.
STM32 fast start. Часть 2 Hello World на HAL, отладка в Atollic TrueSTUDIO - 1
В данной части напишем простейший пример Hello World на HAL, посмотрим как запускать и пользоваться отладчиком, ну и выясним, сколько же памяти кушает наша программа, которая в этой части будет написана на HAL.
Читать полностью »

Инженерный подход к подаркам - 1

За окном дождь, на календаре декабрь. Близится пора праздников, а значит и пора подарков. Коллега Павел желает себе новый ноутбук, а подруга Маша хочет домик у моря. И несмотря на достойный оклад профессии “тыжпрограммист”, мы не живём в мире бесконечных возможностей, а значит я не могу подарить этим людям именно то, чего они хотят больше всего (даже несмотря на то, что Паша может быть мой самый лучший Павел, которого я знаю, а Маша просто молодец).

Тут и появляется проблема “дешёвых подарков”. Подарить дорогой подарок всем не получается, а дарить очередную коробку конфет, свечку или невнятную статуэтку бог_пойми_чего просто не хочется. Значит нужно объединить приятное с полезным — я люблю делать вещи своими руками, а полученный результат отлично подходит в качестве подарка. Это рассказ о том, как я в очередной раз прикидывался инженером и рукожопил несколько подарков.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js