Как программировать STM32 без программатора

Во многих микроконтроллерах STM32 есть бутплоадер. Для большинства моделей (есть исключения) нужно соединить ножку микроконтроллера BOOT c VCC (напряжением питания 3.3V), и после этого подать питание (или, как вариант, нажать на кнопку RESET, если питание уже подано). В результате микроконтроллер загрузится в режиме bootloader. Bootloader умеет прошивать микроконтроллер по UART и I2C. Достаточно купить у китайцев какой-нибудь преобразователь USB->serial (есть много разных, не буду рекламировать ничего конкретного), и можно прошивать микроконтроллер без программатора.
А если микроконтроллер поддерживает и USB, то можно и обойтись без преобразователя.

К каким ножкам STM32F030 подключаться для программирования UART

stm32f0 serial programming

У большинства микроконтроллеров это ножки PA9 и PA10.
PA9 - нужно подключать к RXD (или RX)
PA10 - нужно подключать TXD (или TX)

Бывают и альтернативные ножки PA14, PA15 (их нет в корпусе с 20 ножками) :
PA14- нужно подключать к RXD (или RX)
PA15 - нужно подключать TXD (или TX)

Какими программами пользоваться для программирования STM32F030

Я пользователь линукса и пользуюсь stm32flash, возможно и под Windows есть что-то аналогичное

stm32flash -w Release/my-firmware.bin -v /dev/ttyUSB0

Обратите внимание, что расширение прошивки *.bin, если вы пользуетесь CubeIDE, то по умолчанию там генерируется только файл прошивки *.elf, для генерации *.bin нужно поставить соответствующую галочку в настройках проекта.

Хватит ли мне 16 Кб Flash памяти. Это мало или много?

STM32F030 один из простых и дешёвых контроллеров. И на первый взгляд 16Кб очень даже много. Но если вы используете CubeIDE/CubeMx, то генерированный код занимает довольно много места. Конечно, всё зависит от того, что именно вы используете. Лично мой опыт показал, что даже довольно простой код, забирающий данные из микросхемы по SPI, и выдающий их по запросу UART/MODBUS, с небольшой обработкой чисел float, всё-таки не влез в 16 кБ флеш памяти микроконтроллера, а уж об обработке double и речи быть не могло.

Есть способы всё-таки уменьшить итоговый размер прошивки. О них - в отдельной статье.

А в целом я бы рекомендовал не рисковать, и для новых разработок, когда трудно предсказать размер будущего кода, взять микроконтроллер чуть дороже с 32 кБ flash памяти. Например - STM32F060.

Добавить комментарий