Обновить
180
79.1

Embedded SW/Firmware Engineer

Отправить сообщение

Протокол TBFP

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

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

Читать далее

Размещение глобальных констант по фиксированным адресам

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

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

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

Потом это требование международного стандарта программирования ISO-26262.
Делается для того, чтобы появилась возможность менять значения в этом интервале утилитой TunerPRO перед прошивкой бинаря.

Фиксированные адреса констант позволят вам всегда иметь один и тот же *.xdf файл для утилиты TunerPRO.

Читать далее

Обзор утилиты TunerPro (или const volatile)

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

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

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

Читать далее

Progress Bar для Сборки Программы

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

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

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

В этом тексте я написал про то, как добавить индикатор прогресса в процесс сборки прошивки.

Читать далее

Генератор Колпитца (или Ёмкостная Трехточка)

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

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

В этом тексте я произвел разбор генератора Колпитца.

Это генератор переменного напряжения в виде синус сигнала.

Читать далее

Подключение PlayStation2 Джойстика к Микроконтроллеру (или Переходник между человеком и компьютером)

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

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

В этом тексте я написал про то как запрограммировать Game Pad от PS2.

Читать далее

Обзор Протокола UDS [ISO 14229-1]

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

UDS (ISO 14229) (Unified Diagnostic Services) это бинарный протокол.

Обычно этот протокол гоняют поверх протокола ISO-TP в CAN шине между ECU. Подробно протокол описан в стандарте ISO 14229.

Это диалоговый протокол, то есть работает по принципу запрос-ответ. Получается что тут есть master и slave узлы. Ещё говорят клиент сервер. Где клиент - это тестировочное оборудование, а сервер - автомобильный ECU.

В этом тексте я произвел поверхностный обзор протокола UDS.

Читать далее

Обзор реализации протокола ISO-TP с сайта Разработчики-Еноты

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

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

Определил достоинства и недостатки данной реализации ISO-TP протокола.

Читать далее

Электрическая УАЗ Буханка на Телеуправлении

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

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

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

Читать далее

CAN шина на Audio-Jack (или новая жизнь Audio-Jack)

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

При разработке электроники часто приходится работать с CAN шиной. Это не только автомобилестроение, но и электронная начинка для лифтов, поездов, кораблей, космических аппаратов и прочего тоже использует CAN шину для общения между агрегатами.

При прототипировании CAN совместимых устройств часто надо собирать и разбирать различные конфигурации CAN шин. Два устройства, 4 устройства, 8 устройств, потом снова 3 и прочее.

В этом тексте я представил инструкцию по сборке harness-a для CAN или RS-485.

Читать далее

Обзор микросхемы DRV8870 (или Драйвер H-моста)

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

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

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

Читать далее

Декодирование IR сигнала с TV (или исследование пультовых лучей)

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

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

Как просто и легко распознавать сигнал с TV пульта.

Читать далее

ARM Cortex-M: пуск Memory Рrotection Unit (MPU)

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

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

Читать далее

Утилита CANcat (или CAN-Мессенджер)

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

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

Читать далее

Покраска Cтека (Stack Painting)

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

В процессорах ARM Cortex‑M стек растет от большего адреса к меньшему.

В этом тексте я написал как оценивать расходование стековой RAM памяти прямо во время исполнения программы на микроконтроллере (run-time).

Считать израсходованный стек можно определив соотношение непрерывно прописанных констант к остальным значениям в диапазоне стековой памяти.

Читать далее

Электрический стол (или Зачем нужны ARM Cortex-M0)

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

Стол для программиста - это святое. От удобства стола зависит производительность труда программиста и, как следствие, качество результата всей работы.

Именно за столом на работе по сути и проходит вся трудовая жизнь.

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

Я не знал, что мне делать. Пришлось разбираться, что же это такое за шайтан машина: электрический стол.

Читать далее

Обзор USB-CAN переходника USB2CANFD_V1

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

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

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

Читать далее

Медианный фильтр на двух бинарных кучах

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

В программировании микроконтроллеров порой приходится прибегнуть к медианной фильтрации.

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

Читать далее

CAN-шина (Теория)

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

Вэтом тексте изложены базовые теоретические основы по CAN шине безотносительно к конкретному микроконтроллеру.

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

Читать далее

Подсветка колес велосипеда лазерным лучом (или Светопреставление)

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

В этом тексте вы узнаете зачем велосипедисту нужна квантовая механика.

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

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

Читать далее
1
23 ...

Информация

В рейтинге
89-й
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность

Специализация

Инженер встраиваемых систем, DevOps-инженер
Старший
Git
Bash
CI/CD
C
Встраиваемая система
Программирование микроконтроллеров
Разработка программного обеспечения
Алгоритмы и структуры данных
Системное программирование
Разработка драйверов