STM32 и порт FreeModbus (RTU Slave + Master) на HAL

Поделюсь своим простым портом мастера и слейва FreeModbus на STM32 с использованием HAL без костылей. Вроде бы и простая тема, но какие гайды бы я ни видел, они или устаревшие уже, или с какими-либо костылями (хотя заявляется, что, мол, всё просто и на HAL), более того, гайдов с мастером я не видел вообще.

Сразу признаюсь, я воспользовался открытой реализацией мастера на FreeModbus от китайского программиста Armink, написан мастер был для китайской RTOS RT-Thread, но возможна работа и без RTOS, я просто подшаманил файлы мастера, а также немного подшаманил оригинальную реализацию FreeModus.

B93-0

Разбор порта, примеры работы RTU версии и ссылки на исходники как моего порта, так и оригинальные источники, всё под катом:

Читать далее

STM32CubeMX и CMSIS-DSP — проблема с FPU

B92-0

Делаю я тут проект один и начал вникать в цифровую обработку сигналов на STM32. Скелет проекта и инициализацию периферии я сделал в STM32CubeMX, набросал код для проверки FIR из CMSIS DSP, пробую скомпилировать и … компилятор ругается, мол? у меня нет FPU на STM32F401CCU6.

#error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)"

В чём же проблема ? Давайте разбираться по порядку.

Читать далее

Статистика и небольшой эксперимент

Решил я тут опубликовать немного статистики по своему блогу, думаю, это будет интересно всем. :)

B91-0

Общая статистика

Начнём с банального и простого — из каких стран меня читают, страны по просмотрам за прошедший 2019-й год (кликабельно):

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

Просмотры за весь период существования блога по месяцам:

B91-2

Тут можно заметить вполне плавный рост до октября 2019 и потом плавный спад, как раз когда я стал ощутимо меньше писать новые статьи.

То же самое, но в другом формате:

B91-3

Уникальные посетители по последним месяцам:

B91-4

Ну в сумме за всё время существования блога:

B91-5

Читать далее

CV-Meter — Простой проект (начало)

Решил поделиться неторопливым ходом разработки своего небольшого проекта, который будет полезен для любой категории разработчиков. Это комплексный проект, который состоит из 3-х более мелких проектов, а именно: софт для ПК (скриншот которого ниже), различное железо измерителей CV и, собственно, прошивки для этих CV-измерителей. Обо всём постараюсь по порядку рассказать и показать, в каком состоянии оно сейчас находится, а также уже можно посмотреть мой говно-код, собрать простую версию измерителя на коленке и опробовать всё самому.

B90-1

Читать далее

Печатные платы и трафарет для паяльной пасты из JLCPCB

Небольшой обзор печатных плат и специально заказанного к одной из них трафарета для паяльной пасты, чтобы оценить его качество. Обзор не покупной, я сам уже заказывал немало в JLCPCB и в этот раз решил описать своё мнение об этом производителе печатных плат, и, как дополнение, заказал трафарет (чего раньше не делал ни разу у них).

Пришло всё в фирменной коробке (как обычно), только в этот раз положили даже небольшой подарочек (впрочем, бесполезный, но о нём позже):

B89-0

Кому интересно почитать или просто посмотреть фотографии, прошу под кат! :)

Читать далее

Intel Quartus Prime + Visual Studio Code

Нано-заметка о том, как использовать Visual Studio Code со всеми его достоинствами (и недостатками) в качестве продвинутого редактора кода, который будет вызываться по умолчанию из Intel Quartus Prime (любой версии).

B88-0

Заходим в Tools->Options, переходим в раздел General->Preferred Text Editor:

B88-1

Ставим Custom в качестве параметра Text Editor. Прописываем здесь путь к Visual Studio Code (заместо %PATH_TO_VSCODE%) со следующими параметрами:

"%PATH_TO_VSCODE%\Code.exe" -r -g %f:%l

Примечание: параметр -r задаёт открытие файлов в активном (единственном) окне Visual Studio Code, и его можно убрать, тогда, если уже была открыта Visual Studio Code с каким-либо проектом, файлы из Quartus Prime будут открываться в новом окне Visual Studio Code.

Вот и всё, теперь все операции с файлами будут передаваться Visual Studio Code, что, как по мне, намного удобнее.

Читать далее

Visual Studio 2017. Написание и отладка приложений для Onion Omega2

Onion Omega2 — это одноплатный компьютер на базе MIPS-процессора, имеющего следующую периферию: Wi-Fi, Ethernet 10\100 Мбит, UART, PWM, I2C, SPI, USB, SDIO и GPIO. В качестве ОС используется Linux LEDE (Linux Embedded Development Environment), базирующийся на OpenWRT.

B87-0

Статья-мануал о том, как начать писать и отлаживать программы на С\С++ для Omega2 в Visual Studio 2017. Если интересно, прошу под кат:

Выбор версии LEDE и её обновление

В качестве отладочной платы у меня плата собственной разработки с модулем Omega2S+ (максимальная комплектация с 32 Мбайт памяти, 128 Мбайт ОЗУ и SDIO для подключения MicroSD карт). При первом включении на ней будет старый билд LEDE, и его требуется обновить, вот тут есть разные пути. Рассмотрим как различие версий ОС (стабильные и девелоперские), так и пути обновления.

Читать далее

Юнона — ярмарка в СПб

Привет! Был я, значит, в начале весны в Санкт-Петербурге и не мог обойти стороной ярмарку Юнона, на территории которой находятся два интересующих меня раздела: радиорынок и блошиный рынок. Ну вот интересно увидеть, как это в других городах, и всё тут. :D Итак, это будет заметка с кучей фотографий и комментариев к ним, не более, кому интересен такой формат или просто хочется фото-отдыха для глаз, прошу под кат.

B84-0

Читать далее

Конфигурирование Cyclone V из S25FL128S — проблемы и решение

Подбирая флешку для Cyclone V или Cyclone 10 LP для платы с минимальными габаритами, можно прийти к решениям от Micron, Macronix или Cypress. Я остановился на последней компании и конкретной флешке — S25FL128S, которая есть во вполне удобном корпусе WSON-8 (только 3,3 В IO) или в FBGA-24 с дополнительным пином VCCIO для установки уровней IO (но 3,3 В всё равно нужны для ядра флешки). Так вот, вроде ничего не предвещало беды, эта флешка даже официально поддерживается программатором в Intel Quartus 18.0 и выше, но не работает с Cyclone V …

B86-0

Читать далее

Visual Studio Code и ModelSim

В заметке ниже описание того, как сделать быстро вызываемую симуляцию в ModelSim из Visual Studio Code для тестбенча самописного IP.

b85-0

Подготовка Visual Studio Code

Всё в целом аналогично Visual Studio Code и Icarus Verilog, только без установки Icarus Verilog, поэтому повторяться не вижу смысла.

Тестовый проект

В качестве тестового проекта будет выступать моё недоделанное IP для HyperRAM — HyperRAM_Controller. Симуляцию будем проводить на тестбенче оттуда же.

Читать далее