Инструменты пользователя

Инструменты сайта


No renderer 'odt' found for mode 'odt'
ob:o7:stm32flash

Прошивка микроконтроллера через UART

Через переходник USB-UART подключите микроконтроллер в выходам A9 и A10, которые соответствуют выходам USART1_TX и USART1_RX соответственно.

  • RX выхода переходника стоит подключать к TX, то есть к A9.
  • TX выхода переходника стоит подключать к RX, то есть к A10.

Чтобы легче запомнить, обратите внимание, что R в алфавите идет первее T, также как 9 идёт первее 10.

После подключения микроконтроллер необходимо перевести в режим прошивки. На некоторых платах для этого есть специальная перемычка. Например, для платы с МК STM32F103C8T6 из предыдущей заметки, — это будет дальняя от кнопки перезагрузки перемычка в положении 1:

На некоторых платах имеются специальные кнопки BOOT0. Например плата STM32F401CСU6 имеет такую кнопку рядом с кнопкой перезагрузки.

Если нет ни перемычки ни кнопки, то необходимо замкнуть ногу BOOT0 на 3.3 вольта. Чтобы не испортить микроконтроллер лучше использовать резистор номиналом 50–200 Ом, однако возможно замкнуть контакт и напрямую.

Осталось перезагрузить контроллер, чтобы он перешел в режим прошивки через UART.

stm32flash

Кросс-платформенное консольное приложение stm32flash позволяет использовать встроенный загрузчик STM32 для загрузки новой программы в память микроконтроллера.

https://sourceforge.net/projects/stm32flash

Для установки поместите файл программы stm32flash.exe в папку C:/Windows/System32

Для использования приложения необходимо узнать текстовое обозначение порта (например COM4). В Windows это возможно узнать в Диспетчере устройств, посмотрев, какое устройство появляется при подключении USB-UART преобразователя к компьютеру.

Установка stm32flash в Linux

Приступаем к проверке!

Если микроконтроллер находится в режиме прошивки, команда в терминале:

stm32flash COM4

даст примерно такой вывод:

stm32flash 0.7

http://stm32flash.sourceforge.net/

Interface serial_posix: 57600 8E1
Version      : 0x22
Option 1     : 0x00
Option 2     : 0x00
Device ID    : 0x0410 (STM32F10xxx Medium-density)
- RAM        : 20KiB  (512b reserved by bootloader)
- Flash      : 128KiB (size first sector: 4x1024)
- Option RAM : 16b
- System RAM : 2KiB

Значит микроконтроллер успешно подключен и готов к загрузке программы командой:

stm32flash -w Main.hex -v -g 0x0 COM4

Чтобы не открывать терминал, можете сделать текстовый файл с расширением .bat, содержащий данную строку, положить этот файл в папку с проектом, и запускать, когда потребуется обновить прошивку.

Альтернативный способ прошивки через специальное устройство ST-Link-v2 возможен с помощью приложения st-link командой:

st-flash --format ihex write Main.hex

Автор заметки: И.А. Денисов

ob/o7/stm32flash.txt · Последнее изменение: 2022/11/21 23:32 — iadenisov