Перейти к основному содержимому

StLink

MultiProg работает с StLink как с проводником интерфейса SWD для работы с ARM/RISC-V.

Начиная с MultiProg 2.3.3 драйверы и апдейтер прошивки ST-Link идут в комплекте — качать их с сайта производителя больше не нужно.

При первом запуске MultiProg раскладывает архивы в профиль пользователя:

%USERPROFILE%\KuragaTech\MultiProg\programmer_utils\stlink\
├── en.stsw-link009.zip ← USB-драйверы (~5.3 МБ)
└── en.stsw-link007-v3-14-5.zip ← Firmware Updater v3.14.5 (~2.1 МБ; поддерживает в т.ч. неоригинальные ST-Link)

Папка лежит в %USERPROFILE% (C:\Users\<ваш_пользователь>), права администратора для запуска утилит не нужны.

Быстрый доступ из MultiProg

При типовых ошибках ST-Link («firmware too old», «Programmer not found», «libusb error», «usb communication») в диалоге ошибки появляется кнопка «Open ST-Link Utilities» — она открывает нужную папку в Проводнике одним кликом.

Перед первой работой со ST-Link — два шага:

Шаг 1. Установка USB-драйверов

  1. Распакуйте en.stsw-link009.zip в любую удобную папку.
  2. Запустите stlink_winusb_install.bat — драйверы установятся для USB-классов ST-Link debug / ST-Link bridge / ST-Link VCP.
  3. Подключите ST-Link к компьютеру и убедитесь, что он определился в Диспетчере устройств без «жёлтых треугольников».

На сегодня последняя протестированная версия прошивки — v3.14.5.

Прошиваем в любом случае

Даже если на ST-Link написано, что прошивка актуальная — прошейте заново. Некоторые поставщики (особенно по китайским клонам) подменяют номер прошивки, не обновляя содержимое.

  1. Распакуйте en.stsw-link007-v3-14-5.zip в любую удобную папку.
  2. Подключите ST-Link к USB.
  3. Запустите stsw-link007/Windows/ST-LinkUpgrade.exe.
  4. В окне утилиты нажмите Open in update modeUpgrade.
  5. Дождитесь завершения — утилита покажет новую версию прошивки.

После этого ST-Link готов к работе с MultiProg.

pinout

В оригинальной версии StLink есть выход с управляемым VDD и выход с неуправляемым, постоянным питанием. Для работы c StLink нужно использовать пин с постоянным питанием.

reset

Обязательно проверьте работу reset, он нужен на многих контроллерах для корректного стирания/записи. Можно выбрать любой контроллер в StLink и нажать connect, на reset должен быть короткий импульс.

Serial Wire Debug (SWD)

Очень распространённый интерфейс, изначально альтернатива JTAG работающая по 2 пинам (SWDIO/SWCLK). У ARM это основной интерфейс программирования и отладки.

Программирование

Начиная с MultiProg 2.3.0 ST-Link обслуживается нашим собственным SWD-бэкендом KT SWD — библиотекой, написанной с нуля в Kuraga Tech и заменившей сторонний стек. Поверх неё для каждого семейства идут наши собственные flash-роутины.

Включённые семейства:

  • STM32 — F0, F1, F2, F3, F4, F7, G0, G4, H7 (9 семейств)
  • Infineon FM3 / FM4 — 2 семейства
  • NXP MKE — MKE02Z, MKE04Z, MKE14Z, MKE15Z (4 семейства)

Быстрая запись через SRAM-роутины — для STM32 F0/F1/F2/F3/F4/F7/G0/G4/H7, NXP MKE02/04/06 и Infineon FM4 MB9B560 запись идёт собственной микропрограммой, загружаемой в SRAM цели (раньше — побайтово через DAP). Скорость — на уровне J-Flash / J-Link.

Свой стек целиком — улучшаем и расширяем без оглядки на сторонние библиотеки. Поддержаны Option Bytes, EEPROM, FlexNVM и нюансы каждого семейства.