ST-LINK/V2





Статья о том, как сделать программатор ST-LINK/V2 из дешёвой платы Blue Pill.





Фирменный программатор от ST это, грубо говоря, просто микроконтроллер STM32F103C8 со специальной прошивкой и распаянными выводами. На платах типа Discovery или Nucleo, тоже установлены STM32F103C8 выполняющие роль программаторов.

картинка


Некоторые платы Nucleo сделаны так, чтоб их можно было разделить, сделав из одной части какое-то устройство, а другую использовать в качестве ST-LINKа.

На плате Blue Pill установлен такой же STM32F103C8, и соответственно закинув в него спец. прошивку мы получаем ST-LINK/V2 c интерфейсом SWD для микроконтроллеров семейства stm32.

Безусловно, можно купить «китайский» ST-LINK и не заморачиваться, однако в случае с описываемой платой, мы всегда можем использовать её по прямому назначению.



Итак, вся задача сводится к двум действиям, зашить в плату спец. программу, и обновить через фирменную STМовскую утилиту.

Качаем этот файлик, и прошиваем его либо с помощью существующего программатора ST-LINK, либо через UART, как описано вот здесь (описание сделано для Win и Linux).



После прошивки нужно обновить наш программатор.

Отключите железку от компьютера (конвертер вообще больше не нужен, можно положить на полку), верните джампер на место…



… и подключите платку к USB.


Далее инструкции для разных ОС.







Плата должна определится так…




Драйвера должны были установиться во время инсталяции Atollic TrueStudio. Если драйверов нет, тогда скачайте ST-LINK Utility (можно с сайта ST) и установите её, драйвера подгрузятся автоматически.


Теперь скачайте архив (можно с сайта ST) с утилитой для обновления и распакуйте его куда-нибудь. В папке windows найдите ST-LinkUpgrade.exe, запустите и нажмите Device Connect





Если устройство увиделось, то появятся всякие данные…



Смело жмите YES >>>>




Нажмите ОК.

Всё готово. Закройте программу и отключите плату от компа.






Скачайте архив (можно с сайта ST) с утилитой для обновления и распакуйте в домашнюю папку.


Подключите плату к компу и проверьте определилась ли она…

lsusb




Соответствующие правила должны были прописаться при установке Atollic TrueStudio. Если не устанавливали, тогда в скаченном архиве найдите файлы...



… скопируйте их в папку /etc/udev/rules.d и перегрузите правила...

sudo udevadm control --reload-rules

Теперь плата должна определиться.


Идём дальше. Откройте терминал, перейдите в папку ./stsw-link007/AllPlatforms/

cd ./stsw-link007/AllPlatforms/


… и запустите STLinkUpgrade.jar

sudo java -jar ./STLinkUpgrade.jar






Нажмите Open in update mode




Если появились версии прошивок, тогда нажимайте Upgrade



Всё готово. Закройте программу и отключите плату от компа.




Подключение программатора


Подсоединяем наш новоиспечённый ST-LINK к целевой плате…




… и всё, втыкаем программатор в USB и отлаживаем свои программы


Проводок на RESET можно не делать, у меня работает и с ним, и без него.
Резисторы между В12 и В14 пробовал разные, и даже замыкал напрямую, работало во всех случаях. В итоге поставил на 280 Ом.



С прогамматором покончено.





Важное замечание!

Если целевая плата такая же как на рисунке, тогда скорее всего у неё стоит защита от записи. Как её снять описано здесь (WARNING Remove Protection).

И ещё, когда генерите проект в Cube, обязательно инициализируйте Serial Wire



… в противном случае, после прошивки программатор не будет видеть плату, а в консоль полезут сообщения типа Target is not responding, retrying.


Если забыли инициализировать Serial Wire, тогда переставьте джампер…



… нажмите Reset, залейте (через программатор) исправленный код и верните джампер в исходное положение.

Это относится ко всем микроконтроллерам серии STM32F103.




Ну и под занавес кратенькая инструкция о том, какие кнопки нажимать в TrueStudio


Соберите программу —

Запустите отладку —


В новом окне...

Запустите программу (внутри МК)

Поставьте программу на паузу —

В главном цикле поставьте Breakpoint (курсор на нужную строчку и Ctrl + Shift + B)



Понажимайте —

Когда наиграетесь нажмите —




И ещё одно важное замечание. На момент написания статьи у меня стояла True Studio версии 9.0.1, когда я обновил её до версии 9.1, то программатор отказывался работать пока я его не обновил непосредственно из среды...





Это всё.


Всем спасибо


Телеграм-чат istarik

Телеграм-чат STM32



  • +1
  • 61203
Поддержать автора


Telegram-чат istarik

Задать вопрос по статье
Telegram-канал istarik

Известит Вас о новых публикациях






Комментарии (0)

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.