> For the complete documentation index, see [llms.txt](https://docs.veles-lab.ru/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.veles-lab.ru/kontrollery-motorov/proshivka-esc-cherez-stlink.md).

# Прошивка ESC через STLink

Обновить прошивку в ESC "Велес" на базе микроконтроллеров STM32 рекомендуется выполнять путем прошивки МК с помощью программатора ST-Link или аналогичного. Этот метод гораздо стабильнее, чем обновление через конфигуратор. Очень часто базовый конфигуратор АМ32 может зависнуть в момент прошивки и превратить ESC регулятор в "кирпич". И чтобы его "оживить" вам все равно придется прибегнуть к программатору.

<mark style="color:green;">Рекомендованные бюджетные варианты программаторов:</mark>

* [WeAct STLink V2.1](https://aliexpress.ru/item/1005005303809188.html?sku_id=12000034319503731)
* [ST-Link V2 Mini](https://www.chipdip.ru/product/st-link-v2-mini-multicolor-vnutrishemnyy-9000563621)
* [ST-Link V3](https://www.chipdip.ru/product/stlink-v3set-vnutrishemnyy-st-microelectronics-9001570245)

Теперь вам необходимо установить программу [STM Cube Programmer с официального сайта](https://www.st.com/en/development-tools/stm32cubeprog.html). Для этого вам потребуется создать бесплатный аккаунт и возможно потребуется VPN, т.к. без него в текущий момент времени не дает скачать файл. Так же вы можете [скачать данную программу в нашем облаке](https://disk.yandex.ru/d/CKGYqGKFrbUBBA), однако версия может быть не самой актуальной, что никак на результат все равно не влияет.

Во время установки вам предложит установить драйвера для ST-Link, обязательно соглашаемся, иначе ST Cube Programmer не увидит программатор среди списка устройств. После установки открываем программу, вам будет доступно окно:

<figure><img src="/files/1roW5YYfy4VkuqceYbTP" alt=""><figcaption></figcaption></figure>

Теперь необходимо подключить программатор ST-Link к целевой плате, для этого подключаем сигналы: <mark style="color:red;">+3.3V</mark>, <mark style="color:green;">SWCLK</mark>, <mark style="color:orange;">SWDIO</mark> и <mark style="color:$primary;">GND</mark>. Подавать внешнее питание не нужно, т.к. программатор сам обеспечивает питания для микроконтроллера STM32 и других необходимых для прошивки блоков.

<figure><img src="/files/CEl5iCNpFXBcYBI7nKHk" alt=""><figcaption></figcaption></figure>

Подключиться к контактам <mark style="color:$primary;">SWD</mark> интерфейса можно как с помощью пайки, так и более удобный вариант - пружинные штыри с шагом 2.0 мм, например, [такие](https://aliexpress.ru/item/1005010360722029.html?mixer_rcmd_bucket_id=testRankingSimilarDatasetAndContextPureOrder\&pdp_trigger_item_id=0_1005008653881411\&ru_algo_pv_id=294a4b-61b690-16d01c-502ac6-1776092400\&scenario=aerSimilarItemPdpRcmd\&shpMethod=CAINIAO_STANDARD\&sku_id=12000052131271667\&traffic_source=recommendation\&type_rcmd=core):

<figure><img src="/files/ZSWWBiiK6jUxKdGtDOvz" alt=""><figcaption></figcaption></figure>

После этого переходи в ST Cube Programmer, выбираем справа вверху ST-Link, жмем на значок <mark style="color:$primary;">"Обновить"</mark> и должен появиться серийный номер. Это означает, что программа видит подключенный программатор и теперь нажимаем <mark style="color:$primary;">"Connect"</mark>, программатор вычитает память и определит тип микроконтроллера справа внизу:

<figure><img src="/files/QBZzuMOXSg33iDxdBthE" alt=""><figcaption></figcaption></figure>

Теперь переходим слева вверху в раздел <mark style="color:$primary;">"Erasing & Programming"</mark>, указываем путь до файла с прошивкой и жмем <mark style="color:$primary;">"Start Programming"</mark>. Если все прошло успешно, то внизу в консоли увидев надпись <mark style="color:$primary;">"Successfully"</mark> и после этого можно отключаться, нажав кнопку <mark style="color:$primary;">"Disconnect"</mark>:

<figure><img src="/files/9r2eHTTkZ8VR1gW6fYuQ" alt=""><figcaption></figcaption></figure>

Теперь можно подключаться к конфигуратору и проводить настройку ESC регулятора, как это [описано в инструкции по настройке](/kontrollery-motorov/nastroika-esc-am32.md) в конфигураторе АМ32.
