Pull to refresh
32K+
199

Embedded SW/Firmware Engineer

98,4
Rating
511
Subscribers
Send message

Конечный автомат инкрементного энкодера

Level of difficultyEasy
Reading time4 min
Reach and readers11K

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

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

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

Читать далее

Обзор SPI Flash памяти MX25L6433F

Level of difficultyEasy
Reading time9 min
Reach and readers13K

В этом тексте я произвел обзор микросхемы SPI-NOR FLASH памяти MX25L6433F.
Показан код, который позволит запустить на микросхеме файловую систему LittleFS.

Читать далее

Программирование блока питания АКИП-1160/6 (или Drive-by-Wire)

Level of difficultyEasy
Reading time3 min
Reach and readers10K

Часто бывает такая ситуация, что вы разрабатываете прошивку для электронной платы у которой есть ADC порты.

Рано или поздно Вам придется как-то убедиться, что ADC в самом деле измеряют то напряжение, что приложено со стороны улицы.

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

Читать далее

Детектор WiFi излучения (WiFi дозиметр)

Level of difficultyEasy
Reading time8 min
Reach and readers25K

Мне приходится периодически кататься на велике. В какой‑то момент я решил, что просто кататься — это слишком скучно. Захотелось не просто ездить, но и как‑то исследовать окружающий мир.

Я попробовал исследовать окрестности своего квартала на наличие источников WiFi излучения.

Читать далее

Передача и прием данных по лазерному лучу (SDR декодирование BPSK в реальном времени)

Level of difficultyEasy
Reading time15 min
Reach and readers17K

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

В тексте представлены основные идеи и решения для передачи и приёма битового потока c помощью BPSK модуляции.

Читать далее

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

Level of difficultyEasy
Reading time9 min
Reach and readers14K

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

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

Читать далее

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

Level of difficultyEasy
Reading time11 min
Reach and readers10K

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

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

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

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

Читать далее

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

Level of difficultyEasy
Reading time12 min
Reach and readers14K

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

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

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

Читать далее

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

Level of difficultyEasy
Reading time4 min
Reach and readers14K

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

Читать далее

STM32 + GCC + CMake + Win10

Level of difficultyEasy
Reading time16 min
Reach and readers12K

Написать на Си проект прошивки для микроконтроллера 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 readers9.5K

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

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

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

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

Читать далее

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

Level of difficultyEasy
Reading time10 min
Reach and readers9.1K

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

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

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

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

Читать далее

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

Level of difficultyEasy
Reading time11 min
Reach and readers10K

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

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

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

Читать далее

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

Level of difficultyEasy
Reading time9 min
Reach and readers10K

В этом тексте я покажу как собрать прошивку при помощи компилятора 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 time10 min
Reach and readers18K

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

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

Читать далее

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

Level of difficultyEasy
Reading time5 min
Reach and readers12K

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

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

Читать далее

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

Level of difficultyEasy
Reading time3 min
Reach and readers11K

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

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

Читать далее

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

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

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

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

Читать далее

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

Level of difficultyEasy
Reading time8 min
Reach and readers13K

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

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

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

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

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

Information

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

Specialization

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