Прошивка STM32 через отладчик ST-Link

Чтобы прошить микроконтроллер STM32 через интерфейс SWD потребуется отладчик ST-Link. Его можно купить в интернет магазинах eBay, AliExpress и других или в магазине радиодеталей. Стоимость от 120 рублей. Выглядит он так.

С одной стороны у него USB разъем для подключения к компьютеру, а в другой ряд контактов предназначенных для соединения с микроконтроллером STM32. Назначение контактов указано на корпусе. Чтобы прошить модуль Blue Pill нужно подключить отладчик и модуль четырьмя проводами (они находятся в антистатическом пакете вместе с ST-Link) как показано на картинке.

Бывают ST-Link с другим расположением контактов. Это нужно учитывать при соединении отладчика и модуля.

Далее нужно скачать с официального сайта STMicroelectronics приложение ST-LINK Utility. Для этого потребуется указать адрес почты на который отправят ссылку для скачивания. Или можете скачать с этого сайта. Из-за ограничений размера файла, архив разделен на две части - 1 и 2. Скачайте в одну папку и откройте в архиваторе поддерживающим многотомные zip архивы. Установка выполняется также как у других приложений и после ее завершения на рабочем столе появится ярлык приложения STM32 ST-LINK Utility. Запускаем и перед нами появится окно 

Теперь нужно подключить отладчик ST-Link к USB порту компьютера и в окне нажать кнопку "Connect to the target". Если все сделано правильно (отладчик подключен к модулю согласно схеме выше) и не произошло ошибок, в окне появится информация об микроконтроллере и содержимом flash памяти.

Чтобы залить прошивку нужно открыть hex-файл кликнув по кнопке Open file и указав место его расположения на диске. В окне отобразится содержимое файла, а в логе появится сообщение об открытии файла.

Теперь нужно нажать на кнопку Program verify. Это откроет окно прошивки в котором необходимо нажать на кнопку Start чтобы залить прошивку в модуль.

Прошивка залита и можно закрыть приложение и отключить ST-Link от USB порта компьютера и от модуля Blue Pill.


На этапе подключения могут появиться ошибки. Рассмотрим некоторые их них.

Если не подключен отладчик или по какой-то причине приложение не может его обнаружить, появится это сообщение об ошибке.

Если по той или иной причине недоступен интерфейс SWD из-за чего отладчик не сможет подключится к микроконтроллеру, появится эта ошибка.

Следует проверить правильно ли подключен отладчик к модулю (возможно перепутаны провода) и надежность соединения (наличие контакта). Если подключено верно, возможно прошивка в микроконтроллере отключила SWD интерфейс или другим образом препятствует его работе (например используются энергосберегающие функции). Решение довольно простое. Необходимо перемычку BOOT0 находящуюся на плате модуля переместить из позиции 0, в позицию 1, что не даст возможности выполняться прошивке.

Это необходимо сделать при отключенном от компьютера отладчике ST-Link и модуле Blue Pill. После прошивки эту перемычку нужно вернуть обратно в позицию 0, иначе прошивка работать не будет.

Еще одна причина ошибки не позволяющая перевести микроконтроллер в режим программирования - защита прошивки от чтения. Иногда такое бывает модулях купленных в Китае.

Чтобы отключить защиту от чтения, необходимо в меню Target открыть окно Option Bytes. Чтобы отключить защиту в выпадающем списке Read Out Protection следует выбрать Disabled.

Также нужно убедится что в списке Flash sectors protection отсутствуют галочки. После нажатия кнопки Apply защита будет снята, а flash-память стерта.

После устранения ошибок и успешного подключения к микроконтроллеру необходимо залить прошивку как написано выше.

Категория: Статьи | Добавил: emulator (10.01.2021)
Просмотров: 446
Всего комментариев: 0
avatar