50486

[i] Отладка МК, объединённых в JTAG цепочку, с использованием различных программаторов в IDE Keil

Автор статьи: Комарьков Владимир Николаевич (Инженер)
Дата последнего изменения: 30.11.2023 09:37:58
Материал из настоящей статьи, относящийся к микросхемам К1986ВЕ92QI и К1986ВЕ1QI, распространяется в том числе на микроконтроллеры К1986ВЕ92FI, К1986ВЕ92F1I, К1986ВЕ94GI и К1986ВЕ1FI, К1986ВЕ1GI

Микроконтроллеры (МК), поддерживающие отладочный интерфейс JTAG (IEEE 1149.1), могут быть объединены на плате в общую JTAG цепочку. Такое объединение позволяет получить доступ к каждому МК с использованием только одного программатора. В данной статье рассмотрены особенности работы различных программаторов с МК, объединёнными в JTAG цепочку, в среде разработки Keil.

В JTAG цепочку могут быть включены следующие МК, имеющие интерфейс JTAG: К1986ВЕ92QI, К1901ВЦ1QI, К1986ВЕ1QI, К1986ВК01GI.

МК К1986ВК214 и К1986ВК234 имеют только отладочный интерфейс SWD, поэтому они не могут быть включены в JTAG- цепочку.

1. Общая информация

На рисунке 1 представлен пример объединения нескольких МК в JTAG цепочку.

Рисунок 1 – Пример JTAG цепочки

Шина JTAG сигналов называется портом тестового доступа (TAP – Test Access Port). Порт тестового доступа имеет четыре или пять выделенных выводов МК: ТСК, TMS, TDI, TDO и (опционально) TRST. Каждый МК в JTAG цепочке подключён к сигналам этой шины:

  • TCK (Test Clock) – синхросигнал;

  • TMS (Test Mode Select) - выбор тестового режима;

  • TDI (Test Data Input) - вход тестовой последовательности;

  • TDO (Test Data Output) - выход тестовой последовательности;

  • TRST (Test Reset) - сигнал сброса TAP-контроллера (опциональный).

Необходимо отметить, что именно сигналы TDI и TDO объединяют несколько МК в последовательную цепочку, т.е. выход TDO одного МК соединен со входом TDI другого МК. Остальные сигналы имеют параллельный доступ ко всем МК.

Объединять в JTAG цепочку можно как разные МК (например, К1986ВЕ1QI и К1986ВК01GI), так и одинаковые (например, несколько К1986ВЕ92QI).

Стандарт IEEE 1149.1 не вводит ограничений на максимальное количество устройств в JTAG цепочке. Однако, данное ограничение определяется самим программатором, о чём указывается в его характеристиках.

2. Программатор ULINK2

Максимальное количество устройств в JTAG цепочке – 64.

При работе с JTAG цепочкой каких-либо дополнительных настроек в среде Keil производить не требуется. Достаточно только в настройках программатора, поле «JTAG Device Chain», выбрать требуемый МК, как показано на рисунке 2, после чего можно выполнять программирование и отладку данного МК.

Рисунок 2 – Настройка программатора ULINK2

Самое верхнее устройство в поле «JTAG Device Chain» соответствует МК, подключенному к выводу TDO программатора (на рисунке 1 это MCU1), далее следуют МК в соответствии с их подключением в JTAG цепочке.

3. Внутрисхемный гальванически развязанный USB-программатор производства АО «ПКК Миландр» (CMSIS-DAP)

Максимальное количество устройств в JTAG цепочке – 8 (по состоянию на январь 2022 года).

При работе с JTAG цепочкой каких-либо дополнительных настроек в среде Keil производить не требуется. Достаточно только в настройках программатора, поле «JTAG Device Chain», выбрать требуемый МК, как показано на рисунке 3, после чего можно выполнять программирование и отладку данного МК.

Рисунок 3 – Настройка программатора CMSIS-DAP

Самое верхнее устройство в поле «JTAG Device Chain» соответствует МК, подключенному к выводу TDO программатора (на рисунке 1 это MCU1), далее следуют МК в соответствии с их подключением в JTAG цепочке.

4. Программатор J-Link Base

Максимальное количество устройств в JTAG цепочке – 32.

При работе с программатором J-Link Base была обнаружена особенность: при подключении в Keil 5.36 к МК, вне зависимости от настроек «Target Driver Setup->JTAG Device Chain», всегда выбирается последнее устройство в JTAG цепочке. Поэтому, чтобы выбрать необходимый МК, следует принудительно указать программатору, к какому устройству в JTAG цепочке необходимо подключиться. Для этого в папке с проектом Keil необходимо разместить скрипт-файл «JLinkScript», в котором будет указано подключение к требуемому МК.

Также в настройках программатора необходимо задать соответствующие настройки подключения, например, как показано на рисунке 4, и выбрать в окне "Target Driver Setup->JTAG Device Chain" любой МК из JTAG цепочки.

Рисунок 4 – Настройка программатора J-Link Base

В конце статьи приведён пример скрипт-файла, сделанного для следующей JTAG цепочки:

J-Link TDI -> #4(K1986VE92QI) -> #3-2(K1901VC1QI) -> #1(K1986VK01GI) -> #0(K1986VE1QI) -> J-Link TDO

Для подключения к требуемому МК необходимо установить в 1 соответствующую переменную MCU_XXX в 1.

Подробнее про скрипт-файл «JlinkScript» приведено на официальном сайте Segger: https://wiki.segger.com/Manual_setup_of_JTAG_chain

Информация по использованию скрипт-файлов J-Link в Keil представлена на сайте:
https://wiki.segger.com/Keil_MDK-ARM#Using_J-Link_Script_Files

Сохранить статью в PDF

Файлы для скачивания

Теги

Была ли статья полезной?