Прошивка отладочной платы blue pill STM32 Arduino Bootloader

Для прошивки потребуется преобразователь USB-UART. Подойдет любой. На рисунке плата преобразователя на основе чипа CP2102. Необходимо установить драйвера на вашу модель, и проверить определяется ли устройство.

Далее припаиваем провода от преобразователя к отладочной плате. Потребуется 4 провода.

Преобразователь TX - отладочная плата A10

Преобразователь RX - отладочная плата A9

Питание «плюс» и «минус».

Стоит иметь ввиду – если неправильно согласованы уровни сигналов (вместо 3.3в приходит сигнал в 5 вольт) – плата может выйти из строя. К этому может привести и короткое замыкание сигнальных проводников. Обязательно проверяйте качество пайки.

Схема подключения проводов для прошивки stm32

Установкой перемычек, «включаем» работу загрузчика микроконтроллера.

Положение перемычек для прошивки stm32

Для загрузки прошивки необходимо скачать (или взять в .\Binaries\FlashLoader.zip) программу Flash Loader Demonstrator. В конце приведена ссылка.

Запускаем программу. Устанавливаем порт, на котором определился переходник.

Определение порта, к которому подключен переходник USART

Выбираем семейство

Выбор семейства микроконтроллеров.

Для данного проекта используем загрузчик Arduino. Для прошивки загрузчика необходимо изменить тип файлов на *.bin

Выбор файла прошивки

Прошиваем.

Окончание прошивки

Возвращаем перемычки в исходное положение. 

Распаковываем FirmwareLoaderTools.zip и меняем в loadFw.bat пути.

Открываем shell переходим в каталог с loadFw.bat пишем loadFw.bat

Через USB подключаем плату. Зажимаем RESET на плате, запускаем bat file. Загружаем прошивку.

Загрузка прошивки

Для работы бут лоадера в линкере должен быть установлен адрес 0x8002000.

Если это Keil то:

Загрузка прошивки

если Visual Studio Code

 то в файле STM32F103C8Tx_FLASH.ld  задать требуемые параметры

/* Specify the memory areas */
MEMORY
{
RAM (xrw)      : ORIGIN = 0x20000000, LENGTH = 20K
FLASH (rx)      : ORIGIN = 0x8002000, LENGTH = 64K
}

для Keil в main.c первая строчка должна начинаться как

NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x2000);

 данные адреса актуальны для STM32F103C8T6.

Для VS code линкер сам все понимает.

Автором так же разработана программа для автоматической загрузки прошивки(можно найти в разделе Qt). Она позволяет не опытному пользователю, самому обновить прошивку на устройстве.

Flash Loader Demo и бутлоадер(которым и прошиваем микроконтроллер), MapleDriver.