
ST-Link V2 – распространённый программатор и отладчик для микроконтроллеров STM32, но его функциональность напрямую зависит от версии прошивки. Производитель регулярно выпускает обновления, исправляющие баги, добавляющие поддержку новых чипов и улучшающие стабильность работы. Например, версия 2.37.0 добавила совместимость с STM32H7 и устранила проблемы с потерей соединения при низких скоростях обмена. Если ваш программатор работает некорректно или не распознаёт новые платы, обновление прошивки – первое, что стоит сделать.
Процесс обновления требует точного соблюдения последовательности действий. Вам понадобятся: оригинальный ST-Link V2 (клоны могут не поддерживаться официальным ПО), кабель USB, утилита ST-Link Upgrade версии 3.12.0 или новее, а также драйверы STSW-LINK009. Перед началом убедитесь, что программатор не подключён к отлаживаемой плате – это может вызвать конфликты при прошивке. Также отключите антивирус: некоторые версии блокируют доступ к USB-устройствам во время обновления.
Обновление через официальное ПО занимает менее минуты, но ошибки на этом этапе приводят к «окирпичиванию» устройства. Если программатор перестал определяться после неудачной прошивки, восстановить его можно только через STM32 ST-Link Utility с использованием режима DFU. В этой инструкции разберём оба сценария: штатное обновление и аварийное восстановление, а также расскажем, как проверить версию прошивки и избежать типичных ошибок.
Где скачать официальную прошивку для ST Link V2

Официальные прошивки для ST Link V2 размещены на сайте STMicroelectronics в разделе инструментов разработки. Основной источник – страница STSW-LINK007, где доступна последняя версия утилиты ST-Link, включающая прошивку. Перед скачиванием требуется регистрация на сайте, но процесс занимает менее минуты.
Альтернативный путь – через среду STM32CubeIDE. После установки программы перейдите в меню *Help → Manage Embedded Software Packages*, выберите *ST-Link* и нажмите *Install*. Прошивка загрузится автоматически в каталог *Drivers/ST-Link* внутри папки установки. Версия в CubeIDE может отставать от актуальной на сайте ST, но подходит для большинства задач.
Для клонов ST Link V2 (например, на базе чипов STM32F101) официальные прошивки не всегда совместимы. В таких случаях используйте прошивки от сообщества, например, Black Magic Probe или STM32duino. Эти проекты поддерживают расширенные функции, но требуют ручной прошивки через SWD.
На странице ST-Link/V2 размещены архивы с предыдущими версиями прошивок. Это полезно, если новая версия вызывает ошибки совместимости с конкретным оборудованием. Например, версия 2.37.0 часто используется для отладки старых микроконтроллеров STM8.
В Linux официальные прошивки можно получить через пакетный менеджер. Для Ubuntu/Debian выполните команду: sudo apt install stlink-tools. Пакет содержит утилиты *st-flash* и *st-info*, а также актуальную прошивку в каталоге */usr/share/stlink*. Версия может отличаться от Windows-релиза, но обновляется реже.
При скачивании с сайта ST обращайте внимание на контрольные суммы файлов. На странице загрузки указаны SHA-1 или MD5 хеши архивов. Проверьте их утилитой sha1sum или md5sum в Linux, либо CertUtil -hashfile в Windows. Несовпадение хешей указывает на повреждение файла или подмену.
Если ST Link V2 используется с платами Discovery или Nucleo, прошивку можно обновить прямо из STM32CubeProgrammer. Подключите устройство, выберите вкладку *ST-Link Upgrade* и нажмите *Open in update mode*. Программа автоматически предложит последнюю версию с серверов ST. Метод работает только для оригинальных ST Link.
Для восстановления неработающего ST Link V2 потребуется загрузчик через SWD. Официальный загрузчик доступен в репозитории STLink на GitHub. В папке *firmware* лежат бинарные файлы для разных версий железа. Прошейте их с помощью другого программатора, например, J-Link или второго ST Link.
Как проверить текущую версию прошивки на устройстве
Для проверки через *STM32CubeProgrammer* откройте программу, выберите порт ST-Link в разделе *Connect* и нажмите *Connect*. Версия прошивки отобразится в логе подключения в формате *Firmware version: V2JxxSxx*. Если устройство не определяется, обновите драйверы через *Zadig* (выберите *WinUSB* для ST-Link) или переподключите устройство в другой USB-порт. При использовании *OpenOCD* выполните команду *openocd -f interface/stlink.cfg -c «init; stlink info; exit»*, где версия будет указана в строке *ST-LINK firmware version*.
Подготовка драйверов перед обновлением ST Link V2
Перед началом обновления убедитесь, что на компьютере установлены актуальные драйверы для ST Link V2. Официальные драйверы доступны на сайте STMicroelectronics в разделе «Tools & Software» – ищите пакет «STSW-LINK009». Версия драйверов должна быть не ниже 2.1.0, так как более ранние сборки могут не поддерживать протокол обновления прошивки через STM32CubeProgrammer. Скачайте архив, распакуйте его и запустите исполняемый файл «dpinst_amd64.exe» для 64-разрядных систем или «dpinst_x86.exe» для 32-разрядных.
Если устройство уже подключено к USB, но не определяется корректно, удалите существующие драйверы через «Диспетчер устройств». Найдите ST Link V2 в разделе «Контроллеры USB» или «Другие устройства» (может отображаться как «Неизвестное устройство»), щелкните правой кнопкой мыши и выберите «Удалить устройство». Поставьте галочку «Удалить программы драйверов для этого устройства», если она доступна. После удаления отключите и снова подключите ST Link V2 – система предложит установить драйверы заново.
Для проверки корректности установки драйверов используйте утилиту STM32CubeProgrammer. В разделе «Port» должно отображаться «SWD» или «JTAG» с указанием серийного номера устройства. Если вместо этого видна ошибка «No ST-Link detected», переустановите драйверы вручную: в «Диспетчере устройств» выберите ST Link V2, обновите драйвер, указав путь к распакованной папке с драйверами. Избегайте использования драйверов из сторонних источников – они могут содержать модифицированные версии, несовместимые с официальным ПО.
На системах Windows 10 и 11 иногда возникает конфликт с драйверами WinUSB, которые автоматически назначаются устройству. Чтобы это исправить, скачайте утилиту Zadig, выберите в списке ST Link V2 и замените драйвер на libusb-win32 или libusbK. После замены перезагрузите компьютер. Этот шаг критичен, если STM32CubeProgrammer не распознает устройство, несмотря на установленные официальные драйверы.
Подключение ST Link V2 к компьютеру для прошивки

Перед подключением убедитесь, что на компьютере установлены драйверы ST-Link. Их можно загрузить с официального сайта STMicroelectronics или через утилиту STM32CubeProgrammer (версия 2.14.0 и новее). Для Windows используйте STSW-LINK009 – пакет драйверов, совместимый с Windows 10/11. На Linux потребуется библиотека libusb-1.0 и правила udev: создайте файл /etc/udev/rules.d/49-stlink.rules с содержимым:
SUBSYSTEM=="usb", ATTR{idVendor}=="0483", ATTR{idProduct}=="3748", MODE="0666"SUBSYSTEM=="usb", ATTR{idVendor}=="0483", ATTR{idProduct}=="374b", MODE="0666"
После добавления правил выполните команду sudo udevadm control --reload-rules и переподключите устройство.
Подключите ST Link V2 к компьютеру через USB-кабель типа Mini-B (разъем на отладчике). Избегайте использования удлинителей или хабов – это может вызвать ошибки связи. Для проверки подключения запустите STM32CubeProgrammer и выберите режим ST-LINK в интерфейсе. В поле Port должно отобразиться устройство с идентификатором 0483:3748 или 0483:374b. Если программа не распознает отладчик, обновите прошивку ST Link V2 через утилиту ST-LinkUpgrade (доступна в пакете STSW-LINK007).
Запуск утилиты ST-Link Upgrade и выбор устройства
Скачайте последнюю версию утилиты ST-LinkUpgrade.exe с официального сайта STMicroelectronics. Убедитесь, что файл загружен из раздела Tools & Software → ST-LINK tools, чтобы избежать подделок. Версия утилиты должна соответствовать вашей операционной системе: для Windows – STSW-LINK007, для Linux – STSW-LINK009.
Подключите ST-Link V2 к USB-порту компьютера. Используйте кабель с минимальной длиной (не более 1 метра) и проверьте, что порт не имеет физических повреждений. Если устройство не определяется, попробуйте другой порт или замените кабель – часто проблема кроется в некачественном соединении.
Запустите ST-LinkUpgrade.exe от имени администратора. В Windows: правый клик по файлу → Запуск от имени администратора. В Linux используйте команду sudo ./ST-LinkUpgrade. Без прав администратора утилита не сможет взаимодействовать с USB-контроллером на низком уровне.
После запуска утилита автоматически выполнит сканирование подключенных ST-Link устройств. Если программа не обнаружила ваш программатор, выполните следующие действия:
- Отключите и снова подключите ST-Link V2.
- Проверьте диспетчер устройств Windows на наличие неопознанных устройств (раздел Контроллеры USB).
- Установите драйверы вручную через
STSW-LINK009(папкаDrivers).
В окне утилиты отобразится список обнаруженных устройств. Выберите ваш ST-Link V2 по серийному номеру или идентификатору ST-LINK. Если в списке несколько устройств, ориентируйтесь на колонку Firmware version – она поможет отличить устаревшие версии от актуальных.
Перед выбором устройства обратите внимание на статус в колонке Status. Возможные значения:
- Up-to-date – прошивка актуальна, обновление не требуется.
- Update available – доступна новая версия прошивки.
- Error – устройство неисправно или не поддерживается.
Если статус Error, попробуйте переподключить устройство или обновить драйверы. В редких случаях потребуется восстановление через режим DFU (см. документацию AN3408).
При выборе устройства убедитесь, что в поле Target voltage отображается корректное значение (обычно 3.3 В или 5 В). Если напряжение равно 0 В, отключите ST-Link от целевой платы и повторите попытку – это признак короткого замыкания или неисправности.
После выбора устройства нажмите кнопку Upgrade или Next (в зависимости от версии утилиты). Не отключайте ST-Link во время обновления – прерывание процесса может привести к неработоспособности программатора. В случае сбоя используйте утилиту ST-LinkUpgrade_Recovery.exe для восстановления.
Выбор файла прошивки и настройка параметров обновления
Перед началом обновления определите точную модель вашего ST-Link V2. Оригинальные устройства от STMicroelectronics маркируются как ST-Link/V2 или ST-Link/V2-1, а клоны часто имеют обозначения ST-Link V2 mini или ST-Link V2 (China). Для оригинальных версий прошивки скачивайте с официального сайта ST: en.stm32cubeide → раздел STM32 ST-LINK Utility → вкладка Firmware updates. Клоны требуют альтернативных прошивок, например, от проекта stlink-tools на GitHub или форума EEVblog, где выложены проверенные сборки для китайских адаптеров.
Файл прошивки должен иметь расширение .bin или .hex. Оригинальные прошивки ST распространяются в формате .bin с именем вида ST-LinkUpgrade_vX.Y.Z.bin, где X.Y.Z – версия (например, 3.12.1). Для клонов часто используются файлы stlink-v2_jtag_vX.bin или stlink-v2_swd_vX.hex. Проверьте контрольную сумму SHA-256 скачанного файла: для официальных прошивок она указана на сайте ST, для альтернативных – в репозитории или теме форума.
Настройте параметры обновления в зависимости от используемого ПО. В STM32 ST-LINK Utility выберите ST-Link → Firmware update → укажите путь к файлу. Для клонов используйте ST-Link Upgrade от ST или сторонние утилиты вроде stlink-org/stlink (Linux/macOS) или STM32CubeProgrammer. В последнем случае переключите режим подключения на SWD и установите скорость 4000 kHz для стабильной передачи данных.
Если прошивка не распознаётся, проверьте соответствие версии файла и аппаратной ревизии ST-Link. Оригинальные адаптеры версии V2-A и V2-B поддерживают прошивки до 3.12.x, а V2-1 – только начиная с 3.0.0. Клоны на базе микросхем STM32F103C8T6 требуют прошивок с поддержкой JTAG/SWD, а на STM32F101C8T6 – только SWD. При ошибке «Target voltage not detected» отключите питание от целевого устройства и подключите ST-Link напрямую к USB.
Для клонов с проблемами распознавания в Windows установите драйверы libusb-win32 или Zadig. В Zadig выберите устройство STM32 STLink и замените драйвер на WinUSB. В Linux добавьте правило udev: создайте файл /etc/udev/rules.d/99-stlink.rules с содержимым SUBSYSTEM=="usb", ATTR{idVendor}=="0483", ATTR{idProduct}=="3748", MODE="666", затем выполните sudo udevadm control --reload-rules.
После выбора файла и настройки параметров запустите обновление с отключёнными антивирусами и брандмауэрами. Процесс занимает 10–30 секунд; не отключайте ST-Link до завершения. При сбое попробуйте другой USB-порт (предпочтительно USB 2.0) или кабель. Если адаптер перестал определяться, восстановите его через режим DFU: замкните контакты BOOT0 и VCC при подключении к USB, затем прошейте через STM32CubeProgrammer в режиме DFU.
Процесс обновления прошивки: ожидание и контроль ошибок
Во время обновления на экране отображается прогресс-бар и статусные сообщения. Обращайте внимание на следующие индикаторы:
Erasing...– стирание старой прошивки (5–15 секунд);Programming...– запись новой версии (10–40 секунд);Verification...– проверка целостности данных (3–10 секунд).
Если статус замирает на одном из этапов более 1 минуты, проверьте соединение USB-кабеля и попробуйте другой порт. Избегайте использования USB-хабов – они часто вызывают сбои питания.
Типичные ошибки и их решения:
- Ошибка
DFU not detected. Убедитесь, что ST-Link подключен в режиме DFU: зажмите кнопку на плате перед подключением к USB, затем отпустите через 3 секунды. Используйте утилитуSTM32CubeProgrammerверсии 2.12.0 или новее – старые версии не поддерживают актуальные чипы. - Сообщение
Target voltage not detected. Проверьте питание устройства: для ST-Link V2 требуется не менее 3.3 В. Если используется внешний источник, отключите его и подключитесь только через USB. - Сбой
Flash write protected. Снимите защиту черезSTM32CubeProgrammer: перейдите в раздел Option Bytes, выберитеRDPи установите значениеAA(Level 0).
После успешного обновления устройство перезагрузится автоматически. Если этого не произошло, отключите и снова подключите ST-Link. В диспетчере устройств Windows должно появиться новое устройство STMicroelectronics STLink dongle. Если вместо него отображается Неизвестное устройство, обновите драйверы вручную через Zadig или STM32CubeIDE.
Для проверки версии прошивки используйте команду в терминале:
st-info --probe
В редких случаях обновление завершается с кодом ошибки 0x12345678. Это указывает на несовместимость прошивки с аппаратной ревизией ST-Link. Скачайте прошивку для вашей конкретной модели с официального сайта STMicroelectronics, выбрав раздел Tools & Software → ST-Link → Firmware updates. Для клонов используйте прошивку от stm32duino или GitHub-репозитория stlink.
Логи ошибок сохраняются в файле stlink_log.txt в директории утилиты обновления. При обращении в поддержку приложите этот файл вместе с точным описанием шагов, приведших к сбою. Избегайте общих фраз вроде «не работает» – укажите конкретные сообщения об ошибках и версии используемого ПО.
Проверка успешности обновления через ST-Link Utility
Запустите ST-Link Utility (версия 4.6.0 или новее) и подключите программатор к ПК. В верхней панели выберите ST-LINK → Firmware update. В открывшемся окне проверьте текущую версию прошивки в поле Current ST-LINK Version – она должна соответствовать последней доступной на сайте STMicroelectronics (например, V2J40S7 для ST-Link V2). Если версия не обновилась, отключите и повторно подключите устройство, затем нажмите Refresh device list. При успешном обновлении в логе появится строка Firmware update successful без ошибок.
Дополнительно протестируйте функциональность через Target → Connect. Если подключение к целевому микроконтроллеру проходит без зависаний и ошибок No target connected, а в окне Target voltage отображается корректное напряжение (например, 3.3 В), обновление выполнено корректно. При сбоях проверьте целостность USB-кабеля и попробуйте другой порт – неисправности часто связаны с питанием или драйверами.
Устранение ошибок при неудачном обновлении ST Link V2
При успешном подключении в DFU-режиме:
- Скачайте оригинальную прошивку для вашей ревизии ST Link V2 (например,
STLinkV2_J16_S4.binдля версии с чипом STM32F103CBT6) с официального сайта STMicroelectronics или из репозитория texane/stlink. - В STM32CubeProgrammer выберите вкладку Erasing & Programming, укажите путь к файлу прошивки и нажмите Start Programming. Дождитесь завершения процесса (должно появиться сообщение
Download verified successfully).
При аппаратных сбоях (например, повреждение флеш-памяти) потребуется перепайка микросхемы STM32 или замена программатора.
Восстановление работы ST Link V2 после сбоя прошивки
Восстановление прошивки выполняется через утилиту STM32CubeProgrammer (версия 2.14.0 или новее). После подключения в режиме DFU выберите порт USB в интерфейсе программы, нажмите Connect. В разделе Erasing & Programming укажите путь к файлу прошивки (ST-LinkV2_J16_S4.bin для оригинальных клонов или stlink_v2_j27_s7.bin для модифицированных версий). Параметры программирования: Start address: 0x08000000, Erase: Sector, Verify: Yes.
Если STM32CubeProgrammer выдает ошибку Error: No STM32 target found!, отключите устройство, снимите перемычку с BOOT0 и повторите попытку. В случае повторного сбоя замените файл прошивки на альтернативный (например, из архива ST-Link_V2_Update_V2J37M27.zip с официального сайта STMicroelectronics). Для клонов с микросхемой GD32F103 используйте прошивку GD32_STLink_V2.bin – она учитывает особенности периферии.
Для диагностики аппаратных неисправностей используйте осциллограф или логический анализатор. Распространенные дефекты:
| Элемент | Проверяемый параметр | Нормальное значение |
|---|---|---|
| Резистор R7 (BOOT0) | Сопротивление | 10 кОм (±5%) |
| Конденсатор C1 (USB) | Емкость | 1 мкФ (±20%) |
| Микросхема U1 (STM32F103) | Напряжение на VDD | 3.3 В (±0.1 В) |
Если все проверки пройдены, но ST Link V2 по-прежнему не работает, замените кварцевый резонатор Y1 (8 МГц) – его неисправность приводит к сбоям тактирования. При отсутствии опыта пайки микросхем обратитесь к специалисту: перегрев корпуса STM32F103 при демонтаже гарантированно выведет его из строя.
