ST-Link¶
ST-Link - это программатор и отладчик для микроконтроллеров STM32.
В контексте простых устройств он нужен, чтобы:
- прошить STM32-плату;
- восстановить плату после неудачной прошивки;
- подключиться к чипу через SWD;
- стереть память;
- проверить, виден ли микроконтроллер;
- иногда отлаживать программу.
ST-Link не нужен для всех плат. ESP32, RP2040 и Arduino обычно прошиваются другими способами.
Что такое SWD¶
SWD - это Serial Wire Debug.
Это интерфейс отладки и прошивки ARM-микроконтроллеров, который часто используют у STM32.
Для базового подключения обычно нужны:
SWDIO;SWCLK;GND;- иногда
NRST; - иногда
3.3VилиVTrefкак опорное напряжение цели.
Важно: 3.3V на ST-Link не всегда означает "питать плату отсюда". Часто ST-Link должен видеть напряжение целевой платы, чтобы понимать уровни сигналов.
Минимальное подключение¶
Обычно подключают:
ST-Link SWDIO -> плата SWDIO
ST-Link SWCLK -> плата SWCLK
ST-Link GND -> плата GND
ST-Link NRST -> плата NRST, если нужен reset
ST-Link 3.3V/VTref -> 3.3V цели, если это требуется конкретным ST-Link
Плата STM32 при этом часто питается от своего штатного питания или USB.
Перед подключением проверь документацию конкретного ST-Link и платы.

Источник: Wikimedia Commons, Avandalen, CC BY-SA 4.0
Питание платы¶
Самая частая путаница: питается ли плата от ST-Link или отдельно.
Варианты:
- Плата питается отдельно, ST-Link только подключается к SWD и GND.
- ST-Link даёт 3.3V на маленькую целевую плату, если он действительно рассчитан на это.
- ST-Link только считывает
VTref, но не должен питать плату.
Нельзя бездумно соединять несколько источников питания.
Если плата уже питается от USB или блока питания, не подключай питание от ST-Link, пока не уверен, что это разрешено схемой.
Чем ST-Link отличается от DFU¶
DFU - это режим прошивки через USB-загрузчик, если он есть и доступен.
ST-Link работает через SWD напрямую с микроконтроллером.
ST-Link полезен, когда:
- DFU не доступен;
- bootloader повреждён или не используется;
- прошивка отключила USB;
- плата не выходит в обычный режим прошивки;
- нужно стереть память;
- нужно восстановить доступ к STM32.
Но если плата нормально прошивается через USB/DFU или SD-карту, ST-Link может быть не нужен.
Connect under reset¶
Иногда прошивка ломает доступ к SWD.
Например:
- использованы пины SWD как обычные GPIO;
- прошивка быстро уводит чип в сон;
- код зависает сразу после старта;
- настроены неправильные clock/power режимы.
В таких случаях помогает режим Connect under reset.
Смысл: ST-Link удерживает reset и пытается подключиться до того, как плохая прошивка начнёт выполняться.
Для этого часто нужно подключить NRST.
Как понять, что ST-Link видит плату¶
В STM32CubeProgrammer или другой утилите обычно видно:
- подключён ли ST-Link;
- найден ли target;
- какой чип обнаружен;
- можно ли прочитать память;
- можно ли стереть flash.
Если ST-Link виден как USB-устройство, но target не найден, проблема часто в подключении к плате:
- нет питания целевой платы;
- нет общего
GND; - перепутаны
SWDIOиSWCLK; - не подключён
VTref, если он нужен; - слишком высокая частота SWD;
- чип залочен;
- прошивка мешает подключению;
- нужен
Connect under reset.
Частота SWD¶
Если связь нестабильна, попробуй уменьшить частоту SWD.
На длинных проводах, плохих Dupont-перемычках или нестабильной плате высокая частота может мешать подключению.
Для восстановления платы лучше медленнее и надёжнее, чем быстрее.
Типовые ошибки¶
- забыли
GND; - перепутали
SWDIOиSWCLK; - подключили питание от ST-Link и USB одновременно без понимания схемы;
- не подали питание на целевую плату;
- не подключили
NRST, когда нуженConnect under reset; - выбрали слишком высокую частоту SWD;
- пытаются ST-Link прошить ESP32 или RP2040;
- пытаются подключиться к залоченному чипу без понимания readout protection;
- используют длинные плохие провода;
- не обновили firmware ST-Link или не установили драйвер.
Что нельзя делать¶
Нельзя:
- подавать 5V на 3.3V STM32-плату без проверки;
- соединять несколько источников питания наугад;
- подключать ST-Link к плате под сетевым напряжением без безопасной изоляции и корпуса;
- менять SWD-провода при включённом питании, если есть риск короткого;
- считать, что клон ST-Link имеет такую же распиновку, как оригинал.
У клонов ST-Link распиновка может отличаться. Всегда смотри маркировку именно своего адаптера.
Главное¶
- ST-Link нужен для STM32 через SWD.
- Минимум:
SWDIO,SWCLK,GND, иногдаNRSTиVTref. - Плата должна быть правильно запитана, но не обязательно от ST-Link.
- DFU и ST-Link - разные способы прошивки.
Connect under resetпомогает восстановить доступ после плохой прошивки.- Если target не найден, сначала проверяй питание,
GND,SWDIO/SWCLK,NRSTи частоту SWD.
Материалы по теме¶
- STMicroelectronics: UM1075 ST-LINK/V2 User Manual - официальный manual ST-LINK/V2, SWD/JTAG pins, target VCC и GND.
- STMicroelectronics: UM2237 STM32CubeProgrammer User Manual - режимы подключения ST-LINK, включая Normal, Connect under reset и Hot plug.
- ST Wiki: ST-LINK - обзор ST-LINK как аппаратного probe для STM32/STM8 и поддерживаемых протоколов.
- Klipper: Installation - общий процесс подготовки MCU для Klipper.
- STMicroelectronics: STM32CubeProgrammer - официальный инструмент ST для прошивки STM32 через ST-LINK/SWD, UART, USB DFU, SPI, I2C и CAN bootloader.