Отладочная плата STM32F407VET6 и быстрый старт в Linux

2017/11/25

Купил на eBay отладочную плату STM32F407VET6 за 10 баксов. На фото виден подключенный дисплей WH1602 и переходник для прошивки USB - UART.

STM32F407VET6 USB-UART WH1602 Display

Плата достаточно большая, что удобно. Отдельной колодкой выведен UART, запаян часовой кварц, батарейка, flash память. Выведен USB, разъем для microSD карточки. В общем, все что нужно. По сути, данную плату можно использовать как полноценную плату MCU в своих проектах. Особого смысла разводить свою я не вижу.

Как видно из фото, прошиваю STM32 через UART бутлоадер. Можно так же использовать для этих целей USB, но я не стал заморачиватся. В этой статье я опишу быстрый старт в среде Linux.

Устанавливаем ARM Toolchain:

sudo add-apt-repository ppa:terry.guo/gcc-arm-embedded
sudo apt-get update
sudo apt-get install arm-gcc-none-eabi

Cкачиваем GUI утилиту генерации кода STM32CubeMX. Раньше нужно было прибегать к определенным трюкам, что бы запустить ее в linux. Теперь утилита в данной системе доступна из коробки. Настраиваем нужным образом периферию. Перед генерацией кода нужно выбрать Toolchain/IDE SW4STM32.

Скачиваем CubeMX2Makefile скрипт в папку с проектом:

git clone https://github.com/baoshi/CubeMX2Makefile

Получаем Makefile:

python CubeMX2Makefile.py .

Пытаемся скомпилировать проект:

make

Возможны появление ошибок на этапе компиляции или линковки. Например у меня была следующая:

Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c:417:1: error: stray "/" in program
Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c:417:1: error: stray "/" in program
Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c:417:1: error: stray "/" in program

Устраняется редактированием Makefile. Находим строку

C_DEFS = -D__weak="__attribute__((weak))" -D__packed="__attribute__((__packed__))" -DUSE_HAL_DRIVER -DSTM32F407xx

и заменяем строкой

C_DEFS = -DUSE_HAL_DRIVER -DSTM32F407xx

После успешной компиляции нам нужно прошить микроконтроллер. Для этого скачиваем утилиту STM32Flash. Компилируем и устанавливаем в систему:

make
sudo make install

Теперь нужно подключить нашу отладочную плату через преобразователь USB - UART к компьютеру с правильно выставленными перемычками BOOT0 и BOOT1. Нажимаем на RST на плате. Смотрим доступные в системе COM порты:

dmesg | grep tty

Должно быть доступно что то вроде /dev/ttyUSB0. Смотрим, есть ли доступ к STM32:

sudo stm32flash /dev/ttyUSB0

Ну и собственно прошиваем STM32:

sudo stm32flash -b 9600 -v -w build/blinking_led.bin /dev/ttyUSB0

Исходный код blinking led

while (1)
  {
  /* USER CODE END WHILE */
    HAL_Delay(2000);
    HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET);
    HAL_Delay(2000);
    HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET);
  /* USER CODE BEGIN 3 */

  }
  /* USER CODE END 3 */

Переключаем BOOT0 BOOT1, должно поочередно меняется логический ноль на единицу через каждые две секунды. Можно подключить светодиод, и увидеть мигание, или вольтметр.

Category: General Tagged: STM32


Быстрый старт STM32 Maple Mini и ChibiOS вместе с ChibiStudio

2017/07/14

Если вы занимаетесь разработкой embedded решений, тогда возможно вам будет интересно видео, что ниже. Там показан быстрый старт ChibiOS с отладочной платой STM32 Maple Mini. Как видно, все достаточно просто. Нужно установить ChibiStudio (обьязательно устанавливать на диск C, иначе не будет работать), открываем пример для отладочной платы Maple Mini, компилируем, и прошиваем - у нас готовый USB to COM девайс :)

Важно!. Если у вас затерт оригинальный USB бутлоадер maple mini, нужно в файле Makefile изменить значение USE_MAPLEMINI_BOOTLOADER с 1 на 0.

Ну и на последок, не ради холивара, ответ на вопрос, зачем применять операционные системы в микроконтроллерах? Ведь не православно, нужно …

Category: Hardware Tagged: STM32

Read More

Отладочная плата Maple Mini STM32F103

2016/06/09

Как настоящий электронщик старой закалки, я всегда все паяю сам вместо того, что бы покупать готовые модули. К примеру, нужен переходник COM - UART, покупаю ST3232, кабель, разьемы, вытравливаю плату, запаиваю микросхему и вуаля - готово. Вместо того, что бы купить за 2$ на eBay или в местном магазине готовый переходник. О потраченом времени лучше умолчать.

Но, время идет, меняются взгляды, привычки. Толи молодость прошла, когда время не сильно и ценилось, толи почасовая оплата труда повлияла, сейчас имеет смысл покупать готовое. Это не просто экономия своего времени, но еще экономия на деньгах. Потому что зачастую стоимость комплектующих в сумме равна стоимости готовой …

Category: Hardware Tagged: stm32

Read More

Частотомер для ГПД на STM32F100

2013/12/14

Если в SDR приемнике используется LC ГПД, то весьма полезно обзавестись и частотомером. Ниже показана схема частотомера на STM32F100C4 специально для QuestaSDR

STM32 Frequency Meter

Максимальная измеряемая частота примерно равна 48 МГц. Вход частотомера толерантный к 5 — ти вольтовой логике. Залить прошивку в микроконтроллер можно через UART. Краткая инструкция находится здесь.

Для тестирования частотомера я написал небольшую программку:

STM32 Frequency Meter

Собственно файлы к статье:

Category: Hardware Tagged: stm32

Read More
Page 1 of 1