Программаторы и отладчики для микроконтроллеров
Программатор записывает прошивку в микроконтроллер, отладчик ещё и останавливает его, показывает регистры и переменные. Какой нужен, решает семейство микроконтроллера и его интерфейс: ISP и UPDI у AVR, ICSP у PIC, SWD и JTAG у ARM, однопроводной интерфейс у CH32V. Сравниваем популярные устройства по документации производителей.
Обновлено Редакция GAW
Программатор — устройство, которое через отладочный или программный интерфейс микроконтроллера записывает в него прошивку, конфигурационные биты и данные. Отладчик (debug probe) умеет ещё и управлять ядром: останавливать программу на точках останова, выполнять её по шагам, читать регистры и память. Большинство современных устройств совмещают обе роли, а простые вроде USBasp только программируют. Интерфейс определяется микроконтроллером, а не программатором: классические AVR прошиваются по ISP (SPI), новые AVR — по UPDI, PIC — по ICSP, ARM Cortex-M — по SWD или JTAG, многие RISC-V — по JTAG, STM8 — по SWIM, CH32V — по однопроводному или двухпроводному интерфейсу WCH. Микроконтроллер с загрузчиком в ПЗУ, например STM32 или ESP32, можно прошить и вовсе без программатора — через UART или USB.
Коротко
- AVR по ISP за минимальные деньги — USBasp: открытая схема на ATmega8/88, до 5 КБ/с, работает с avrdude; без доработок только для 5-вольтовых плат.
- STM32 и STM8 — ST-LINK: у ST-LINK/V2 SWD до 4 МГц и JTAG до 9 МГц, у STLINK-V3 — 24 и 21 МГц; цель 1,65–3,6 В у ST-LINK/V2 и STLINK-V3MINIE, 3–3,6 В у STLINK-V3SET без адаптера, от 3 В у встроенных ST-LINK/V2-A и V2-B.
- Любые ARM и RISC-V — SEGGER J-Link: цель 1,2–5 В, интерфейс до 15 МГц (BASE, PLUS) или 50 МГц (Ultra, Pro), RTT, GDB Server.
- PIC, dsPIC, AVR, SAM — PICkit 5 (ICSP, UPDI, PDI, ISP, TPI, debugWIRE, JTAG, SWD; 1,2–5 В, питание цели до 150 мА) или более дешёвый MPLAB Snap без высоковольтного режима.
- CMSIS-DAP — открытый протокол Arm для адаптеров SWD и JTAG, его понимают OpenOCD, pyOCD, Keil и IAR.
- CH32V от WCH — WCH-LinkE: однопроводной интерфейс у CH32V003 и CH641, двухпроводной у остальных, плюс ARM SWD/JTAG и выход питания 3,3/5 В.
Сравнительная таблица
| Устройство | Микроконтроллеры | Интерфейсы | Напряжение цели | Скорость | Питание цели | Программы |
|---|---|---|---|---|---|---|
| USBasp (fischl.de) | AVR | ISP; TPI у ATtiny4/5/6/10 | 5 В (иначе нужен преобразователь уровней) | до 5 КБ/с, SCK 375 кГц | 5 В от USB перемычкой J1 | avrdude, BASCOM-AVR |
| ST-LINK/V2 | STM32, STM8 | SWD, JTAG, SWV; SWIM | 1,65–3,6 В (SWD/JTAG), 1,65–5,5 В (SWIM) | SWD до 4 МГц, JTAG до 9 МГц | нет | STM32CubeIDE, STM32CubeProgrammer, OpenOCD, pyOCD, IAR, Keil |
| STLINK-V3SET | STM32; STM8 через адаптер | SWD, SWV, JTAG, SWIM, VCP, мост SPI/I2C/CAN/UART | 3–3,6 В; 1,65 В с B-STLINK-VOLT | SWD до 24 МГц, JTAG до 21 МГц | нет | те же |
| STLINK-V3MINIE | STM32 | SWD, SWV, JTAG, VCP | 1,65–3,6 В | SWD до 24 МГц, JTAG до 21 МГц | нет | те же |
| J-Link BASE / PLUS | ядра Arm, RISC-V, Microchip, Renesas, Silicon Labs и др. | JTAG, SWD, SWO | 1,2–5 В | интерфейс до 15 МГц, в ОЗУ до 1 МБ/с | — | J-Link GDB Server, STM32CubeIDE, OpenOCD, pyOCD; Ozone и J-Flash — у PLUS, не у BASE |
| J-Link Ultra / Pro | то же | то же | 1,2–5 В | до 50 МГц, в ОЗУ до 4 МБ/с | — | то же |
| PICkit 5 | PIC, dsPIC, AVR, SAM, CEC | ICSP, UPDI, PDI, ISP, TPI, debugWIRE, JTAG, SWD, EJTAG | 1,2–5 В; высоковольтный вход от 1,8 или 2,8 В (руководство противоречит себе), до 5 В | — | до 150 мА | MPLAB X IDE, MPLAB IPE, avrdude |
| MPLAB Snap | PIC, dsPIC, AVR, SAM, CEC (кроме требующих высокого напряжения) | те же, без высоковольтного режима | 1,2–5 В ±10 % | — | нет | MPLAB X IDE, MPLAB IPE, avrdude (в режиме AVR) |
| CMSIS-DAP | Arm Cortex-A/R/M | JTAG, SWD, SWO, UART | зависит от адаптера | зависит от адаптера | зависит от адаптера | Keil MDK, IAR, SEGGER Embedded Studio, OpenOCD, pyOCD, PlatformIO |
| WCH-LinkE | CH32V, CH32F, CH5xx; ARM с SWD/JTAG | однопроводной и двухпроводной WCH, SWD, JTAG, UART | в руководстве не указано | UART до 921 600 бит/с | 3,3 или 5 В, включается программой | MounRiver Studio, WCH-LinkUtility, Keil |
Прочерк — производитель в использованных документах этот параметр для модели не приводит. Скорость J-Link — пиковая скорость загрузки в ОЗУ по данным SEGGER; реальная зависит от интерфейса, его частоты и ядра.
USBasp
USBasp — открытый ISP-программатор для AVR Томаса Фишля. Схема — микроконтроллер ATmega8 или ATmega88 и несколько пассивных компонентов; USB реализован программно (библиотека V-USB), поэтому отдельная микросхема USB не нужна. Последний выпуск прошивки на fischl.de — usbasp.2011-05-28 (версия 1.4): в нём добавлены TPI для ATtiny4/5/6/10 и поддержка микроконтроллеров с флеш-памятью больше 128 КБ. Лицензия — GNU GPL 2. Помимо авторской схемы, на сайте собраны печатные платы, разведённые другими людьми, в том числе с преобразователями уровней и переключателем 3,3/5 В.
Что важно знать о USBasp по авторскому Readme:
- Только 5 В. Схема из пакета рассчитана на программирование целевых плат с питанием 5 В; для других напряжений нужен преобразователь уровней.
- Перемычка J1 питает цель напряжением 5 В от USB. Защиты от короткого замыкания нет.
- Перемычка J2 нужна для перепрошивки самого USBasp: обновить себя по USB он не умеет, его прошивают другим программатором.
- Перемычка J3 снижает частоту SCK с 375 кГц примерно до 8 кГц — для микроконтроллеров, работающих от тактовой частоты ниже 1,5 МГц. С версии 2009 года частоту можно задавать и программно: прошивка знает значения от 500 Гц до 1,5 МГц, и avrdude выбирает их ключом
-B. - Скорость записи — до 5 КБ/с.
- Драйверы: в Linux и macOS драйвер ядра не нужен (в Linux для работы без root нужно правило udev), в Windows автор рекомендует установить драйвер программой Zadig.
AVRDUDE поддерживает USBasp с версии 5.2, команда записи: avrdude -c usbasp -p atmega8 -U flash:w:main.hex. Ключи, фьюзы и разбор ошибок — в статье об avrdude, разъём ISP — на странице распиновки AVR ISP, сами способы прошивки AVR — в статье о программировании AVR.
ST-LINK/V2 и STLINK-V3
ST-LINK — фирменные программаторы-отладчики ST для STM32 и STM8. Кроме отдельных устройств, тот же ST-LINK встроен в платы Nucleo, Discovery и оценочные платы — им можно прошивать и внешние платы.
ST-LINK/V2
Построен на STM32F103C8, питается от USB (USB 2.0 Full Speed, разъём Mini-B). Два разъёма: 20-контактный JTAG/SWD/SWV для STM32 и SWIM для STM8. Характеристики по UM1075 Rev 10:
| Параметр | Значение |
|---|---|
| Напряжение цели, JTAG/SWD | 1,65–3,6 В, входы допускают 5 В |
| Напряжение цели, SWIM | 1,65–5,5 В |
| JTAG | до 9 МГц, по умолчанию 1,125 МГц |
| SWD | до 4 МГц, по умолчанию 1,8 МГц |
| SWV (вывод SWO) | до 2 МГц |
| SWIM | 9,7 и 12,8 КБ/с в медленном и быстром режиме |
| Рабочая температура | 0–50 °C |
На цели ST-LINK/V2 выдаёт сигналы с уровнем 3,3 В даже для более низковольтной платы; сами STM32 это переносят, а для чувствительных схем ST советует ST-LINK/V2-ISOL, STLINK-V3MINIE или STLINK-V3SET с адаптером B-STLINK-VOLT. Вариант ST-LINK/V2-ISOL имеет гальваническую развязку на 1000 В (RMS).
Контакт 1 разъёма (VAPP) нужно соединить с питанием VDD микроконтроллера: по нему программатор согласует уровни сигналов. Контакт 15 — NRST, без него не работает подключение под сбросом. Контакт 19 (VDD 3,3 В) к цели не подключается, поэтому питать плату ST-LINK/V2 не может. Полная распиновка — на странице JTAG и SWD.
STLINK-V3
Третье поколение ST-LINK работает по USB 2.0 High Speed. По UM2448 Rev 9 и TN1235 Rev 7:
- STLINK-V3SET — модульный: основной модуль только для STM32 (3–3,6 В), SWD до 24 МГц, SWO до 16 МГц, JTAG до 21 МГц, виртуальный COM-порт от 732 бит/с до 16 Мбит/с. Плата-адаптер MB1440 добавляет SWIM для STM8 (1,65–5,5 В) и мост USB — SPI, I2C, CAN, UART, GPIO, через который STM32CubeProgrammer прошивает микроконтроллер встроенным загрузчиком. Модуль B-STLINK-VOLT расширяет диапазон до 1,65 В, B-STLINK-ISOL ещё и развязывает (2,5 кВ RMS). Цепочки из нескольких устройств JTAG (daisy chain) STLINK-V3SET не поддерживает, питание на цель не подаёт.
- STLINK-V3MINIE — компактный (15 × 42 мм), USB Type-C, SWD и SWV до 24 МГц, JTAG до 21 МГц, VCP до 15 Мбит/с, цель 1,65–3,6 В, разъём STDC14 с шагом 1,27 мм.
У ST-LINK/V2-1 и STLINK-V3 есть ещё и интерфейс накопителя: STM32 можно прошить, перетащив .bin на появившийся диск. Для STLINK-V3SET руководство UM2448 уточняет условия: цель должна быть подключена до того, как программатор вставлен в USB, а файл записывается в начало флеш-памяти, только если вектор сброса указывает во флеш-память, а указатель стека — в ОЗУ.
Программы и драйверы
STM32CubeProgrammer задаёт частоту SWD из фиксированного ряда: у ST-LINK/V2 — от 5 до 4000 кГц, у STLINK-V3 — от 5 до 24 000 кГц; введённое значение округляется до ближайшего большего. ST-LINK работает с STM32CubeIDE (ST-LINK GDB server или OpenOCD), STM32CubeProgrammer, IAR EWARM и Keil MDK, STM8 — с ST Visual Develop и ST Visual Programmer. Драйвер OpenOCD st-link поддерживает ST-LINK/V2 с прошивки V2J24 и STLINK-V3, в pyOCD есть модуль stlink.
- Windows: драйвер STSW-LINK009 обязателен для ST-LINK/V2 и V2-1; среды разработки ST ставят его сами.
- Linux: правила udev из пакета STSW-LINK007 и библиотека libusb-1.0.
- macOS: драйвер не нужен.
- Прошивка программатора обновляется по USB программой STLinkUpgrade (пакет STSW-LINK007) — она сама определяет модель. Прерывать обновление нельзя: ST предупреждает, что программатор может стать неработоспособным.
SEGGER J-Link
J-Link — коммерческие отладчики SEGGER, рассчитанные на ядра Arm (от Cortex-M до 64-разрядных Cortex-A), RISC-V и ядра Microchip, Renesas, Silicon Labs и Cadence; список поддерживаемых микросхем насчитывает десятки тысяч позиций. Встроенные загрузчики флеш-памяти и технология RTT (Real Time Transfer — обмен данными с работающей программой через отладочный интерфейс) — главные отличия от простых адаптеров. Неограниченное число точек останова во флеш-памяти, отладчик Ozone и J-Flash по таблице сравнения SEGGER есть у PLUS, WiFi, Ultra и Pro, но не у младшей модели BASE. В комплекте ПО (Windows, Linux, macOS) есть J-Link GDB Server, через который J-Link подключается к любой среде на GDB, в том числе STM32CubeIDE.
| Модель | Интерфейс до | Загрузка до | SWO до | Напряжение цели |
|---|---|---|---|---|
| J-Link BASE, PLUS, WiFi | 15 МГц | 1 МБ/с | 30 МГц | 1,2–5 В |
| J-Link Ultra, Pro, Pro PoE | 50 МГц | 4 МБ/с | 100 МГц | 1,2–5 В |
| J-Link EDU Mini | JTAG 4 МГц | 200 КБ/с | 4 МГц | интерфейс 1,8 или 3,3 В |
J-Link EDU Mini разрешено использовать только в некоммерческих учебных целях: в компании, в коммерческой среде и для разработки коммерческих изделий — нельзя. В macOS и Linux для него доступны только J-Link Commander, GDB-сервер и библиотека.
J-Link можно использовать и с OpenOCD (драйвер jlink, JTAG и SWD), но SEGGER предупреждает: в этом случае не работают фирменные загрузчики флеш-памяти, неограниченные точки останова и высокая скорость, а поддержку оказывает сообщество OpenOCD. STM32CubeProgrammer через J-Link умеет только записывать флеш-память и option bytes, по SWD на частоте 4000 кГц. В pyOCD есть модуль jlink.
Microchip PICkit 5 и MPLAB Snap
Оба отладчика работают с PIC, dsPIC, AVR и 32-разрядными SAM и CEC на Arm в средах MPLAB X IDE и MPLAB IPE, подключаются к цели 8-контактным однорядным разъёмом с шагом 2,54 мм. На одних и тех же контактах в зависимости от семейства — разные интерфейсы:
| Контакт | ICSP (PIC) | Cortex SWD | AVR UPDI | AVR ISP | AVR debugWIRE |
|---|---|---|---|---|---|
| 1 | MCLR/VPP | RESET | RESET (для высоковольтного импульса UPDI) | — | — |
| 2 | VDD | VDD | VTG | VTG | VTG |
| 3 | GND | GND | GND | GND | GND |
| 4 | DAT | SWO | DAT | MISO | — |
| 5 | CLK | SWCLK | — | SCK | — |
| 6 | — | — | — | RESET | RESET/dW |
| 7 | — | — | — | MOSI | — |
| 8 | — | SWDIO | — | — | — |
Таблица — по руководству PICkit 5 (табл. 3-1); там же JTAG, PDI, TPI и MIPS EJTAG. При 6-контактном разъёме теряются контакты 7 и 8, а с ними JTAG, SWD и ISP. Подробнее о PIC — в разделе микроконтроллеров PIC.
PICkit 5 (PG164150, DS50003525C):
- интерфейсы ICSP, двух- и четырёхпроводной JTAG, SWD, UPDI, PDI, ISP, TPI, debugWIRE, MIPS EJTAG;
- напряжение цели для низковольтного входа в программирование 1,2–5,0 В, для высоковольтного — 1,8–5,0 В по разд. 2.1 и 2,8–5,0 В по табл. 9-4 того же руководства; надёжнее рассчитывать на 2,8 В;
- может питать цель током до 150 мА, сам питается от USB Type-C или от цели;
- режим Programmer-To-Go: образ прошивки на карте microSD, прошивка без компьютера, управление со смартфона по Bluetooth;
- виртуальный COM-порт для обмена с целью по UART.
MPLAB Snap (PG164100, DS50002787G) — недорогой отладчик для проектов без высоковольтного программирования:
- те же интерфейсы (четырёхпроводной JTAG, SWD, UPDI, PDI, SPI, debugWIRE, TPI, ICSP), напряжение цели 1,2–5,0 В ±10 %;
- не питает цель — у платы должно быть своё питание;
- нет высоковольтного режима: микроконтроллеры, которым он нужен, Snap не поддерживает; у маловыводных AVR с UPDI он не может вернуть вывод UPDI, если тот переназначен фьюзом RSTPINCFG в GPIO или RESET;
- не предназначен для серийной прошивки.
С AVR оба работают и в avrdude — по JTAG, TPI, ISP, PDI и UPDI, а также по debugWIRE (программаторы pickit5_dw и snap_dw в avrdude.conf). Snap и PICkit 4 avrdude использует только в режиме AVR (ключ -x mode=avr), а PICkit 5 может по команде -x vtarg=3.3 подать на цель напряжение и восстановить вывод UPDI высоковольтным импульсом (-x hvupdi). avrdude принимает для vtarg значения 1,8–5,5 В, но по руководству Microchip PICkit 5 рассчитан на цели до 5,0 В — выше этого выходить не стоит.
CMSIS-DAP
CMSIS-DAP — открытая спецификация протокола и эталонная прошивка Arm (лицензия Apache 2.0) для отладочных адаптеров. Адаптер соединяется с компьютером по USB, а с микроконтроллером — по пятипроводному JTAG или двухпроводному SWD; дополнительно может передавать данные SWO и работать как переходник USB — UART. Протокол даёт доступ к отладочным регистрам CoreSight процессоров Cortex-A, R и M, в том числе многоядерных.
Версия 1.x (USB HID) устарела; версия 2.x использует USB bulk, передаёт SWO с высокой скоростью и не требует драйвера в Windows, Linux и macOS. По данным Arm, CMSIS-DAP понимают Keil MDK, IAR Embedded Workbench, SEGGER Embedded Studio, PlatformIO, pyOCD и OpenOCD (драйвер cmsis-dap для v1 и v2), а многие встроенные отладчики оценочных плат реализуют именно этот протокол. Напряжение цели и частоту интерфейса определяет конкретный адаптер, а не протокол.
WCH-LinkE
WCH-LinkE — отладчик WCH для её микроконтроллеров на RISC-V (CH32V, CH32X035, CH32L103, CH569, CH573, CH583, CH59x, CH641, CH643) и для ARM-микроконтроллеров с SWD или JTAG (CH32F и другие). Режим RISC-V или ARM переключается в MounRiver Studio, программой WCH-LinkUtility или кнопкой ModeS при подаче питания. По руководству WCH-Link V1.9:
- CH32V003 и CH641 подключаются одним проводом SWDIO, остальные — двумя (SWDIO и SWCLK). CH32V003 поддерживают только WCH-LinkE и WCH-LinkW, но не базовый WCH-Link;
- в режиме ARM WCH-LinkE виден в Keil (с версии 5.25) как CMSIS-DAP Debugger; JTAG — с аппаратной версии WCH-LinkE-R0-1v3;
- выход питания цели 3,3 или 5 В включается и выключается из WCH-LinkUtility;
- последовательный порт — до 921 600 бит/с;
- длина кабеля до цели — не более 30 см; при нестабильной записи снижают скорость.
Подробнее о CH32V003 — на странице CH32V003.
Как выбрать
- По семейству микроконтроллера. AVR — USBasp (5 В, только ISP) или PICkit 5 и Snap (все интерфейсы AVR, отладка). PIC и dsPIC — PICkit 5 или Snap. STM32 — ST-LINK (встроенный в Nucleo или STLINK-V3MINIE). CH32V — WCH-LinkE. Смесь ARM-микроконтроллеров разных производителей — J-Link или адаптер CMSIS-DAP.
- По напряжению цели. Для плат на 1,8–3,3 В годятся STLINK-V3MINIE (1,65–3,6 В), STLINK-V3SET с адаптером B-STLINK-VOLT, J-Link и PICkit 5 (от 1,2 В). ST-LINK/V2 формально работает от 1,65 В, но выдаёт сигналы уровня 3,3 В — для чувствительных низковольтных схем ST советует другие модели. STLINK-V3SET без адаптера — от 3 В. USBasp без доработок — только для 5 В.
- Нужна ли отладка. USBasp только прошивает. ST-LINK, J-Link, PICkit 5, Snap, CMSIS-DAP и WCH-LinkE останавливают ядро, ставят точки останова и читают переменные.
- Нужно ли питать плату от программатора. Питают PICkit 5 (до 150 мА), WCH-LinkE (3,3 или 5 В) и USBasp (5 В); J-Link может подавать питание на контакт 19 своего 20-контактного разъёма (в OpenOCD — команда
jlink config targetpower on), у EDU Mini этой возможности нет. ST-LINK и Snap цель не питают. - Высокое напряжение программирования. Микроконтроллерам, которые программируются только высоким напряжением, и AVR с переназначенным выводом UPDI нужен PICkit 5; Snap здесь не подойдёт.
- Лицензия. J-Link EDU Mini — только для учёбы без коммерческой выгоды.
Микроконтроллеры с загрузчиком в ПЗУ часто прошивают вообще без программатора: STM32 — через UART или USB DFU (см. статью о загрузчике STM32), ESP32 и ESP8266 — через esptool по UART.
Частые ошибки
- Две схемы питания. Включённая перемычка J1 на USBasp при собственном блоке питания платы — два источника на одной шине. PICkit 5 и avrdude проверяют, подано ли на VTG внешнее напряжение, но и с ними лучше питать плату от одного источника.
- 5-вольтовый USBasp на 3,3-вольтовой плате. Авторская схема выдаёт 5-вольтовые уровни; нужен преобразователь уровней или программатор с широким диапазоном напряжений.
- Не подключён VAPP (VTG). ST-LINK и отладчики Microchip измеряют напряжение цели на этом контакте и по нему согласуют уровни; без него программатор не видит питания платы.
- Не подключён NRST. Подключение под сбросом (режим по умолчанию в STM32CubeIDE) без этого провода не работает, а программа, которая перенастроила выводы SWD, не даёт подключиться иначе.
- Слишком высокая частота SCK для медленного AVR. Микроконтроллер с тактовой частотой ниже 1,5 МГц USBasp прошивает только с перемычкой J3 или с уменьшенной частотой
-Bв avrdude. - Snap в режиме MPLAB для avrdude. Сначала переключить его командой
avrdude -c snap_updi -x mode=avr(или с другим вариантом:snap_isp,snap_pdi,snap_tpi,snap_dw), затем работать. - Длинные провода. У WCH-LinkE предел 30 см; для ST-LINK и J-Link при длинных проводах снижают частоту SWD.
Частые вопросы
Какой программатор нужен для STM32?
ST-LINK: встроенный в плату Nucleo или Discovery, отдельный ST-LINK/V2 или STLINK-V3MINIE. С ним работают STM32CubeIDE, STM32CubeProgrammer, OpenOCD и pyOCD. ST-LINK/V2 даёт SWD до 4 МГц, STLINK-V3 — до 24 МГц. Подходят и универсальные J-Link и программаторы CMSIS-DAP. Без программатора STM32 можно прошить через встроенный загрузчик по UART или USB.
Можно ли прошить 3,3-вольтовый AVR через USBasp?
Оригинальная схема USBasp Томаса Фишля рассчитана только на целевые платы с питанием 5 В, для других напряжений, по словам автора, нужен преобразователь уровней. Перемычка J1 подаёт на цель 5 В от USB без защиты от замыкания, её нельзя ставить, если у платы своё питание 3,3 В. Для смешанных напряжений лучше подходят PICkit 5 и MPLAB Snap (1,2–5 В).
Чем PICkit 5 отличается от MPLAB Snap?
Оба работают с PIC, dsPIC, AVR и SAM в MPLAB X IDE и MPLAB IPE и подключаются 8-контактным разъёмом. PICkit 5 умеет высоковольтное программирование (оно нужно микроконтроллерам, которые иначе не программируются, и для восстановления вывода UPDI у AVR), питает цель током до 150 мА и прошивает без компьютера с карты microSD. Snap дешевле, не питает цель, не даёт высокого напряжения и не предназначен для серийной прошивки.
Что такое CMSIS-DAP и зачем он нужен?
Это открытый протокол и прошивка Arm для отладочных адаптеров ARM Cortex: связь с компьютером по USB, с микроконтроллером по JTAG или SWD, плюс SWO и UART. С адаптерами CMSIS-DAP работают Keil MDK, IAR, OpenOCD, pyOCD и PlatformIO. Версия 2 работает без установки драйвера и передаёт SWO быстрее; версия 1 устарела.
Можно ли пользоваться J-Link EDU Mini в работе?
Нет. SEGGER разрешает EDU Mini только для некоммерческого обучения: его нельзя применять в компании, в коммерческой среде и для разработки коммерческих изделий, даже студенту на практике. Для работы нужны J-Link BASE и старшие модели. Технической поддержки у EDU Mini нет, а напряжение интерфейса — только 1,8 или 3,3 В.
Источники
- Thomas Fischl. USBasp — USB programmer for Atmel AVR controllers (fischl.de) и пакет usbasp.2011-05-28: Readme.txt, Changelog.txt, firmware/usbasp.h — контроллер ATmega8 или ATmega88, скорость до 5 КБ/с, перемычки J1–J3, только 5-вольтовые цели без преобразователя уровней, частоты SCK, поддержка TPI, программы avrdude и BASCOM-AVR, драйвер Windows
- STMicroelectronics. UM1075 Rev 10. ST-LINK/V2 in-circuit debugger/programmer for STM8 and STM32, апрель 2024 — интерфейсы SWIM, JTAG, SWD и SWV, напряжения, скорости, распиновка 20-контактного разъёма, светодиод COM, драйвер STSW-LINK009
- STMicroelectronics. UM2448 Rev 9. STLINK-V3SET debugger/programmer for STM8 and STM32, апрель 2025 — напряжения 3–3,6 В и 1,65 В с адаптерами, SWD до 24 МГц, JTAG до 21 МГц, мост SPI/I2C/CAN/UART, отсутствие питания цели и цепочки JTAG
- STMicroelectronics. TN1235 Rev 7. Overview of ST-LINK derivatives, январь 2025; UM2237 Rev 29. STM32CubeProgrammer software description, ноябрь 2025 — STLINK-V3MINIE, обновление прошивки STLinkUpgrade (STSW-LINK007), драйверы; частоты SWD и JTAG в STM32CubeProgrammer, работа STM32CubeProgrammer с J-Link
- SEGGER. J-Link debug probes и J-Link EDU Mini (segger.com) — модели, напряжение цели 1,2–5 В, скорость интерфейса 15 и 50 МГц, RTT, GDB Server, OpenOCD; лицензия и характеристики EDU Mini
- Microchip. MPLAB PICkit 5 In-Circuit Debugger User's Guide, DS50003525C (2025); MPLAB Snap In-Circuit Debugger User's Guide, DS50002787G (2023) — поддерживаемые семейства, интерфейсы и распиновка 8-контактного разъёма, диапазоны напряжения, питание цели до 150 мА, ограничения Snap
- Arm. CMSIS-DAP: Overview (arm-software.github.io/CMSIS-DAP) — протокол и прошивка, JTAG и SWD, SWO, UART, версии v1 и v2, список программ
- WCH. WCH-LinkUserManual V1.9 — режимы RISC-V и ARM, поддерживаемые микроконтроллеры, выход питания 3,3/5 В, скорости UART, длина кабеля, программы
- AVRDUDE 8.3 avrdude(1); OpenOCD 0.12.0 User's Guide (doc/openocd.texi); pyOCD docs/debug_probes.md — какие программаторы поддерживают avrdude, OpenOCD и pyOCD
Нашли ошибку?
Смотрите также
- AVRDUDEПрошивка AVR из командной строки: ключи, Arduino, USBasp, фьюзы, ошибки
- STM32CubeIDEСреда ST для STM32: проект, сборка, отладка ST-LINK, SWV и ошибки
- AVR ISP, UPDI и TPIISP 6 и 10 pin, USBasp, UPDI и TPI
- JTAG и SWDARM JTAG 20, Cortex Debug 10, STDC14, ST-LINK
- Прошивка AVRISP, HVPP, debugWIRE, JTAG, PDI, TPI, UPDI, загрузчики, avrdude
- PIC (Microchip)PIC10/12/16/18, dsPIC33, PIC32: ядра, классические кристаллы, MPLAB
- Flash и загрузчик STM32Страницы и секторы, BOOT0, системный загрузчик, AN3155, IAP, option bytes, RDP
- esptoolПрошивка ESP32 и ESP8266: команды, адреса загрузчика, режим загрузки, ошибки