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. Этот стек для такой цели избыточен, потому что он поддерживает режим работы устройства, как в режиме хоста, так и слейва. Этот функционал, требует… Читать далее »

Сборка из исходников Python

Иногда требуется иметь самую последнюю версию Python на своем Linux устройстве. С такой ситуация я столкнулся на плате CM3 (Compute Module 3) с установленным дистрибутивом Raspbian. В его репозитории на февраль 2019 нет последней версии Python 5.7.2. С такой проблемой столкнулся не только я. Собственно, это уже готовая инструкция, она актуальна и для версии 5.7.2.… Читать далее »