Протокол TBFP

В этом тексте я бы хотел рассказать про простой бинарный протокол, который я сам придумал для всяческих нужд при разработке приборов на микроконтроллерах. Называется он TBFP (Trivial Binary Frame Protocol)
Embedded SW/Firmware Engineer

В этом тексте я бы хотел рассказать про простой бинарный протокол, который я сам придумал для всяческих нужд при разработке приборов на микроконтроллерах. Называется он TBFP (Trivial Binary Frame Protocol)

В программировании микроконтроллеров порой надо сделать так, чтобы после сборки артефактов в прошивке глобальные константы оказались в строго заданных адресах NOR Flash памяти. Причем при пересборке проекта эти адреса оставались прежними.
Это особенно полезно, если вы решили конфигурационные и калибровочные выделить в отдельный интервал Flash памяти.
Потом это требование международного стандарта программирования ISO-26262.
Делается для того, чтобы появилась возможность менять значения в этом интервале утилитой TunerPRO перед прошивкой бинаря.
Фиксированные адреса констант позволят вам всегда иметь один и тот же *.xdf файл для утилиты TunerPRO.

TunerPRO это бесплатный бинарный редактор прошивок. Это аналог STM32Studio.
Эта программа позволит вам редактировать константы в готовом bin файле. Минуя стадию повторной пере сборки всего проекта прошивки. Можно сказать, что TunerPRO хакерская tool-а.
Эта утилита связывает воедино всю информацию про переменные. Это адрес ячейки памяти в бинаре, название физической величины, размерность переменной, размер параметра, формат ее хранения в памяти, имя переменной, множитель, единицу измерения, максимальное и минимальное значение. В то время как тот же *.map файл дает только сведения про имя адрес в памяти и размер.

Компиляцию большой программы можно сравнить с кипячением воды. Вы никогда не можете сказать сколько еще осталось времени до окончания процесса. Многим пользователям GUI‑IDE приходится страдать от того, что запустив сборку проекта приходится ждать окончания непредсказуемое время.
Однако эту проблему можно решить, если собирать код скриптами сборки. Достоинством сборки проекта из самостоятельно написанных скриптов является то, что в процесс сборки можно добавлять всяческие полезные механизмы. Вы программируете не только свою прошивку, но и процесс сборки самой прошивки. Здорово?
В этом тексте я написал про то, как добавить индикатор прогресса в процесс сборки прошивки.

При разработке электроники порой приходится создавать и отлаживать аналоговые устройства.
В этом тексте я произвел разбор генератора Колпитца.
Это генератор переменного напряжения в виде синус сигнала.

При разработке RC моделей надо как-то управлять ровером. Классическое решение это джойстик. К счастью в продаже существуют готовый джойстик.
В этом тексте я написал про то как запрограммировать Game Pad от PS2.

UDS (ISO 14229) (Unified Diagnostic Services) это бинарный протокол.
Обычно этот протокол гоняют поверх протокола ISO-TP в CAN шине между ECU. Подробно протокол описан в стандарте ISO 14229.
Это диалоговый протокол, то есть работает по принципу запрос-ответ. Получается что тут есть master и slave узлы. Ещё говорят клиент сервер. Где клиент - это тестировочное оборудование, а сервер - автомобильный ECU.
В этом тексте я произвел поверхностный обзор протокола UDS.

В этом тексте я произвел обзор Си-шной реализации протокола iso-15765 (он же ISO-TP), которую можно свободно скачать с сайта github в репозитории DevCoons.
Определил достоинства и недостатки данной реализации ISO-TP протокола.

Инженерное образование имеет такой специфический бонус, как дает его обладателю возможность делать всяческие безделушки чисто ради fun-на. Это особенно актуально длинными зимними вечерами.
В этом тексте я расскажу, как сделать игрушечную модель УАЗ Буханки с дистанционным управлением по инфракрасному лучу.

При разработке электроники часто приходится работать с CAN шиной. Это не только автомобилестроение, но и электронная начинка для лифтов, поездов, кораблей, космических аппаратов и прочего тоже использует CAN шину для общения между агрегатами.
При прототипировании CAN совместимых устройств часто надо собирать и разбирать различные конфигурации CAN шин. Два устройства, 4 устройства, 8 устройств, потом снова 3 и прочее.
В этом тексте я представил инструкцию по сборке harness-a для CAN или RS-485.

DRV8870 - это старая простая микросхема управления коллекторным DC-мотором с токами в обмотках до 3.5 Ампер от компании Texas Instruments. По сути это драйвер H-моста. Причем H-мост встроен прямо внутрь корпуса самой микросхемы. Это полностью интегрированное решение.
В этом тексте я произвел обзор микросхемы DRV8870. Посмотрим с какой стороны следует подходить к микросхеме DRV8870.

В этом тексте я написал про то как подключить к микроконтроллеру инфракрасный приёмник.
Как просто и легко распознавать сигнал с TV пульта.

В ARM Cortex-M (Arm v7-M) процессорах есть очень полезный блочок. Называется MPU (Memory Рrotection Unit). Попробуем разобраться что это такое и зачем нужно. .

Недавно я купил себе CAN-трансивер USB2CANFD_V1 и с удивлением обнаружил насколько же простой и лаконичный протокол заложили разработчики в прошивку STM32G0B1CBT6. Это протокол SLCAN. По сути serial CLI. И это оказалось очень кстати, ведь в программировании микроконтроллеров порой приходится работать с UDS протоколом. Как известно, UDS протокол работает поверх сетевого протокола ISO-TP. В этом тексте я написал под SLCAN простую отладочную утилиту для отладки процесса передачи данных по протоколу ISO-TP (ISO 15765-2).

В процессорах ARM Cortex‑M стек растет от большего адреса к меньшему. То есть вниз. В этом тексте я написал как оценивать расходование стековой памяти прямо во время исполнения программы на микроконтроллере. Считать израсходованный стек можно определив соотношение непрерывно прописанных нулей к ненулевым значениям в диапазоне стековой памяти.

Стол для программиста - это святое. От удобства стола зависит производительность труда программиста и, как следствие, качество результата всей работы.
Именно за столом на работе по сути и проходит вся трудовая жизнь.
В 2024 я купил себе в кабинет для работы стол с подъемной столешницей. Спустя год электроника подъёма внезапно перестала работать. Произошел полный отказ. Семи-сегментный индикатор стал показывать непонятный токен rE5. Кнопки перестали слушаться. Столешница застыла под потолком.
Я не знал, что мне делать. Пришлось разбираться, что же это такое за шайтан машина: электрический стол.

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

В программировании микроконтроллеров порой приходится прибегнуть к медианной фильтрации.
В этом тексте я произвел разбор решения LeetCode задачи 480. Sliding Window Median в контексте реализации на языке программирования Си.

Вэтом тексте изложены базовые теоретические основы по CAN шине безотносительно к конкретному микроконтроллеру.
CAN — это двухпроводный, дифференциальный, последовательный, полудуплексный интерфейс для передачи бинарных данных между электронными платами (PCB). В качестве кабеля чаще всего применяют одну экранированную витую пару проводов с именами: CAN_L и CAN_H.

В этом тексте вы узнаете зачем велосипедисту нужна квантовая механика.
Те кто катаются на велосипеде не раз ездили в темноте. В таких случаях надо как-то предупреждать окружающих пешеходов о приближении велосипеда. Ставить фары - классическое решение. Но фары быстро сажают батарею.
Я решил пойти другим путем. Как-то раз я обратил внимание на фотолюминесцентные наклейки. Фотолюминесцентные вещества - это такие вещества, которые заряжаются светом, а затем источают свет в темноте. У меня была рядом фиолетовая лазерная указка и я заметил, что лазер охотно заряжает такие наклейки.