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

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


ob:o7:stm32flash

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
ob:o7:stm32flash [2020/01/08 17:52]
иван_денисов [Windows]
ob:o7:stm32flash [2022/11/21 23:32] (текущий)
iadenisov
Строка 1: Строка 1:
 ====== Прошивка микроконтроллера через UART ====== ====== Прошивка микроконтроллера через UART ======
  
-Через переходник USB-UART подключите микроконтроллер в выходам **A9** и **A10**, которые соответствуют выходам `USART1_TXи `USART1_RXсоответственно.+Через переходник USB-UART подключите микроконтроллер в выходам **A9** и **A10**, которые соответствуют выходам **USART1_TX** и **USART1_RX** соответственно.
   * **RX** выхода переходника стоит подключать к **TX**, то есть к **A9**.    * **RX** выхода переходника стоит подключать к **TX**, то есть к **A9**. 
   * **TX** выхода переходника стоит подключать к **RX**, то есть к **A10**.   * **TX** выхода переходника стоит подключать к **RX**, то есть к **A10**.
  
-После этого микроконтроллер надо перевести в режим прошивки. На многих платах для этого есть специальная перемычка. Например, для платы с МК STM32F103C8T6 [[ob:o7:stm32f103|из предыдущей заметки]], — это будет дальняя от кнопки перезагрузки перемычка в положении 1:+//Чтобы легче запомнить, обратите внимание, что **R** в алфавите идет первее **T**, также как **9** идёт первее **10**.// 
 + 
 +После подключения микроконтроллер необходимо перевести в режим прошивки. На некоторых платах для этого есть специальная перемычка. Например, для платы с МК STM32F103C8T6 [[ob:o7:stm32f103|из предыдущей заметки]], — это будет дальняя от кнопки перезагрузки перемычка в положении 1:
  
 {{ :ob:o7:stm32f103c8t6.jpg?direct&400 |}} {{ :ob:o7:stm32f103c8t6.jpg?direct&400 |}}
  
-Если перемычки нет, то необходимо замкнуть ногу **BOOT0** на **3.3** вольта. Для безопасности лучше использовать резистор номиналом 50–200 Ом, но возможно замкнуть контакт и напрямую.+На некоторых платах имеются специальные кнопки **BOOT0**. Например плата STM32F401CСU6 имеет такую кнопку рядом с кнопкой перезагрузки. 
 + 
 +{{ :ob:o7:img_20221121_174113.jpg?direct&400 |}} 
 + 
 +Если нет ни перемычки ни кнопки, то необходимо замкнуть ногу **BOOT0** на **3.3** вольта. Чтобы не испортить микроконтроллер лучше использовать резистор номиналом 50–200 Ом, однако возможно замкнуть контакт и напрямую.
  
 Осталось перезагрузить контроллер, чтобы он перешел в режим прошивки через UART. Осталось перезагрузить контроллер, чтобы он перешел в режим прошивки через UART.
  
-===== Windows =====+===== stm32flash =====
  
-Скачайте и установите приложение FLASHER-STM32:+Кросс-платформенное консольное приложение **stm32flash** позволяет использовать встроенный загрузчик STM32 для загрузки новой программы в память микроконтроллера.
  
-http://www.st.com/en/development-tools/flasher-stm32.html+https://sourceforge.net/projects/stm32flash
  
-Работа с приложением достаточно очевидна. Значок светофора, показывает зеленый, при успешном подключении к контроллеру. А также становится доступен диалог выбора файла прошивки с различными опциями загрузкиПолезны опции очистки памяти и проверки записанных данных.+Для установки поместите файл программы **stm32flash.exe** в папку **C:/Windows/System32**
  
-Если возникнут вопросы, то обратитесь в другой статье, где более подробно расписаны шаги для Windows:+Для использования приложения необходимо узнать текстовое обозначение порта (например COM4). В Windows это возможно узнать в Диспетчере устройств, посмотревкакое устройство появляется при подключении USB-UART преобразователя к компьютеру.
  
-http://www.avislab.com/blog/stm32_st_link_ru/+++++Установка stm32flash в Linux|
  
 +Выполните команду:
 + sudo apt install stm32flash
  
-===== GNU/Linux =====+Чтобы не приходилось вводить **sudo** перед командой прошивки, добавьте пользователя в группу **dialout**: 
 + sudo usermod -a -G dialout $USER
  
-В последних версиях GNU/Linux приложение **stm32flash** доступно из стандартных источников приложений. В Ubuntu для установки приложения выполните команду: +Чтобы изменения начали действовать, перезагрузите сеанс пользователя или компьютер.
- sudo apt-get install stm32flash+
  
-Если так установить не удаетсято установите приложение **stm32flash** с сайта: https://sourceforge.net/projects/stm32flash+В Linux текстовое обозначение порта возможно узнатьпосмотрев, какой новый файл появляется в каталоге /dev при подключении USB-UART преобразователя (зачастую идентификатор порта будет **/dev/ttyUSB0**).
  
-Команда: +++++
- sudo stm32flash /dev/ttyUSB0+
  
 +Приступаем к проверке!
  
-даст вывод: +Если микроконтроллер находится в режиме прошивки, команда в терминале: 
- stm32flash 0.5+ stm32flash COM4 
 + 
 +даст примерно такой вывод: 
 + stm32flash 0.7
   
  http://stm32flash.sourceforge.net/  http://stm32flash.sourceforge.net/
Строка 52: Строка 63:
  - System RAM : 2KiB  - System RAM : 2KiB
  
-Значит микроконтроллер успешно подключен и готов к прошивке.+Значит микроконтроллер успешно подключен и готов к загрузке программы командой:
  
-Чтобы прошить программу в микроконтроллер используйте команду+ stm32flash -w Main.hex -v -g 0x0 COM4 
- sudo stm32flash -w Program.hex --g 0x0 /dev/ttyUSB0+ 
 +Чтобы не открывать терминал, можете сделать текстовый файл с расширением .bat, содержащий данную строку, положить этот файл в папку с проектом, и запускать, когда потребуется обновить прошивку. 
 + 
 + 
 +===== st-link ===== 
 + 
 +Альтернативный способ прошивки через специальное устройство ST-Link-v2 возможен с помощью приложения [[https://freeelectron.ro/installing-st-link-v2-to-flash-stm32-targets-on-linux/|st-link]] командой
 + 
 + st-flash --format ihex write Main.hex
  
-Удобно добавить пользователя в группу **dialout**, чтобы не приходилось вводить **sudo** перед командой прошивки. 
- sudo usermod -a -G dialout $USER 
  
 ---- ----
ob/o7/stm32flash.1578495133.txt.gz · Последнее изменение: 2020/10/29 07:08 (внешнее изменение)