Информационный портал технической поддержки Центра проектирования интегральных микросхем |
Микроконтроллеры (МК), поддерживающие отладочный интерфейс JTAG (IEEE 1149.1), могут быть объединены на плате в общую JTAG цепочку. Такое объединение позволяет получить доступ к каждому МК с использованием только одного программатора. В данной статье рассмотрены особенности работы различных программаторов с МК, объединёнными в JTAG цепочку, в среде разработки Keil.
В JTAG цепочку могут быть включены следующие МК, имеющие интерфейс JTAG: К1986ВЕ92QI, К1901ВЦ1QI, К1986ВЕ1QI, К1986ВК01GI.
МК К1986ВК214 и К1986ВК234 имеют только отладочный интерфейс SWD, поэтому они не могут быть включены в JTAG- цепочку.
На рисунке 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 цепочке. Однако, данное ограничение определяется самим программатором, о чём указывается в его характеристиках.
Максимальное количество устройств в JTAG цепочке – 64.
При работе с JTAG цепочкой каких-либо дополнительных настроек в среде Keil производить не требуется. Достаточно только в настройках программатора, поле «JTAG Device Chain», выбрать требуемый МК, как показано на рисунке 2, после чего можно выполнять программирование и отладку данного МК.
Рисунок 2 – Настройка программатора ULINK2
Самое верхнее устройство в поле «JTAG Device Chain» соответствует МК, подключенному к выводу TDO программатора (на рисунке 1 это MCU1), далее следуют МК в соответствии с их подключением в JTAG цепочке.
Максимальное количество устройств в JTAG цепочке – 8 (по состоянию на январь 2022 года).
При работе с JTAG цепочкой каких-либо дополнительных настроек в среде Keil производить не требуется. Достаточно только в настройках программатора, поле «JTAG Device Chain», выбрать требуемый МК, как показано на рисунке 3, после чего можно выполнять программирование и отладку данного МК.
Рисунок 3 – Настройка программатора CMSIS-DAP
Самое верхнее устройство в поле «JTAG Device Chain» соответствует МК, подключенному к выводу TDO программатора (на рисунке 1 это MCU1), далее следуют МК в соответствии с их подключением в JTAG цепочке.
Максимальное количество устройств в 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
Сайт: | https://support.milandr.ru |
E-mail: | support@milandr.ru |
Телефон: | +7 495 221-13-55 |