Jtag swd 20 жильный плоский кабель

Подключение выводов JTAG в микроконтроллерах

В контроллере реализованы последовательные отладочные интерфейсы: JTAG и/или SWD. Часто возникает вопрос, как подключать выводы JTAG микроконтроллера. В спецификации на микроконтроллеры серии 1986ВЕ9х указано, что «при работе в режиме отладки разрешается работа отладочного интерфейса JTAG/SW. При этом к микроконтроллеру может быть подключен JTAG/SW адаптер, с помощью которого программные средства разработки позволяют работать с микроконтроллером в отладочном режиме. Линии JTAG должны быть подтянуты к питанию сопротивлениями не менее 10кОм с учетом того, чтобы эти подтяжки не влияли на работу системы».

Выводы JTAG:

Вывод JTAG ULINK ULINK2 J-LINK Segger
TRST 100кОм pull-up к Vcc 100кОм pull-up к Vcc Двунаправленный вывод. Необходимо доопределение до Ucc. Номинал резисторов подтяжки, рекомендованный Segger, до 100кОм (стр. 376)
TCK 100кОм pull-up к Vcc 100кОм pull-down к GND Рекомендуется, чтобы было определённое состояние, но без уточнения, какое именно
TMS 100кОм pull-up к Vcc 100кОм pull-up к Vcc Двунаправленный вывод. Необходимо доопределение до Ucc
TDI 100кОм pull-up к Vcc 100кОм pull-up к Vcc Рекомендуется, чтобы было определённое состояние, но без уточнения, какое именно
TDO Нет требований Нет требований Нет требований

Выводы SWD: SWD может использоваться вместо JTAG. Используется двунаправленный вывод TMS (SWDIO), который обеспечивает JTAG-отладку и возможность работать в тестовом режиме, и TCK(SWDCLK). Во время взаимодействия с устройством, программатор обменивается данными по SWDIO(TMS) синхронно SWCLK. (для Segger J-Link бит данных передается или принимается по каждому фронту сигнала TCK)

Вывод JTAG ULINK ULINK2 J-LINK Segger
TCK 100кОм pull-up к Vcc 100кОм pull-down к GND Рекомендуется, чтобы было определённое состояние, но без уточнения, какое именно
TMS 100кОм pull-up к Vcc 100кОм pull-up к Vcc Двунаправленный вывод. Необходимо доопределение до Ucc
TDO Нет требований(опциональный) Нет требований(опциональный) Нет требований (опциональный)

Выбор номинала резистора для ULINK и ULINK2: http://www.keil.com/support/docs/3346.htm Можно использовать резисторы номиналом 10кОм или 100кОм (или любое другое значение из этого интервала). Важно, чтобы они использовались, тем самым защищая сигналы JTAG от неопределенного/произвольного состояния, когда выводы ни к чему не подсоединены.

Рисунок 1 — Подключение выводов JTAG на примере микроконтроллера 1986ВЕ91

В отладочных платах вывод TDO подключен напрямую, без подтяжки к Ucc (рисунок 2):

Рисунок 2 — Реализация подключения выводов JTAG на отладочной плате

Если используется только SWD (на примере 1986ВЕ4) (рисунок 3):

Рисунок 3 — Подключение выводов SWD на отладочной плате для микроконтроллера 1986ВЕ4

Источник

Описание

JLINK — это JTAG эмулятор с питанием от шины USB, поддерживающий большое количество ядер CPU. Основанный на 32-разрядном RISC CPU, он может с высокой скоростью обмениваться данными со всеми поддерживаемыми CPU. J-Link используется в десятках тысяч мест по всему миру для целей разработки и производства (программирования flash памяти).
Поддержка J-Link интегрирована в большинство профессиональных IDE, таких как IAR, Keil, Rowley и многие другие.

Наряду с OEM версиями (такими как IAR J-Link, ATMEL SAM-Ice и другие) были проданы более чем 60000 экземпляров J-Links, что позволяет говорить о J-Link как наиболее популярном эмуляторе для ARM ядер и, де-факто, промышленном стандарте.

Отличительные особенности:
• Поддерживается непосредственная загрузка во flash память большинства популярных микроконтроллеров;
• Интерфейс USB 2.0;
• Поддерживаемые CPU: Любые ARM7/9/11, Cortex-A5/A8, Cortex-M0/M1/M3/M4, Cortex-R4;
• Поддержка Serial Wire Debug (SWD);
• Поддержка Serial Wire Viewer (SWV);
• Автоматическое распознавание ядра;
• Скорость обмена данными по JTAG до 12 МГц;
• Скорость загрузки до 720 кБайт/сек (ARM7 @ 50 MHz, 12МГц скорость JTAG);
• Тесная интеграция в IAR Embedded Workbench IDE;
• Не нужен дополнительный источник питания, питание осуществляется от шины USB;
• Поддержка адаптивного изменения тактовой частоты;
• Мониторинг всех сигналов JTAG интерфейса, измерение напряжения питания целевой системы;
• Поддержка JTAG-цепочек микросхем;
• Полная совместимость со стандартом plug and play;
• Стандартный 20-контактный JTAG разъем;
• Широкий диапазон напряжения питания: 1,2 В — 3,3В, поддержка сигналов с уровнями 5 В;
• В комплект поставки входят USB кабель и 20- жильный плоский кабель;
• В комплект поставки входит программа просмотра памяти Memory viewer (J-Mem);
• В комплект поставки входит TCP/IP сервер, который позволяет использовать J-Link через TCP/IP сети;
• Доступен RDI интерфейс, который позволяет использовать J-Link через программное обеспечение, поддерживающее RDI;
• Доступна автономная программа для программирования Flash памяти (J-Flash);
• Доступна библиотека Flash DLL, которая позволяет реализовать функции программирования flash памяти в пользовательских приложениях;
• Доступен набор разработчика Software Developer Kit (SDK);
• Поддержка Embedded Trace Buffer (ETB);
• Доступен 14-контактный JTAG адаптер;
• Доступен адаптер с оптической гальванической развязкой;
• Возможность питания программируемой системы: J-Link может питать программируемую систему с потребляемым током до 300 мА, и имеет защиту от перегрузок.

Комплектация:
USB-JTAG адаптер;
USB-кабель;
20-выводный JTAG-кабель.
J-LINK – идеальное дополнение к отладочным платам фирм: OLIMEX, KEIL, IAR, EMBEDDED ARTISTS, а также встраиваемым модулям производства Терраэлектроники. Текущая версия эмулятора — 11.

Источник

Описание

кол-во в упаковке: 1

J-Link Ultra+ — это JTAG/SWD эмулятор, созданный для поддержки ARM/Cortex и других CPU. Он полностью совместим со стандартным J-Link и может работать с тем же самым ПО для ПК.
Основанный на высокооптимизированном и хорошо зарекомендовавшем себя эмуляторе J-Link, он позволяет достичь еще более высокой скорости обмена данными, а также измерять потребляемую целевой системой мощность в результате использования более производительного CPU, встроенного FPGA и интерфейса High speed USB.

Эмулятор подключается через USB к ПК, работающему под управлением ОС Microsoft Windows 2000, Windows XP, Windows 2003, Windows Vista или Windows 7. J-Link Ultra имеет встроенный 20-контактный разъем JTAG/SWD.

Включает в себя бесплатное использование J-LINK Flash Breakpoints (8.08.04), J-LINK ARM RDI (8.08.03) и J-Flash;

Полная совместимость со стандартным J-Link;

Очень высокая производительность при работе со всеми поддерживаемыми ядрами CPU;

Интерфейс Hi-Speed-USB 2.0;

Поддержка Serial Wire Debug;

Поддержка Serial Wire Viewer (SWV);

SWV: поддержка UART и Манчестерского кода;

Частота выборок SWO до 25 МГц;

Поддержка питания целевой системы;

Измерение, с высокой точностью, потребляемой целевой системой мощности;

Поддерживается непосредственная загрузка во flash память большинства популярных микроконтроллеров;

Поддерживаемые CPU: любые ARM7/9/11, Cortex-A5/A8, Cortex-M0/M1/M3/M4, Cortex-R4;

Автоматическое распознавание ядра;

Скорость обмена данными по JTAG до 25 МГц;

Тесная интеграция в IAR Embedded Workbench IDE;

Не нужен дополнительный источник питания, питание осуществляется от шины USB;

Поддержка адаптивного изменения тактовой частоты;

Мониторинг всех сигналов JTAG интерфейса, измерение напряжения питания целевой системы;

Поддержка JTAG-цепочек микросхем;

Полная совместимость со стандартом plug and play;

Стандартный 20-контактный JTAG разъем;

Широкий диапазон напряжения питания: 1.8. 5.0 В;

В комплект поставки входят USB кабель и 20-жильный плоский кабель;

В комплект поставки входит программа просмотра памяти Memory viewer (J-Mem);

В комплект поставки входит TCP/IP сервер, который позволяет использовать J-Link через TCP/IP сети;

Доступен RDI интерфейс, позволяющий использовать J-Link через программное обеспечение, поддерживающее RDI;

Доступна автономная программа для программирования Flash памяти (J-Flash);

Доступна библиотека Flash DLL, которая позволяет реализовать функции программирования flash памяти в пользовательских приложениях;

Доступен набор разработчика Software Developer Kit (SDK);

Поддержка Embedded Trace Buffer (ETB);

Доступен адаптер с оптической гальванической развязкой;

Возможность питания программируемой системы: J-Link может питать программируемую систему с потребляемым током до 300 мА, и имеет защиту от перегрузок.

Источник

Внутрисхемный JTAG/SWD эмулятор Segger J-LINK EDU

В настоящее время SEGGER предлагает новый комплект для целей образования, в который входит эмулятор J-Link и лицензия для точек останова во flash памяти (Flash Breakpoint).

Подробное описание

J-Link EDU доступен по специальной цене для всех, кто не использует программное обеспечение для целей разработки продуктов на продажу.
Данное предложение включает в себя бесплатное использование Flash Breakpoints.

Единственным ограничением является то, что комплект не может быть использован для разработки коммерческих продуктов.

Эмулятор J-Link EDU поддерживается IAR EWARM, KEIL µVision, Rowley Crossworks, и CodeSourcery G++. Посредством GDB-Server, в список поддерживаемого ПО, также, входят Atollic TrueStudio, Yagarto, и другие, основанные на GDB, или совместимые с ним средства разработки.

Функция Flash Breakpoints позволяет пользователю устанавливать неограниченное количество точек останова во внутренней flash памяти отлаживаемой микросхемы. Ограничения по отладке, обусловленные количеством аппаратных точек останова (2 для ARM7/9; 4 для Cortex-M0; и, как правило, 6 для Cortex-M3), полностью устраняются.

J-Link — это JTAG эмулятор с питанием от шины USB, поддерживающий большое количество ядер CPU. Основанный на 32-разрядном RISC CPU, он может с высокой скоростью обмениваться данными со всеми поддерживаемыми CPU. J-Link используется в десятках тысяч мест по всему миру для целей разработки и производства (программирования flash памяти).

Поддержка J-Link интегрирована в большинство профессиональных IDE, таких как IAR, Keil, Rowley и многие другие.

Наряду с OEM версиями (такими как IAR J-Link, ATMEL SAM-Ice и другие) были проданы более чем 60000 экземпляров J-Links, позволяя говорить о том, что J-Link является наиболее популярным эмулятором для ARM ядер и, де-факто, промышленным стандартом.

Отличительные особенности:

  • Поддерживается непосредственная загрузка во flash память большинства популярных микроконтроллеров;
  • Интерфейс USB 2.0;
  • Поддерживаемые CPU: Любые ARM7/9/11, Cortex-A5/A8, Cortex-M0/M1/M3/M4, Cortex-R4;
  • Поддержка Serial Wire Debug (SWD);
  • Поддержка Serial Wire Viewer (SWV);
  • Автоматическое распознавание ядра;
  • Скорость обмена данными по JTAG до 12 МГц;
  • Скорость загрузки до 720 кБайт/сек (ARM7 @ 50 MHz, 12МГц скорость JTAG);
  • Тесная интеграция в IAR Embedded Workbench IDE;
  • Не нужен дополнительный источник питания, питание осуществляется от шины USB;
  • Поддержка адаптивного изменения тактовой частоты;
  • Мониторинг всех сигналов JTAG интерфейса, измерение напряжения питания целевой системы;
  • Поддержка JTAG-цепочек микросхем;
  • Полная совместимость со стандартом plug and play;
  • Стандартный 20-контактный JTAG разъем;
  • Широкий диапазон напряжения питания: 1.2В — 3.3В, поддержка сигналов с уровнями 5В;
  • В комплект поставки входят USB кабель и 20- жильный плоский кабель;
  • В комплект поставки входит программа просмотра памяти Memory viewer (J-Mem);
  • В комплект поставки входит TCP/IP сервер, который позволяет использовать J-Link через TCP/IP сети;
  • Доступен RDI интерфейс, который позволяет использовать J-Link через программное обеспечение, поддерживающее RDI;
  • Доступна автономная программа для программирования Flash памяти (J-Flash);
  • Доступна библиотека Flash DLL, которая позволяет реализовать функции программирования flash памяти в пользовательских приложениях;
  • Доступен набор разработчика Software Developer Kit (SDK);
  • Поддержка Embedded Trace Buffer (ETB);
  • Доступен 14-контактный JTAG адаптер;
  • Доступен адаптер с оптической гальванической развязкой;
  • Возможность питания программируемой системы: J-Link может питать программируемую систему с потребляемым током до 300 мА, и имеет защиту от перегрузок.

Источник

Jtag swd 20 жильный плоский кабель

Технология JTAG широко применяется для тестирования электронных устройств, чаще всего основанные на микроконтроллерах, CPU, CPLD и/или FPGA. JTAG также позволяет аппаратную отладку, чтение/запись памяти, управление ножками I/O, анализ на производительность работающего кода (здесь приведен перевод статьи [1]).

Технология SWD (расшифровывается как Serial Wire Debug) это более современная версия JTAG, требующая для работы только 2 сигнальных выводов вместо как минимум 4 у стандартного JTAG (иногда добавляется еще один сигнал, что доводит количество сигнальных проводников до 5). SWJ это комбинация SWD и традиционного JTAG. Однако на высшем уровне оба этих интерфейса предоставляют аналогичные функции с разными вариациями, зависящими от управляющего ПО и от аппаратного обеспечения.

С одной стороны эта функциональность должна поддерживаться в целевом устройстве (target device). Порт отладки (Debug Port) часто называют JTAG-DP для JTAG и SW-DP для SWD. Устройство с поддержкой SWJ часто комбинирует в себе оба этих стандарта, при этом SWD-сигналы SWDIO и SWCLK повторно используются как JTAG-сигналы JTMS и JTCK (таким образом, SWJ обеспечивает обратную совместимость с традиционным JTAG). Большинство 32-битых микроконтроллеров и чипов SoC имеют на борту один из таких интерфейсов (или оба).

С другой стороны Вам нужен SWJ-адаптер, который может обмениваться данными с устройством по протоколу JTAG и/или SWD. SWJ могут стоить недорого ( 1000$), в зависимости от качества аппаратуры и ПО (и от бренда производителя). Ниже перечислены несколько описаний SWJ-адаптеров.

[ST-Link v2]

ST-LINK/V2 это адаптер от STMicroelectronics, очень удобный для прошивки микроконтроллеров STM8 и STM32 этой компании, таких как серия STM32 F1. Адаптер поддерживает интерфейсы JTAG, SWD и SWIM (последний применяется для STM8).

Эти SWJ-адаптеры основаны на микроконтроллерах STM32F1xx ARM Cortex M3. Любопытно, что адаптер на основе микроконтроллера STM32F1xx применяется для программирования и отладки таких же микроконтроллеров STM32F1xx.

Использование ST-LINK/V2 на Linux. Для нормального использования сначала добавьте правила для обычного пользователя, чтобы можно было получить доступ к этому устройству (правило udev, основанное на идентификаторах VID и PID адаптера, показываемых lsusb). Это делается только один раз перед тем, как адаптер подключается для непосредственного использования:

Для подключения к микроконтроллерам STM32F1xx ARM Cortex M3 используется OpenOCD [9]:

[Клон ST-LINK/V2]

Это полностью содранный с оригинала ST-LINK/V2. Он поставляется в таком же корпусе, с такими же кабелями, выглядит так же, сохранено даже название печатной платы (MB936). Но сама плата не такая же, список деталей (BOM) не совпадает с оригинальным.

Оригинальный адаптер снабжен дополнительной защитой от статического электричества, защитными резисторами и трансивером, позволяющим работать с уровнями сигнала от 1.65V до 5.5V. В клоне это полностью отсутствует, поскольку сигналы интерфейса напрямую подключены к микроконтроллеру. Таким образом, поддерживаются только уровни сигналов 3.3V на отлаживаемой/программируемой системе, и иногда 5V, потому что выводы микроконтроллера допускают по входу уровни 5V (5V tolerant).

Этот адаптер стоит $9, что довольно много. Если не нужен JTAG, то есть более дешевый адаптер, описанный ниже.

[ST-LINK V2 aluminium]

Эти адаптеры поставляются в маленьком алюминиевом корпусе, стоит порядка $2.5. Они поддерживают SWD и SWIM (для STM8), но не поддерживают JTAG. Это вероятно самый дешевый клон, который можно найти. Вероятно, такая низкая цена обусловлена тем, что в адаптере используются STM32F101. В сравнении с STM32F103 возможности у STM32F101 меньше, но все-таки это адаптер USB! Вероятно, что у STM32F101 тот же самый кристалл, что и STM32F103, и тот же самый корпус, просто STM32F101 получают в результате отбраковки STM32F103. Подобным образом декларируется, что у STM32F103C8 только 64 килобайта памяти flash, потому что полный тест они не прошли, в сравнении с 128 килобайтами STM32F103CB, но на борту STM32F103C8 часто есть больше памяти (Вы можете проверить эту память на ошибки путем чтения/записи).

Существует несколько версий плат этого варианта адаптера, и может также отличаться цоколевка.

2014-06-22 ST-LINK V2. Ниже показана схема и внешний вид этих адаптеров.

В адаптере используется интересный трюк для подключения двух светодиодов (LED) на одной ножке порта (PA9):

• Когда ножка выхода порта установлена в лог. 1, зажигается один светодиод
• Когда эта же ножка переводится в лог. 0, зажигается другой светодиод
• Когда ножка переводится в состояние висящего входа, оба светодиода выключается
• Когда выход работает в режиме ШИМ (PWM), Вы можете смешивать эти 2 цвета светодиодов (красный и синий). Это происходит потому, что глаз не замечает быстрых мерцаний, светодиоды находятся рядом и светят в маленькую дырку по центру.

Тот же самый адаптер, но с другой цоколевкой. Выглядит очень похоже на вышеописанный адаптер, но цоколевка сигналов разъема сильно отличается (кроме питания), и используется только один светодиод. На плате нет никакой маркировки сигналов.

2016-01-18 MX-LINK V2. У этого адаптера логотип «M» вместо логотипа ST, что возможно соответствует маркировке «MX-LINK V2» на плате.

[Baite]

Это аналог ST-Link V2 с поддержкой JTAG, SWD и SWIM (для STM8) [2].

Автор статьи [1] сделал для этого адаптера стикер с цоколевкой сигналов.

Автор также перерисовал по плате схему. Все выводы коннектора защищены резисторами 220 ом.

Baite-V2A. Более новая версия промаркирована «V2A» (под кварцем), но схема почти такая же, со следующими изменениями:

• Присутствуют все ножки микроконтроллера (есть даже маска пайки между ними).
• Добавлен порт SWD.
• STM32F103C8 заменен на STM32F101CB, но используется как STM32F103 (так же, как в других дешевых адаптерах).
• Используются пассивные элементы меньшего размера.
• Некачественная разводка платы.

[Black Magic Probe]

Адаптер Black Magic Probe [3] (известный как BMP) очень интересный SWJ-адаптер, потому что в него встроен сервер GDB. Таким образом, не нужно запускать сервер OpenOCD, чтобы управлять адаптером SWJ. Вы можете напрямую подключить GDB к этому адаптеру (через драйвер USB CDC ACM).

В этом адаптере также есть порт UART (через второй канал USB CDC ACM). Это очень полезно для отладки в реальном времени, без точек останова (для обмена сообщениями printf).

Поставляемая аппаратура имеет следующие недостатки:

• Используется не очень удобный коннектор ARM Cortex SWJ с маленьким шагом.
• Отдельный UART используется не всегда (UART также доступен на коннекторе SWJ).
• Дорогой (> $50), но эта цена относительно разумная, поскольку есть поддержка проекта.

Из-за того, что firmware этого адаптера открыто (open source), его можно портировать на другую аппаратуру, и народ реально этим пользуется [4]. Проект был портирован [5] на blue pill [6]. Также он был портирован и на клон ST-Link V2 [7], но на нем больше нет дополнительного UART. Автор решил сделать порт на baite [2]. На коннекторе используется меньше выводов питания, но зато получается достаточно функциональных выводов для добавления UART (и SRST).

Сборка firmware (ожидается интегрирование патча):

После получения двоичного кода нужно перепрошить им адаптер Baite. Как Вы можете видеть по схеме, выводы JTAG и SWD микроконтроллера не подключены (на плате нет контактных площадок, куда эти выводы припаяны). Но на обратной стороне платы можно найти контрольные точки, чтобы запрограммировать микроконтроллер через serial bootloader:

Вывод Сигнал
1 (квадратный) RX
2 TX
3 BOOT0
4 +5V
5 GND

Для подключения используйте любой конвертер USB — TTL UART, и подключите соответствующие выводы к этому порту. Не подавайте питание на адаптер Baite через USB, потому что это может привести к его загрузке в нормальном режиме (не в режиме serial bootloader). Вместо этого подайте питание через конвертер USB — UART. Для запуска serial bootloader в момент подачи питания на адаптер нужно перевести сигнал BOOT0 в лог. 1 путем подключения его к +3.3V или к DTR (или к любому другому сигналу, который находится в лог. 1 на конвертере USB — UART).

Чтобы прошить Black Magic firmware автор использовал stm32flash. Поскольку flash защищена от чтения/записи, сначала нужно очистить эти биты опций.

Поскольку этот адаптер основан на микроконтроллере STM32F103C8 с 64 килобайтами flash, DFU bootloader дает возможность использовать только 56 килобайт памяти flash для основного приложения. Blackmagic firmware превышает этот размер, поэтому его нельзя прошить, если программное обеспечение DFU не игнорирует это ограничение. У микроконтроллера STM32F103C8 часто есть 128 килобайт flash, так что все еще можно прошить blackmagic firmware, используя serial bootloader (по адресу 0x08002000). Проверка во время прошивки (verification) гарантирует, что весь код firmware был успешно записан.

Отключите Baite, и снова подключите его через USB. В нем должно запуститься основное программное обеспечение, и операционная система хоста должна обнаружить два порта USB CDC ACM.

Вы можете перепрошить устройство из основного приложения, используя dfu-util (если Вы сможете перевести dfu-util в состояние игнорирования ограничения по размеру памяти):

Цоколевка нового «BMP Baite»:

Сигнал Вывод Вывод Сигнал
SRTST 1 2 +3.3V
+5V 3 4 JTCK/SWCLK
RX 5 (ключ) 6 JTMS/SWDIO
GND 7 8 JTDO/TRACESWO
TX 9 10 JTDI

Примечание: вывод RX подтягивается к лог. 1 с помощью резистора 620 ом. Таким образом TX, подключенный к BMP Baite, должен иметь достаточную нагрузочную способность, чтобы подтянуть сигнал к лог. 0 (скорее всего, USB — UART адаптер наподобие CH340 это сделать не сможет).

Если Вы подключите SRST к сигналу NRST целевой отлаживаемой системы, то можно будет подавать на неё сброс без нажатия кнопки сброса на плате отлаживаемой системы (если конечно такая кнопка есть). Сигнал сброса генерируется следующей командой:

[Altera USB-Blaster]

USB-Blaster это адаптер от компании Altera. Он часто используется для прошивки FPGA, но по сути это обычный адаптер JTAG.

Внимание: вывод VCC подключается к опорному напряжению, используемому для обмена JTAG, обычно предоставляемому печатной платой целевого отлаживаемого устройства (часто это напряжение 3.3V или 1.8V). Иначе сигналы не смогут определиться адаптером JTAG.

Сначала добавьте правила для обычного пользователя, чтобы он мог получить доступ к устройству (правило udev на основе идентификаторов VID и PID, показываемых lsusb). Это делается только один раз, перед тем как устройство подключается для непосредственного использования:

Чтобы можно было использовать этот адаптер, нужно перекомпилировать OpenOCD для USB-Blaster, чтобы использовалась библиотека libftdi (наверное потому что это клон).

Иначе OpenOCD зависает, загружая на 100% CPU, и его нужно прибить используя -KILL.

Теперь Вы можете использовать адаптер, пример с микроконтроллером STM32F1:

Оригинальный адаптер Altera USB-Blaster использует чипы FTDI FT245 и MAX CPLD. Имеется множество его клонов разного качества и разной поддержкой диапазонов напряжения.

[SiLabs USB-Blaster]

Здесь используется микроконтроллер C8051F321 от Silicon Labs и 4-канальный буфер 74LVC125 (для преобразования уровней сигналов в пределах от 1.65V до 3.6V).

[PIC USB-Blaster]

Этот адаптер использует микроконтроллер PIC18F14 компании Microchip, без каких-либо буферов (поддерживаются только сигналы с уровнями 5V).

[ARMJISHU USB-Blaster]

Здесь используется STM32F101 от ST (как STM32F103 с поддержкой USB) и 8-канальный буфер 74HC244 (для преобразования уровней от 2.0V до 6.0V).

На схеме видно, что аппаратура может также управлять сигналами (на 3.3V) в случае, когда Vcc_target не подключен, и Вы можете добавить слот карт uSD или память SPI flash. Не известно, поддерживается ли этот функционал в программном обеспечении.

[SEGGER J-Link]

O-Link-ARM V8 [8], клон SEGGER J-Link.

Поддерживает JTAG, SWD, SWO, RTCK и опорное напряжение для регулировки уровней, что делает этот JTAG-адаптер наиболее полным.

[Цепочка сканирования JTAG]

Микросхемы с поддержкой JTAG имеют точки тестирования, которые называются Test Access Points (TAP). Один микроконтроллер может иметь несколько TAP, соединяемых в цепочку (scan chain). Несколько микросхем с TAP-ми также могут быть соединены (сигналами на печатной плате) в цепочку, это позволяет опрашивать все устройства на плате через одно подключение JTAG. Каждый TAP имеет идентификатор (IDCODE) и он может быть выбран индивидуально.

Иногда полезно перечислить все доступные TAP-ы на цепочке, чтобы узнать, какие есть устройства в системе. Это можно просто осуществить с помощью ПО urJTAG [10]. Пример с USB Blaster:

OpenOCD также сканирует цепочку, если нет предоставленных target (какой используется адаптер, все-таки определить нужно):

0x3ba00477 соответствует Cortex-M3 TAP, и 0x16410041 boundary scan TAP, как указано в документации на STM32F1xx.

Хотя ST-Link v2 с микроконтроллерами ST главным образом используется как адаптер SWD, он также поддерживает обычный JTAG. Оба этих протокола реализованы драйвером High Level Adapter (HLA). Но все выглядит так, как будто scan chain не поддерживается драйвером HLA.

Источник

Читайте также:  Розетка schneider electric этюд ip44 открытого монтажа 16а 220в