Pull to refresh
64K+
192

Embedded SW/Firmware Engineer

64,2
Rating
494
Subscribers
Send message

Потоковая запись ADC семплов на STM32

Level of difficultyEasy
Reading time9 min
Reach and readers5.1K

В этом тексте я показал как настроить потоковую запись ADC семплов на микроконтроллере STM32.

ADC модуль это основа любого электронного измерения. Основа любого DMM. Всё что за корпусом микроконтроллера - это аналоговый мир. ADC это портал который позволяет аналоговым сигналам просачиваться в мир цифры.

Читать далее

Управление фазой аппаратного PWM сигнала на STM32 (или таймер на ошейнике)

Level of difficultyEasy
Reading time11 min
Reach and readers8.8K

На микроконтроллерах STM32 можно генерировать аппаратные PWM сигналы. Это всегда применяют для регулирования яркости свечения, управления температурой нагревателей, управления крутящим моментом на электрических моторах.

При этом на STM32 обычно очень легко регулировать частоту, заполнение и инвертировать фазу меняя полярность.

Однако как непрерывно регулировать фазу PWM?

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

Читать далее

Самый маленький загрузчик (MBR 324 байта)

Level of difficultyEasy
Reading time12 min
Reach and readers13K

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

В программировании на STM32 бывает нужно сделать так, чтобы загрузчик оказался не в начале Flash памяти, а в конце.

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

Читать далее

Обзор учебно-тренировочной платы JZ-F407VET6 (или электронная парта)

Level of difficultyEasy
Reading time4 min
Reach and readers13K

В этой заметке я произвел обзор учебно-треннировочной электронной платы JZ-F407VET6.
Это простая и дешевая PCB часто выручает при прототипировании и отладке программных компонентов.

Читать далее

STM32 + GCC + CMake + Win10

Level of difficultyEasy
Reading time16 min
Reach and readers11K

Написать на Си проект прошивки для микроконтроллера STM32F407VE. В качестве кросс компилятора выбрать GCC. В качестве системы сборки использовать CMake. В качестве HAL использовать фирменный HAL от STM и CMSIS от ARM. Собирать в Windows 10.

В данном тексте я покажу как можно организовать CMake скрипты сборки, чтобы собрать прошивку для микроконтроллера STM32.

Читать далее

CLI через Segger J-Link RTT на ARM Cortex-M (или однопортовая лапароскопия)

Level of difficultyEasy
Reading time5 min
Reach and readers9K

В этом тексте я написал про то как наладить интерфейс командной строки (CLI) по двухпроводному синхронному отладочному интерфейсу SWD.

Посылать в прошивку команды и получать ответ.

Чтобы можно было работать примерно как с UART, только по SWD.

Это когда прошивка в коде асинхронно получает текстовую строку от PC и отправляет текст обратно в сторону PC.

Читать далее

Отладка программ уровнями логирования (или медицинская карта вашей программы)

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

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

Чтобы с этим бороться придумали уровни логирования Log Levels.

Суть в том, чтобы из shell консоли в run time можно было включать или отключить логи для конкретных программных компонентов. Отдельными командами вы можете увеличивать или уменьшать многословность логирования.

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

Читать далее

CLI через CAN по ISO-TP (или утилита CANshell)

Level of difficultyEasy
Reading time11 min
Reach and readers9.9K

В этом тексте я написал как реализовать CLI на CAN шине.

В разработке электроники часто делают электронные плату без UART, но с CAN .

Как же отлаживать софт и железо в таких случаях?

Читать далее

Сборка прошивки STM32 компилятором IAR при помощи GNU Make скрипта (IAR+Make=CI/CD)

Level of difficultyEasy
Reading time9 min
Reach and readers9.6K

В этом тексте я покажу как собрать прошивку при помощи компилятора IAR и GNU Make файлов.

Собрать прошивку компилятором IAR с помощью GNU Make — это не просто возможно, это стандартный подход для автоматизации сборки, например, на CI/CD серверах, где использование IDE неудобно. IAR поставляется с набором консольных утилит, которые делают этот процесс вполне прямолинейным.

Читать далее

Пуск DWT Таймера на ARM Cortex-M (или Ядерный Таймер)

Level of difficultyEasy
Reading time6 min
Reach and readers12K

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

В ARM Cortex-M процессорах помимо SysTick есть еще один 32 битный таймер по имени DWT. Этот таймер увеличивается на 1 каждый тик ядра.

Как же воспользоваться этим ядерным таймером?

Читать далее

Способы повышения надежности встраиваемого ПО

Level of difficultyEasy
Reading time9 min
Reach and readers17K

В этом тексте я бы хотел перечислить способы повышения надежности для встраиваемого ПО. Cуществует много приемов, которые помогают повысить надежность встраиваемого ПО.

Как прошивка может противостоять всяческим флуктуациям во время своей работы и обезопасить себя от зависания или повреждения исходных данных?

Читать далее

Обзор Преобразователя USB-CAN от Marathon

Level of difficultyEasy
Reading time5 min
Reach and readers11K

В этом тексте я попробовал выполнить обзор преобразователя с USB на CAN.

В этот раз у меня на столе особый экземпляр: переходник с USB на CAN от фирмы Marathon. Полное название CAN-bus-USB Версии 4.0. Он же ГКМН.468351.017-03.

Читать далее

Квантование на Триггерах Шмитта

Level of difficultyEasy
Reading time3 min
Reach and readers10K

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

Это гистерезисный фильтр на триггерах Шмитта.

Читать далее

Интеграция утилиты Artistic Style в скрипт сборки прошивки

Level of difficultyEasy
Reading time6 min
Reach and readers6.5K

Есть утилита для автоматического выравнивания отступов в исходных кодах. Называется astyle.exe.

В этом тексте я покажу, как работать с утилитой Astyle.

Читать далее

Типовая разметка памяти STM32F4

Level of difficultyEasy
Reading time8 min
Reach and readers12K

Как Вы могли заметить, у микроконтроллеров STM32F4 секторы NOR Flash памяти обладают разным размером: 16kByte(4 шт), 64kByte (1 шт), 128kByte ( 7+ шт.).

Это накладывает определенную специфику на программирование микроконтроллеров STM32F4.

Из каких секций обычно состоит Flash память микроконтроллерной программы?

В этом тексте я предлагаю простое решение проблемы разметки памяти для случая работы с микроконтроллерами STM32F4.

Читать далее

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

Level of difficultyEasy
Reading time19 min
Reach and readers7.9K

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

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

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

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

Читать далее

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

Level of difficultyEasy
Reading time12 min
Reach and readers6.9K

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

Читать далее

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

Level of difficultyEasy
Reading time7 min
Reach and readers12K

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

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



Читать далее

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

Level of difficultyEasy
Reading time8 min
Reach and readers14K

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

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

Читать далее

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

Level of difficultyEasy
Reading time5 min
Reach and readers11K

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

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

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

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

Information

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

Specialization

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