Pull to refresh
186
59.1

Embedded SW/Firmware Engineer

Send message

Чтение и Запись Параметров по UDS

Level of difficultyEasy
Reading time19 min
Reach and readers6.2K

В данном тексте я произвел смысловой перевод фрагментов спецификации протокола UDS. Той его части, которая поясняет механизм чтения и записи параметров.

Как многие уже знают UDS протокол позволяет читать и писать реальные физические параметры автомобильного агрегата.

UDS протокол реализует динамическую типизацию. То есть вся информация про типы данных поступает во время исполнения программы .

Вот об этом всем и поговорим.

Читать далее

Чтение и запись физической памяти по протоколу UDS

Level of difficultyEasy
Reading time12 min
Reach and readers5.4K

В данном тексте я произвел смысловой перевод UDS стандарта ISO-14229 с английского на русский. А конкретнее ту его часть, которая рассказывает про то, как читать и писать память в микроконтроллере. UDS протокол позволяет читать и писать физическую память на микроконтроллере.
Для этого в протокол заложены спец. пакеты о которых и поговорим.

Читать далее

Переходник с USB на CAN из Отладочной Платы JZ-F407VET6

Level of difficultyEasy
Reading time7 min
Reach and readers11K

В разработке электроники часто нужны переходники с USB на CAN.

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



Читать далее

Какой Может быть UART-CLI в Микроконтроллере (или Курс Молодого Бойца)

Level of difficultyEasy
Reading time8 min
Reach and readers13K

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

Прежде всего CLI — это первичный лог загрузки прошивки. Инициализация микроконтроллера — это многостадийный процесс, в котором многое может пойти не по плану. Поэтому первое, что вы должны увидеть в консоли — это зеленый лог загрузки программы.

Читать далее

Пошаговая GDB отладка прошивки STM32 из консоли cmd

Level of difficultyEasy
Reading time5 min
Reach and readers10K

Порой бывает так, что вы скачиваете open-source репозиторий, а там нет файлов .project и .сproject для eclipse или файлы .project и .сproject есть, но они по каким-то причинам повреждены и IDE их не может открыть.

Тем не менее прошивка собирается командой make all. Ты ее прошиваешь и LED не мигает. Очевидно, что прошивка зависла. Где-то свалилась в HardFault_Handler.

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

Читать далее

Ортодоксально Каноническая Прошивка (ОКФП)

Level of difficultyEasy
Reading time4 min
Reach and readers9.8K

Размышляя на тему того, что должно быть в микроконтроллерной прошивке я проанализировал сотни проектов и десятки электронных плат. В результате вынес за скобки базовый функционал, который так или иначе нужен практически в каждом проекте. Этот функционал кристаллизировался в требования, которые я решил назвать ортодоксально каноническая форма прошивки. По аналогии с тем как в С++ есть такое понятие, как ортоодоксально каноническая форма для класса.

Читать далее

Протокол TBFP

Level of difficultyEasy
Reading time6 min
Reach and readers11K

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

Читать далее

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

Level of difficultyEasy
Reading time4 min
Reach and readers8.7K

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

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

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

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

Читать далее

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

Level of difficultyEasy
Reading time12 min
Reach and readers12K

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

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

Читать далее

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

Level of difficultyEasy
Reading time4 min
Reach and readers10K

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

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

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

Читать далее

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

Level of difficultyEasy
Reading time7 min
Reach and readers20K

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

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

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

Читать далее

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

Level of difficultyEasy
Reading time8 min
Reach and readers18K

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

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

Читать далее

Обзор Автомобильного Протокола UDS [ISO 14229-1]

Level of difficultyEasy
Reading time54 min
Reach and readers9.7K

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

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

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

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

Читать далее

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

Level of difficultyEasy
Reading time11 min
Reach and readers7.1K

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

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

Читать далее

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

Level of difficultyEasy
Reading time10 min
Reach and readers18K

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

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

Читать далее

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

Level of difficultyEasy
Reading time4 min
Reach and readers12K

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

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

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

Читать далее

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

Level of difficultyEasy
Reading time10 min
Reach and readers13K

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

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

Читать далее

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

Level of difficultyEasy
Reading time7 min
Reach and readers14K

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

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

Читать далее

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

Level of difficultyEasy
Reading time8 min
Reach and readers12K

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

Читать далее

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

Level of difficultyEasy
Reading time4 min
Reach and readers11K

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

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

Information

Rating
124-th
Location
Москва, Москва и Московская обл., Россия
Registered
Activity

Specialization

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