Прошивка stm32 через UART






Любой микроконтроллер stm32 можно прошивать через USART_1. Для этого в МК есть специальный системный загрузчик, который зашивается в System memory (спец. область памяти) на этапе производства, его нельзя удалить или изменить.


Через USART можно загружать любые .bin или .hex файлы.


Описание сделано на примере платы Blue Pill, однако всё сказанное справедливо для любой stm32x.




Фирменные платы типа Discovery и Nucleo тоже можно прошивать через USART.




Для работы потребуется USB to UART конвертер…



Если такой штуковины нет, то есть два варианта превращения ардуины в конвертер…

превращение
1. Замкнуть RESET на GND (может не прокатить).
2. Загрузить в неё вот такой незамысловатый скетч:

void setup() 
 { 
   pinMode(0, INPUT); 
   pinMode(1, INPUT); 
 } 
 void loop() 
 {} 


Чтобы проверить работает ли ардуина в качестве конвертера, замкните RX и TX, откройте   и отправьте какие-нибудь символы. Если они вернулись, значит всё работает.



Перед прошивкой необходимо подтянуть пин BOOT0 к «плюсу», это переведёт МК в режим «системного бутлоадера». На описываемой плате это осуществляется перестановкой джампера…





Если плата фирменная
На фирменных платах (Discovery, Nucleo) тоже нужно подтянуть пин BOOT0 к плюсу, но просто так это сделать не получится. Возьмите схему вашей платы и найдите там соответствующие перемычки…

Искать надо что-то вроде этого:



Не помню от какой платы эта схема, но суть такая: в данном случае пин BOOT_0 подтянут к «минусу» через резистор R16 и перемычку SB16. Если убрать перемычку SB16, то пин подтянется к «плюсу» через резистор R17 и можно прошивать. После прошивки надо вернуть всё на место.

Перемычка может выглядеть как резистор.


Режим системного бутлоадера. Не поленитесь заглянуть по ссылке.



Соединяем конвертер и STM следующим образом…

картинка



Конвертер RX <-> PA9 STM
Конвертер TX <-> PA10 STM
Конвертер GND <-> GND STM

… и подключаем конвертер и STM к компьютеру.



Инструкция по прошивке для


Скачайте архив и распакуйте куда-нибудь. Если хотите, можете взять с сайта ST (в самом низу страницы).

Нажмите Reset на плате.

Перейдите в папку Flash Loader Demonstrator и запустите Flash Loader Demonstrator.exe


Выбираем СОМ-порт конвертера и жмем Next...

WARNING Remove Protection (защита от записи)
Такое сообщение…



… означает, что плата, залочена. Ничего страшного нет, просто снимите защиту кнопкой Remove protection и следом нажмите ОК.



Защита снята.

Если выдаёт ещё какие-то ошибки, то либо не нажали Reset, либо что-то с конвертером.




Если светофор даёт зеленый свет, то смело жмите Next...




Жмем Next...




В пункте Download to device указываем путь к нужному .bin или .hex файлу и жмем Next...





Всё готово, верните джампер в исходное положение и нажмите Reset.






Инструкция по прошивке для


Скачайте архив и распакуйте куда-нибудь.

Из папки соответствующей вашей ОС скопируйте файл stm32flash в домашнюю папку.

Эта утилита есть в репах ubuntu, в других дистрах не знаю, поэтому выкладываю.

Перед прошивкой всегда нажимайте Reset на плате.

В терминале дайте команду:

./stm32flash -w /home/dima/myfile.bin -v -g 0x0 /dev/ttyUSB0

Название и путь к файлу у вас будет свой. HEX-файлы тоже можно прошивать этой утилитой.

Если будет ругаться на права, тогда дайте команду…

sudo chmod 777 /dev/ttyUSB0


… или запускайте утилиту через sudo.


Защита от записи

Если появилось вот такое сообщение…



… тогда дайте по очереди две команды:

./stm32flash -u /dev/ttyUSB0

./stm32flash -k /dev/ttyUSB0


Первая снимает защиту от записи, вторая от чтения.




Если у Вас стоял ардуиновский загрузчик, то он будет затёрт, чтоб его востановить просто залейте описанным выше способом этот файлик. И не забудьте вот про это.


П.С. Все описанные действия можно проделать с помощью фирменной утилиты — STM32CubeProgrammer (Windows®, Linux®, macOS®)



На этом наверно всё.


Форум (рус.)

Телеграм-чат STM32


Статья о том, как из платы Blue Pill сделать программатор.



  • 408
Telegram-канал istarik

Известит Вас о новых публикациях...


Комментарии (0)

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.