@e-boroda

Stm32 usb boot loader под linux?

Stm32 для Ардуино - проект stm32duino использует bootloader для прошивки МК через USB.
Однако на linux иеющийся драйвер не умеет автоматически переключаться в режим DFU для прошивки.
В мануалах рекомендуют нажимать кнопку ресет на МК в момент прошивки. В это время (буквально пару сек.) bootloader пытается изобразить DFU для прошивки. Однако поймать нужный момент не получается. Да и вообще это жутко неудобно.
Подскажите, кто шъёт stm32 через USB на linux - чем пользуетесь, как выходите из положения.
Интересна также поддержка режима прошивки stm32 через USB на linux в PlatformIO.
  • Вопрос задан
  • 885 просмотров
Пригласить эксперта
Ответы на вопрос 2
stream13
@stream13
Возможно Вас заинтересует AN2606 "STM32 microcontroller system memory boot mode"
Если кратко, то у каждой СТМки с завода зашит бутлоадер. Опускаем кажись BOOT0 на землю, резетаем и погнали.
И если попсовая F103C8 может прошиться только по UART, то например F407VG уже умеет и UART, и USB, и DFU и SPI.

Вот Вам тулза что бы шить по ЮАРТу https://github.com/jsnyder/stm32loader
Вот по ДФУ dfu-util.sourceforge.net/dfuse.html
А вот АппНоут https://www.st.com/content/ccc/resource/technical/...
Ответ написан
Комментировать
@e-boroda Автор вопроса
Частично отвечу сам себе :)
Разобравшись в вопросе понял, что stm32duino Maple like bootloader всё-таки может автоматически переключается в режим DFU на linux путём программного сброса через последовательный интерфейс /dev/ttyACM0. И драйвер тут в общем-то ни при чём.
Другое дело, что работает это почему-то неустойчиво, а в некоторых дистрибутивах (в частности в Ubuntu) есть процессы охотно занимающие данное устройство, (например ModemManager) и препятствующие его программному сбросу. Лечится путём тюнинга udev rules.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы