Архив рубрики: Примеры кода

DIY микроамперметр на базе INA219

Системные ограничения На данный момент простая работа с этим модулем возможна только на линукс системе. Я хотел было даже с кондачка запустить эту же сборку на Windows, но меня ожидали некоторые трудности и готовой реализации я не нашел. Я буду следить за популярностью статьи и думаю, если она будет относительно популярна, то попытаюсь сделать поддержку… Читать далее »

Настройка связки VScode, OpenOCD, WCH-LinkE, Cortex-M

Что это такое и для чего нужно Wch-link является программатором для ARM, RISC-V микроконтроллеров. По возможностям это аналог St-link, JLink и прочих. По сравнению с st-link он поддерживает контроллеры не только фирмы STM. А по сравнению с JLink стоит намного дешевле и не имеет проблем с лицензиями, которые могут встречаться у дешевых клонов JLink. Также… Читать далее »

VS Code/Stm32 сборка и отладка

В последнее время очень пристрастился к редактору Visual Studio Code. Очень нравится система плагинов, подсветка кода, скорость и стабильность работы. Плагины можно найти буквально для всего и вся. В общем пока я очень доволен и впечатлён. А теперь наконец решился вести всю разработку проектов для встроенных систем в данном редакторе. Для тех кто захочет повторить… Читать далее »

Очередной bootloader STM32. Часть 2. Спец утилиты.

В прошлый раз мы остановились на создании бинарного образа прошивки. Этот этап на самом деле вовсе не обязательный, я просто хочу поделиться, некоторым своим опытом. Изначально тот способ, который будет описан ниже я использовал лишь для проверки переход от одного исполняемого кода к другому. Не хотелось возиться  с передачей прошивки на устройство, а просто вшить… Читать далее »

Очередной загрузчик STM32. Часть 1. Передача управления.

Рано или поздно встает задача обновления прошивки на готовом устройстве. Практически все современные устройства, так или иначе умеют обновлять свою программу с минимальными усилиями со стороны пользователя. Любую программу бутлодер условно можно разделить на две части — интерфейсной и части работы с носителем с которого исполняется код, обычно это внутренняя флешь память. Задача интерфейсной части… Читать далее »

Кросскомпиляция с помощью CMake

Компилировать программу будем под популярнейшую платформу Raspberry Pi. Эту заметку я использую, как памятку для закрепления информации полученной из публикаций: [ Raspberry Pi C ++] Using CMake и The Useful RaspberryPi Cross Compile Guide. Поэтому код и текст будут существенно с ними перекликаться, но в своей статье я сосредоточусь на практической стороне вопроса и опущу… Читать далее »

Использование LIttleFS совместно с параллельной NAND памятью

Обычно для удобства работы с различными носителями информации используются различные файловые системы. Основное удобство заключается в абстрагировании от особенностей физического исполнения носителя ( как размер страницы, блока и т.д) и сосредоточиться на работе с полезной нам информацией. В данной статье пойдет речь о параллельной NAND Flash память и файловой системе LittleFS. До недавнего времени для… Читать далее »

NRF51. Создание проекта с поддержкой BLE

Сегодня создадим с нуля проект с поддержкой BLE в частности профиля Nordic UART over BLE. Хочу сказать про некоторые оговорки, касающиеся стека BLE. Мне удалось запустить проект только со стеком SoftDevice S130. Этот стек для такой цели избыточен, потому что он поддерживает режим работы устройства, как в режиме хоста, так и слейва. Этот функционал, требует… Читать далее »

NRF51. Cоздание простого проекта

Общие сведения В последнее время, становится всё популярнее стандарт передачи данных Bluetooth Low Energy (BLE). BLE по сути несколько упрощенный протокол Bluetooth. Основное назначение BLE это обмен небольшим объемом данных с различными низкопотрбляющими устройствами (датчики, фитнес браслеты, велокомпьютеры и т.д.). У многих производителей уже есть микроконтроллеры с интегрированной радиочастотной частью. Подобные чипы есть у ведущих… Читать далее »

Аппаратная реализация 1-Wire на stm32f030

Аппаратной реализацией интерфейса 1Wire я называю совместное использование UART и DMA для приема/отправки таймслотов. Эта тема уже очень много где обсуждалась, очень хорошая статья есть на изиэлктрониксе. Собственно оттуда я и взял исходники и немного переделал для работы с серией f0. Основные отличия заключаются в настройках DMA, так как он устроен немного по другому, чем… Читать далее »