Дебаггинг в реальном времени через JTAG/SWJ-DP для микроконтроллеров на ядре ARM Cortex-M
С некоторых пор фирма Segger предлагает технологию Real Time Terminal (RTT) для своих JTAG адаптеров J-Link. Суть ее в том, что программа на микроконтроллере может выводить и принимать отладочную информацию из JTAG/SWJ-DP порта, как это обычно делается через UART. И тогда нам больше не нужен реальный отладочный UART. Далее чуть подробнее о возможностях этой технологии.
Возможность выводить программой отладочную информацию в порт JTAG/SWJ-DP была реализована, как только у микроконтроллеров появился сам этот порт. Для этого есть два пути: использовать технику semihosting или технику Serial Wire Output (SWO).
Использование semihosting приводит к подмене каналов ввода-вывода стандартных файловых операций языка С-и. Это не всегда приемлемо, поскольку файловые операции в приложении могут уже использоваться по другому назначению. Также semihosting необходимо явно отключать и перекомпилировать проект при выпуске релизной версии.
Вдобавок ко всему semihosting обеспечивает самую медленную передачу данных из рассматриваемых здесь технологий.
Использование Serial Wire Output проще чем semihosting, однако требует использования дополнительного сигнала SWO порта JTAG/SWJ-DP, и также вызывает необходимость в перекомпиляции при переходе на релизную версию, т.е. версию без подключения отладчика. Функции вывода SWO синхронные, т.е. ожидают готовности порта и не обладают необходимым детерминизмом.
Технология Real Time Terminal от Segger еще более упрощает вывод отладочной информации через SWJ-DP и предоставляет следующие удобства:
• Достаточно только двух внешних линий– это SW CLK и SW DIO.
• Весь дополнительный код в микроконтроллере занимает не более 500 байт, если не использовать ввод, то даже 300 байт.
• Не требуется перекомпиляция для релизной версии, функции отладочного вывода асинхронные и практически не занимают процессорного времени и не оказывают никакого влияния на ход выполнения программы при отсутствии подключения отладочного адаптера.
• Скорость отладочного ввода-вывода очень высока.
• Отладочный ввод-вывод можно перенаправить в любую стороннюю программу эмулятор терминала поддерживающую протокол telnet.
• Segger предоставляет бесплатные утилиты эмулятора терминала, логгера и telnet клиента для подключения к микроконтроллеру через отладочный адаптер без необходимости запуска сторонних IDE с отладчиками.
Пример использования RTT.
На рисунке выше плата контроллера на базе чипа STM32F745VET6. Внешний кварц 16 МГц. Частота ядра 168 МГц.
Отладка потребовалась для начального загрузчика по шине CAN. Последовательный порт RS232 подключенный к UART есть, но тоже используется для загрузчика. Выводить в него отладочную информацию означало бы сильно видоизменить отладочную версию программы по сравнению с релизной. При дефиците времени это крайне нежелательно.
#pragma arm section code = «CODE_IN_RAM»,
static SEGGER_RTT_CB _SEGGER_RTT __attribute__((at(0x20000000)))
”C:/Program Files (x86)/teraterm/ttermpro.exe” /T=1 telnet://localhost:19021 /X=0 /Y=0 /W=»J-Link RTT»
Пропускная способность
Показалось интересным с какой же скоростью выводится информация в эмулятор терминала через отладочный адаптер с применением RTT. Были сняты осциллограммы с сигналов SW SLK и SW DIO.
Оказалось, что в J-Link используется поллинг с периодичностью около 40 мс. Для передачи данных используется не более 50% этого периода. В блоке данных передаваемых за период пакеты несущие полезные данные занимают тоже не более 50% времени. Пакеты переносят не более 3-х байт полезных данных. Три байта полезных данных в пакете также занимают не более 50% его длины. Итого получаем: 0.5*0.5*0.5 = 0.125 т.е. 12.5 % пропускной способности канала SW используется для передачи отладочного вывода.
Частоту канала выше 4 МГц в J-Link поднять не удалось ни при каких настройках. Это значит, что максимально мы имеем скорость передачи 4 Мбит/с. Из них только 4*0.125= 0.5 т.е. 500 Кбит/с в лучшем случае можно использовать для отладочного вывода. Это, конечно, немного, по сравнению с реальным отладочным UART, которые могут передавать на скоростях в несколько Мбит/с, но все имеет свою цену.
JTAG-эмулятор
Дата добавления: 2014-04-18 ; просмотров: 2066 ; Нарушение авторских прав
Интерфейсом JTAG, реализованным согласно стандарту IEEE 1149.1-2001, управляет одно устройство-контроллер (чаще всего это персональный компьютер, оснащенный соответствующим программным обеспечением и интерфейсным адаптером), к которому может быть подключено несколько тестируемых устройств.
В состав интерфейса JTAG входят 5 однонаправленных последовательных линий связи (один из сигналов необязательный). Эти сигналы образуют тестовый порт ТАР (Test Access Port), через который тестируемое устройство подключается к тестирующему оборудованию (контроллеру).
В задачу тестирующего оборудования входит формирование тестовых сигналов по программе тестирования, определенной разработчиком тестируемого устройства, и сравнение полученных результатов с эталонами.
Один и тот же контроллер и порт могут использоваться для тестирования любого числа устройств, поддерживающих JTAG. Для этого устройства своими портами ТАР соединяются в цепочку. Стандартизованный логический формат позволяет контроллеру независимо общаться с каждым из устройств цепочки.
JTAG-эмулятор позволяет выполнять следующие действия:
Поскольку информация вводится в отлаживаемое устройство и выводится из него через последовательный порт, метод JTAG не может служить заменой полнофункциональному эмулятору, так как не в состоянии отразить текущее состояние внутренних шин.
Однако он имеет ряд очевидных достоинств:
К недостаткам JTAG-эмулятора относятся следующие:
JTAG широко используется для отладки реальных устройств. Тестируемая программа может быть той окончательной версией (после удаления команд вызова монитора отладки), которая будет поставляться.
Интерфейс JTAG применяется не только для тестирования, но и для программирования различных устройств, в том числе и энергонезависимой памяти микроконтроллеров. Контакты для сигналов JTAG имеются на шине PCI, однако в их использовании единообразия не наблюдается (либо остаются неподключенными, либо соединяются для организации цепочки).
Отметим, что интерфейсом JTAG в настоящее время оснащаются не только однокристальные микроконтроллеры и сигнальные процессоры, но и универсальные микропроцессоры вплоть до моделей с наивысшей на сегодняшний день производительностью, например, Intel Core i7
ExTReme Edition. Здесь он позволяет не только тестировать сам процессор (это не представляет особого прикладного интереса), но и организовать зондовый режим отладки (probe mode). Зондовый режим является мощным средством отладки системного программного обеспечения; обычный процессор, связанный с тестовым контроллером интерфейсом JTAG, превращается во внутрисхемный эмулятор.
EJTAG: аттракцион для хакеров
Кампания по продвижению нанокомпьютера black swift в самом разгаре (см. также публикацию на habrahabr). black swift построен на базе SoC Atheros AR9331, что позволило сделать его с одной стороны крошечными, недорогим, и малопотребляющим, а с другой стороны в распоряжении пользователя находится процессорное ядро MIPS 24Kc, работающее на частоте до 400 МГц.
Недавно на форуме black-swift.ru был задан вопрос
Есть потребность в документации по использованию JTAG-интерфейса в устройстве. Можно ли ожидать чего-нибудь в этом направлении?
EJTAG в процессорах с архитектурой MIPS
Почему именно JTAG? JTAG является последовательной шиной (возможно использовать только 4 сигнала), позволяющей соединять десятки устройств (возможно очень разных устройств!) в цепочку, и по мере необходимости передавать команды каждому из устройств. JTAG широко используется для тестирования соединений в печатных платах — в настоящее время БИС любой мало-мальски нетривиальной платы соединены в цепочку JTAG. Вполне резонно использовать JTAG не только для проверки соединений, но и для доставки в процессор команд управления отладкой.
Таким образом не надо смешивать JTAG и EJTAG: JTAG это интерфейс передачи данных; EJTAG — это стандартный для MIPS способ проводить внутрисхемную отладку, при котором используется JTAG.
Что надо для работы с EJTAG?
Для взаимодействия с инструментальной ЭВМ будет использоваться интерфейс командной строки, так что готовьте ваши терминалы.
Подключение макетки FT2232H к MR3020
Вот схема подключения (см. также статью на wikidevi.com):
Кому-то такая схема подключения JTAG покажется варварством, но в нашей простой ситуации она вполне оправдана.
Внешний вид MR3020 с подключённой макеткой FT2232H:
Подключение к UART
Вывод интерфейса UART из MR3020 не представляет проблем: на плате уже есть отверстия для впайки штырей.
Обозначения TX и RX на фотографии указаны с точки зрения AR9331, т.е. TX AR9331 (pin 1 на плате) надо подключать к RX FT2232 (BDBUS1).
Рекомендую подключить UART MR3020 к макетке, а саму макетку к инструментальной ЭВМ, и затем, включив питание MR3020, пронаблюдать при помощи minicom сообщения штатного загрузчика U-Boot.
Вот что для этого надо выполнить ряд шагов.
Проверка подключения макетки к инструментальной ЭВМ
Подключить UART MR3020 к макетке; подключить макетку FT2232H к инструментальной ЭВМ по USB; на инструментальной ЭВМ в командной строке запустить dmesg — убедиться, что появились сообщения вроде
Установка и настройка minicom
Установка программы minicom в основанных на Debian дистрибутивах очень проста:
Программа minicom очень добра к новичку — все настройки можно провести через меню, однако эта доброта имеет и обратную сторону — довольно неудобно объяснять как именно выставить необходимые настройки.
Чтобы не связываться с системой меню minicom поступим проще — произведём настройки при помощи конфигурационного файла. Для простоты сделаем глобальный конфигурационный файл, для этого от root’а выполним:
Запуск minicom
Для простоты запустим minicom от root’а;
При этом minicom использует настройки из файла /etc/minicom/minirc.USB1 (если конечно файл
/.minirc.USB1 не существует).
конечно более грамотно добавить своего пользователя в группу dialout. ; но давайте не будем усложнять.
Теперь включаем питание MR3020 и наблюдаем в minicom сообщения от U-Boot:
Далее будут выданы сообщения о загрузки linux, но они нам не очень-то и интересны; если какой-то разумный вывод из UART поступает, то можно переходить к подключению JTAG.
Подключение к JTAG
openocd: начальная настройка
Сборка barebox
Образ barebox для AR9331 должен состоять из инструкций процессора MIPS32, а наша инструментальная ЭВМ почти наверняка построена на базе процессора с системой команд x86 или amd64 (так их, во всяком случае, называет Debian).
Для того, чтобы при помощи процессора x86/amd64 породить инструкции MIPS32, нам понадобится кросс-компилятор (то есть компилятор, который исполняется на ЭВМ с одной архитектурой команд, а генерирует код для ЭВМ с другой системой команд).
Сборка кросс-компилятора с требуемыми свойствами — задача совсем не тривиальная и для её облегчения создано немало всяких инструментов, известных по ключевым словам buildroot, openwrt, crosstool-ng.
Однако в этой демонстрации мы пойдём простым путём — скачаем готовый кросс-компилятор от MentorGraphics.
Итак, скачиваем и распаковываем в /opt готовый кросс-компилятор:
Произведём сборку barebox:
openocd: более полная настройка
В openocd принята довольно разумная практика, при которой описание dongl’а, описание целевого процессора, а также текущий сценарий отладки принято размещать в разных файлах, но в этой публикации для упрощения изложения мы так поступать не будем.
openocd: загрузка barebox
Итак, загрузим и запустим barebox (Не забудьте про джампер отключения ПЗУ. Также не забывайте держать нажатой кнопку SW2 в момент включения питания MR3020! Наберитесь терпения — загрузка занимает более 100 секунд):
После окончания работы openocd в окне minicom мы можем наблюдать сообщения о старте barebox’а:
наблюдать более оптимистическое
Хотя barebox-2015.01.0 поддерживает аппаратуру SoC AR9331 в минимальном объёме (интерфейсы USB и Ethernet не поддерживаются), но прочитать и записать загрузочное ПЗУ barebox’у вполне по силам.
Что дальше? (вместо послесловия)
Загрузка данных в ОЗУ — это не предел возможностей EJTAG. Но нельзя объять необъятное — в публикации не освещены вопросы собственно отладки — этот материал остаётся для будущих публикаций.
Законное негодование вызывает низкая скорость передачи данных — менее 2 Кбайт в секунду, этот момент также надо попытаться исправить.
Jtag эмулятор что это
В этом документе (перевод [1]) предоставлена техническая информация для корректной разработки интерфейса эмулятора JTAG для процессоров DSP компании Analog Devices, Inc. (ADI). Вводную информацию по стандарту IEEE 1149.1 (JTAG) см. в Приложении E «Вводное описание стандарта IEEE Std. 1149.1 (JTAG) Boundary Scan».
Компания ADI разрабатывает, производит и продает несколько разных типов эмуляторов JTAG для использования совместно с отлаживаемыми системами на основе ADI DSP (процессоры для цифровой обработки сигналов), которые имеют на борту порт эмулятора JTAG. Этот документ был переработан с целью поддержки только текущей линейки эмуляторов ADI. Эта линейка включает эмуляторы HPPCI, HPUSB и USB.
Предыдущие ревизии этого документа описывали устаревшие эмуляторы ADI JTAG, такие как Mountain-ICE, Summit-ICE, Trek-ICE, Apex-ICE, и EZ-ICE (ICE расшифровывается как In-Circuit Emulator, т. е. внутрисхемный эмулятор). В этом документе нет информации по этим эмуляторам JTAG, поэтому за технической информацией и инструментарию поддержки по этим эмуляторам обращайтесь в службу технической поддержки (processor.tools.support@analog.com), которая может предоставить старую версию этого документа.
Примечание: не используйте старые версии EE-68 для разработок с новыми процессорами. Периодически просматривайте веб-сайт ADI [2] для получения последней версии этого документа. Системы, разработанные с использованием старой версии EE-68, должны быть обновлены только в том случае, если возникают проблемы с эмуляцией JTAG.
Дизайн интерфейса эмулятора JTAG. Все эмуляторы JTAG компании ADI для процессоров DSP используют 14-выводный коннектор на плоском кабеле. Этот коннектор предоставляет соединение интерфейса с адаптером эмулятора JTAG. Этот же коннектор может использоваться для подключения опционального локального контролера пограничного сканирования, когда эмулятор JTAG не подключен к контроллеру DSP.
Все эмуляторы ADI JTAG используют расширение стандарта IEEE 1149.1, чтобы посылать данные через порт эмуляции DSP JTAG. Эмуляторы JTAG используют дополнительный сигнал, который называется EMU
, в качестве флага состояния эмуляции JTAG, поступающего от DSP. Этот сигнал специфичен для производителя (в данном случае это компания Analog Devices, ADI), и не входит в спецификацию IEEE 1149.1.
Далее будет подробно описаны рекомендации по дизайну системы для поддержки эмуляторов ADI JTAG. Эта информация включает функциональные, электрические и механические требования для интерфейса эмулятора JTAG с отлаживаемой системой (debug target).
[Коннектор эмулятора JTAG]
Как показано на рис. 1 и в таблице 1, этот коннектор имеет 14 выводов. Чтобы была возможна стандартная отладка JTAG, этот коннектор обязательно должен присутствовать в отлаживаемой системе. Коннектор использует стандартный прямоугольный двухрядный разъем «папа» с шагом ножек 100 mil (2.54 мм), диаметр ножек 0.64 мм (standard dual-row 0.025” male square-post header). Вывод 3 коннектора используется как ключ, чтобы предотвратить случайное обратное подключение (штырек на плате системы отсутствует, и соответствующее гнездо коннектора эмулятора забито заглушкой). Поэтому Вам следует срезать штырек 3 на коннекторе JTAG отлаживаемой системы, чтобы можно было подключить в него коннектор «мама» на кабеле эмулятора ADI.
Примечание: кабель эмулятора JTAG, подключенный к 14-выводному коннектору, соединяет гнездо 3 проводником на землю (GND) на стороне адаптера эмулятора.
Рис. 1. Коннектор интерфейса эмулятора JTAG (вид на гнезда коннектора снаружи, со стороны установки деталей).
Таблица 1. Описание сигналов коннектора эмулятора JTAG.
| Вывод | Сигнал | Описание | Эмулятор | Target (отлаживаемый процессор) |
| 1 | GND | Цифровая земля | Пассивный сигнал | Пассивный сигнал |
| 2 | EMU | Флаг эмуляции JTAG | Вход (активный уровень лог. 0) | Выход (открытый сток, активный уровень лог. 0) |
| 3 | KEY | Позиция для корректного подключения кабеля. В этом месте штырек на разъеме отлаживаемой системы должен быть обрезан. | GND | Не подключено |
| 4 | GND | Цифровая земля | Пассивный сигнал | Пассивный сигнал |
| 5 | VDDIO или BTMS | Сигнал для автоматического определения уровней логики (по напряжению VDDIO), или сигнал выбора режима тестирования (JTAG TAP test mode select) локального контроллера пограничного сканирования. | Вход | Пассивный сигнал, или выход. |
| 6 | TMS | Сигнал выбора режима тестирования JTAG (JTAG TAP test mode select). | Выход | Вход |
| 7 | BTCK | Тактовая частота локального контроллера пограничного сканирования тестируемого устройства (JTAG TAP test clock) | Не подключено | Выход |
| 8 | TCK | Тактовая частота JTAG TAP (JTAG TAP test clock) | Выход | Вход |
| 9 | BTRST | Сигнал сброса контроллера пограничного тестирования проверяемого устройства (JTAG TAP test reset) | Не подключено | Выход (активный уровень лог. 0) |
| 10 | TRST | Сигнал сброса JTAG TAP (JTAG TAP test reset) | Выход | Вход (активный уровень лог. 0) |
| 11 | BTDI | Ввод данных тестирования для локального контроллера пограничного сканирования (JTAG TAP test data in) | Не подключено | Выход |
| 12 | TDI | Вход данных тестирования JTAG TAP (JTAG TAP test data in) | Выход | Вход |
| 13 | GND | Цифровая земля | Пассивный сигнал | Пассивный сигнал |
| 14 | TDO | Вывод данных тестирования для локального контроллера пограничного сканирования (JTAG TAP test data out) | Вход | Выход |
[Локальный контроллер пограничного сканирования]
Как показано на рис. 1, набор сигналов с четными номерами выводов коннектора могут использоваться отлаживаемыми и проверяемыми системами, которые имеют на своей печатной плате локальный контроллер пограничного сканирования (Local Boundary Scan Controller). Это сигналы BTMS/VDDIO, BTCK, BTDI и BTRST
, и каждый из них описан в таблице 1.
Примечание: под «локальным контроллером пограничного сканирования» имеется в виду контроллер Boundary Scan, который разведен и распаян на печатной плате системы. Технология пограничного сканирования может использоваться в Вашей разработке для тестирования схемы в процессе производства. Если Вы не знакомы с технологией пограничного сканирования, то см. Приложение E. Также см. статью [3]. Иногда технологию пограничного сканирования называют периферийным тестированием.
Специальный случай использования вывода 5 BTMS. Этот вывод 5 BTMS/VDDIO выполняет двойную функцию в эмуляторе HPPCI JTAG. Во-первых, он позволяет Вам направить сигнал TMS опционального контроллера пограничного сканирования на сигнал TMS отлаживаемого процессора DSP, когда JTAG ICE не подключен к коннектору JTAG, и установлена перемычка между выводами 5 и 6 этого коннектора JTAG. Во-вторых, этот вывод используется JTAG ICE, чтобы автоматически определять уровень напряжения I/O отлаживаемых DSP (VDDIO) до 5V (так называемая функция VDDIO autosensing). JTAG ICE измеряет уровень напряжения на этом выводе, чтобы установить уровни сигналов ввода и вывода DSP. Подключите вывод 5 к шине VDDIO через резистор 4.7 кОм (верхний подтягивающий резистор, pull-up), но не подключайте этот вывод напрямую к шине VDDIO.
По напряжению вывода 5 эмулятор HPPCI JTAG подстраивает пороговые уровни входного сигнала и напряжения уровней выхода логики интерфейса. Поэтому, если Вы используете эмулятор HPPCI JTAG, то должны подключить вывод 5 к шине питания ввода/вывода DSP (VDDIO). Если же Вы используете эмуляторы HPUSB И USB JTAG, которые не поддерживают функцию определения уровней (VDDIO autosensing), то можете подключить вывод 5 напрямую к сигналу BTMS контроллера пограничного сканирования без дополнительного верхнего подтягивающего резистора.
Примечание: VDDIO это напряжение питания цепей ввода/вывода DSP, но не напряжение питания ядра DSP. Поэтому, если Вы используете функцию автоматическое определение уровня напряжения VDDIO (VDDIO autosensing), то убедитесь, что подключаете pull-up вывода 5 к нужной шине питания VDDIO. Только эмулятор HPPCI JTAG использует автоматическое определение уровня напряжения с помощью вывода 5. Вывод 5 эмуляторов USB и HPUSB JTAG поддерживает только функцию BTMS.
Вывод 5 может использоваться для маршрутизации сигнала TMS опционального (т. е. этот контроллер может не присутствовать на кристалле процессора DSP, но обычно он присутствует) контроллера пограничного сканирования, когда эмулятор JTAG ICE не подключен к коннектору JTAG, и между выводами 5 и 6 этого коннектора JTAG установлена перемычка.
Вы можете подключить эмулятор HPUSB или USB JTAG к отлаживаемой плате, разработанной в расчете на использованием эмулятора HPPCI JTAG с функцией VDDIO autosensing. В эмуляторах HPUSB или USB JTAG, не имеющих функции VDDIO autosensing, вывод 5 коннектора не подключен внутри адаптера эмулятора, поэтому резистор pull-up и сигнал VDDIO никак не повлияют в худшую сторону на работу этих эмуляторов. Пороги напряжения для отлаживаемого процессора при использовании эмуляторов HPUSB или USB JTAG устанавливаются в среде VisualDSP++® при настройке сессии отладки (с помощью окон диалога Session Wizard).
Примечание: когда используется эмулятор HPPCI JTAG, то следует убедиться, что сигнал BTMS на выводе 5 не управляется локальным контроллером пограничного сканирования, когда JTAG ICE подключен к коннектору JTAG. Ошибочное отсутствие изоляции сигнала BTMS, когда JTAG ICE подключен, привет к непредсказуемому поведению JTAG ICE из-за возможного некорректного анализа напряжения на выводе 5. Как показано на рис. 8 и рис. 9, Вы можете изолировать сигнал BTMS с помощью перемычки или буфера. Когда используется буфер, его выход должен быть запрещен (выключен), когда подключен JTAG ICE.
[Механические требования к коннектору JTAG]
Пространство вокруг коннектора. Должны быть предоставлены зазоры как минимум 0.30” (7.62 мм) и 0.10” (2.54 мм) соответственно по длине и ширине коннектора (см. рис. 2).
Рис. 2. Защитное пространство вокруг коннектора эмулятора JTAG (вид со стороны пайки).
Примечание: также должно быть свободное пространство по высоте над платой, чтобы можно было свободно подключать и отключать кабель эмулятора JTAG.
Рис. 3. Размеры коннектора «мама» на кабеле эмулятора HPPCI JTAG.
Рис. 4. Размеры коннектора «мама» на кабеле эмулятора JTAG HPUSB.
На рис. 3 показан требуемый клиренс по высоте над платой, когда используется кабель эмулятора HPPCI JTAG. На рис. 4 показана информация по размерным ограничениям в случае использования эмуляторов HPUSB и USB JTAG.
[Требования к дизайну интерфейса JTAG]
Эта секция определяет, как разработать интерфейс подключения к эмулятору JTAG для различных вариантов построения отлаживаемых и проверяемых систем. Эти платформы включают один или несколько процессоров DSP с логикой пограничного сканирования и без неё.
Обращайтесь к следующим секциям приложений этого документа, в зависимости от типа разрабатываемой Вами системы:
Приложение A. Дизайн интерфейса отладки JTAG с одним процессором DSP без контроллера пограничного сканирования.
Приложение B. Дизайн интерфейса отладки JTAG с несколькими процессорами DSP без контроллера пограничного сканирования.
Приложение C. Дизайн интерфейса отладки JTAG с одним процессором DSP, когда система оборудована контроллером пограничного сканирования.
Приложение D. Дизайн интерфейса отладки JTAG с несколькими процессорами DSP, когда система оборудована контроллером пограничного сканирования.
[Разводка печатной платы для интерфейса эмулятора JTAG]
Обрабатывайте трассировку всех сигналов эмулятора JTAG (TCK, TMS, TDI, TDO, EMU
) как критических сигналов с точки зрения качества разводки, которым следует уделить специальное внимание. Укажите контролируемое волновое сопротивление для этих сигналов между 50 и 75 Ом. Старайтесь минимизировать взаимные перекрестные (cross-talk) и индуктивные помехи для этих сигналов применением сплошных экранирующих заливок медью, и прокладывайте сигналы эмулятора JTAG подальше от высокочастотных цепей, особенно сигналов тактов. Делайте по возможности дорожки сигналов эмулятора как можно короче, и одинаковой длины.
Сигналы интерфейса JTAG должны быть свободны от помех. Если трассы сигналов TDO и EMU
получаются очень длинные, то может понадобиться терминирование этих сигналов резисторами. См. приложения A..D для получения информации по последовательному терминированию.
[Последовательность включения питания эмулятора JTAG]
Перед подключением коннектора JTAG к отлаживаемой системе Ваш эмулятор JTAG должен быть включен и подсоединен к хосту отладки (host PC, обычно это компьютер с операционной системой Windows). Все высокопроизводительные эмуляторы JTAG компании ADI разработаны так, что возможно «горячее» подключение и отключение кабеля отладки без каких-либо ограничений по питанию.
Внимание: чтобы избежать ошибок эмуляции, убедитесь, что программное обеспечение отладки не запущено, и не работает сессия отладки, когда не работает программное обеспечение эмуляции и на отлаживаемую систему не подано питание, или когда Вы подключаете кабель эмулятора JTAG к отлаживаемой системе, на которую подано или не подано питание.
Примечание: Вы должны установить pull-down (подтягивающий уровень к GNG) резистор на 4.7 кОм на сигнал TRST
для DSP, следуя указаниям приложениям A..D, за исключением случаев, когда система использует логику пограничного сканирования, и не управляет сигналом TRST
Для систем, которые используют пограничное сканирование, и при этом не управляют сигналом TRST
, не подтягивайте к земле сигнал TRST
. Использование этого резистора предотвратит логику пограничного сканирования от перемещения TAP. Перед подачей питания на систему должна быть установлена перемычка между сигналами TRST
на штырьках коннектора JTAG системы. Устанавливайте эту перемычку всякий раз, когда эмулятор JTAG не подключен к коннектору JTAG отлаживаемой системы, после того, как питание было подано на отлаживаемый процессор (debug target). Эта перемычка предотвращает JTAG TAP в процессоре DSP от «потери» и перехода в не восстанавливаемое состояние.
[Электрические требования к цепям сигналов эмулятора JTAG]
Логика автоматического определения напряжения адаптера эмулятора HPPCI JTAG. Как уже упоминалось, эмулятор HPPCI JTAG использует вывод 5 (BTMS/VDDIO) коннектора эмулятора JTAG для автоматического определения напряжения цепей ввода/вывода отлаживаемого процессора (target I/O). Логика анализа напряжения управляет значениями порогов напряжения, которые эмулятор JTAG использует для сигналов интерфейса JTAG, приходящих от отлаживаемого процессора (target). Логика анализа напряжения также устанавливает выходные уровни для сигналов JTAG, которые приходят на отлаживаемый процессор.
Напряжение цепей ввода/вывода (IO voltage, VDDIO) Вашего целевого процессора DSP может быть как равным, так и не равным напряжению, используемому ядром процессора DSP. Убедитесь, что используете корректное напряжение питания DSP для VDDIO, когда конфигурируете отлаживаемую систему для отладки совместно с системой автоматического определения напряжения эмулятора HPPCI JTAG. Как уже упоминалось, для этого вывод 5 должен быть подтянут резистором pull-up 4.7 кОм к корректной шине питания отлаживаемой системы. Не подключайте вывод 5 BTMS/VDDIO напрямую к шине питания VDDIO. Для дополнительной информации, относящейся к выводу BTMS/VDDIO, см. Приложения A..D.
Характеристики ввода/вывода адаптера эмулятора JTAG (Emulator Pod I/O). Адаптер эмулятора JTAG допускает работу с уровнями логики до 5V (5V tolerant). Поэтому эмулятор может работать со всеми семействами процессоров DSP компании Analog Devices, у которых напряжение ввода/вывода JTAG равны 5V, 3.3V, 2.5V и 1.8V. Адаптер будет выдавать 3.3V сигналы для процессоров, у которых уровень I/O напряжения составляет 5V, потому что в этом случае уровни лог. 0 и лог. 1 все равно будут соответствовать допустимым уровням логики 5V. В таблице 2 приведены все характеристики ввода/вывода для адаптера эмулятора JTAG.
Таблица 2. Характеристики сигналов I/O эмулятора JTAG.
| Вывод | Сигнал эмулятора JTAG | VDDIO (VDC) | Cin (пф) | Cout (пф) | VIH (VDC) | VIL (VDC) | VOH (VDC) | VOL (VDC) | IOL (mA) | IOH (mA) |
| 2 | EMU | 5/3.3 | 6 | 2.0 | 0.8 | — | — | — | — | |
| 6 | TMS | 6.5 | — | — | 2.3 | 0.7 | 12 | 12 | ||
| 8 | TCK | |||||||||
| 10 | TRST | |||||||||
| 12 | TDI | |||||||||
| 14 | TDO | 6 | 2.0 | 0.8 | — | — | — | — | ||
| 2 | EMU | 2.5 | 6 | 1.7 | 0.7 | — | — | — | — | |
| 6 | TMS | 6.5 | — | — | 1.8 | 0.6 | 8 | 8 | ||
| 8 | TCK | |||||||||
| 10 | TRST | |||||||||
| 12 | TDI | |||||||||
| 14 | TDO | 6 | 1.7 | 0.7 | — | — | — | — | ||
| 2 | EMU | 1.8 | 6 | 1.2 | 0.6 | — | — | — | — | |
| 6 | TMS | 6.5 | — | — | 1.3 | 0.5 | 4 | 4 | ||
| 8 | TCK | |||||||||
| 10 | TRST | |||||||||
| 12 | TDI | |||||||||
| 14 | TDO | 6 | 1.2 | 0.6 | — | — | — | — |
Интервалы времени сигналов адаптера эмулятора JTAG. В этой секции детализирована важная информация по таймингу сигналов эмулятора JTAG на коннекторе JTAG отлаживаемой системы. Рис. 5 показывает переключение этих сигналов и их взаимоотношения по времени.
Рис. 5. Параметры времени сигналов JTAG.
Таблица 3 определяет параметры переключения для выходных сигналов эмулятора JTAG (TCK, TMS, TDI и TRST
), и требования к установке и удержанию уровней для входных сигналов эмулятора JTAG (TDO и EMU
). Таблица 3 также определяет частоту и её рабочий диапазон для высокопроизводительных эмуляторов JTAG. В первом столбце этой таблицы «#» указан номер ссылки на интервал времени рисунка 5.
Таблица 3. Интервалы времени сигналов эмуляторов JTAG.
| # | Параметр | Эмулятор | Частота | Описание | Min. длит. (нс) | Max длит. (нс) |
| 1 | tcTCK | HPPCI | 10..50 МГц | Период тактов TCK | 19.9 | 100.1 |
| HPUSB | 5..50 МГц | 19.9 | 200.1 | |||
| USB | 10 МГц | 99.1 | 100.1 | |||
| 2 | twTCKH | HPPCI | 10..50 МГц | Длительность лог. 1 тактов TCK | 9.95 | 50.05 |
| HPUSB | 5..50 МГц | 9.95 | 100.05 | |||
| USB | 10 МГц | 49.95 | 50.05 | |||
| 2 | twTCKL | HPPCI | 10..50 МГц | Длительность лог. 0 тактов TCK | 9.95 | 50.05 |
| HPUSB | 5..50 МГц | 9.95 | 100.05 | |||
| USB | 10 МГц | 49.95 | 50.05 | |||
| 4 | tdTMS | HPPCI | 10..50 МГц | Задержка сигналов TMS, TDI, TRST относительно перепада в лог. 0 сигнала тактов TCK. | 3 | |
| HPUSB | 5..50 МГц | 3 | ||||
| USB | 10 МГц | 3 | ||||
| 5 | tsuTDO | HPPCI | 10 МГц | Время установки TDO, EMU к перепаду в лог. 1 сигнала тактов TCK | 14.1 | |
| 25 МГц | 10 | |||||
| 33 МГц | 8.4 | |||||
| 50 МГц | 9.9 | |||||
| HPUSB | 5..50 МГц | 2 | ||||
| USB | 10 МГц | 2 | ||||
| 6 | thTDO | HPPCI | 10..50 МГц | Время удержания TDO, EMU относительно перепада в лог. 1 сигнала тактов TCK | 0 | |
| HPUSB | 5..50 МГц | 0 | ||||
| USB | 10 МГц | 0 |
Используйте эту информацию для определения максимальной длины трасс интерфейса JTAG на печатной плате, определения допустимой нагрузки цепи и допустимой её емкостной нагрузки, которые можно использовать, чтобы обеспечивалось нормальное прохождение сигналов эмулятора JTAG.
Максимальные значения частот, показанные в таблице 3, будут гарантированы только в том случае, когда выполняются требования к установке и удержанию сигнала (setup and hold requirements), определенные в той же таблице 3. Когда вычисляете границы параметров setup и hold, убедитесь, что учитываете параметры задержки TDO и EMU
, указанные в даташите на используемый отлаживаемый процессор (target DSP). Если Ваша отлаживаемая система не удовлетворяет требования к интервалам setup и hold, указанным в таблице 3, то для надежной отладки эмулятор JTAG должен работать на пониженной частоте.
Если Вы не можете использовать пониженную частоту интерфейса для эмулятора JTAG, то проверьте корректность разводки сигналов интерфейса JTAG, и при необходимости переработайте разводку платы, чтобы снизить задержки. Попробуйте уменьшить длину проводников, снизить электрическую нагрузку, и использовать более быстрые буферы.
Требования setup и hold основаны на максимальной задержке сигналов аппаратуры эмулятора JTAG для самого плохого случая. Обычно реальные требования к setup и hold будут значительно меньшими, чем значения, указанные в таблице. Если у Вас сложный маршрут сигналов эмуляции JTAG с большими задержками, выполните анализ интервалов времени этих сигналов. Используйте результаты этого анализа, чтобы определить, есть ли у разводки сигналов JTAG вашего отлаживаемого процессора достаточное поле для синхронизации, чтобы работать на требуемой частоте TCK интерфейса JTAG.
Здесь описывается, как разработать интерфейс адаптера эмулятора JTAG, когда имеется только один отлаживаемый процессор DSP, и на плате системы нет локального контроллера пограничного сканирования.
Как показано на рис. 6, когда на системе с процессором DSP нет на печатной плате контроллера пограничного сканирования, или когда DSP не включается в цепочку локального контролера пограничного сканирования, то все выводы сигналов пограничного сканирования (за исключением вывода 5) должны быть притянуты с земле, когда используется эмулятор HPPCI JTAG. Вывод 5, сигнал BTMS/VDDIO, требуется для адаптера эмулятора HPPCI JTAG для автоматического определения напряжения цепей ввода/вывода (I/O voltage, VDDIO) отлаживаемого процессора DSP.
Отлаживаемые системы с одним процессором DSP и длиной трасс от процессора до выводов коннектора JTAG менее 6 дюймов (152 мм) не требуют применения буферов сигналов JTAG. Применяйте буфер, если это условие не выполняется, независимо от количества используемых процессоров DSP в цепочке сканирования.
Рис. 6 показывает соединения между коннектором интерфейса эмулятора JTAG и процессором DSP для одиночного отлаживаемого процессора DSP, когда на печатной плате нет локального контроллера пограничного сканирования.
Рис. 6. Один процессор (single DSP target) без локального контроллера пограничного сканирования.
На рис. 6 показаны последовательно подключенные терминирующие резисторы для сигналов TDO и EMU
, приходящих на эмулятор JTAG. Наличие этих резисторов не является обязательным. Используйте терминаторы, если трассы TDO или EMU
между коннектором JTAG и процессором DSP длиннее 6 дюймов (152 мм).
Номинал резистора терминирования обычно равен волновому сопротивлению сигнала печатной платы (ZPCB) минус выходное сопротивление драйвера ввода/вывода сигналов TDO или EMU
(ZDriver). Изначально установите значение этих резисторов в 0 Ом. Меняйте значение терминирующего сопротивления ZTerminator на значение ZPCB минус ZDriver, если есть проблемы с целостностью сигналов, наблюдаемые при работе эмулятора JTAG. Может потребоваться подстройка значения резистора терминирования несколько меньше или больше, чем ZTerminator, в зависимости от качества прохождения сигналов. Размещайте резисторы терминирования как можно ближе к процессору DSP, насколько это возможно.
Примечание: в предыдущих версиях этого документа было указано наличие pull-up резисторов на сигналах TMS, TCK и TDI. Мощные драйверы буферов CMOS, используемые в эмуляторе, делают эти резисторы ненужными.
Здесь описывается, как разработать интерфейс адаптера эмулятора JTAG, когда имеется несколько отлаживаемых процессоров DSP, и на плате системы нет контроллера пограничного сканирования.
Как показано на рис. 7, отлаживаемые системы с несколькими DSP в цепочке, когда на плате нет локального контроллера пограничного сканирования, должны притягивать все выводы пограничного сканирования (кроме вывода 5) к земле, когда используется эмулятор HPPCI JTAG. Вывод 5, сигнал BTMS/VDDIO, требуется для адаптера эмулятора HPPCI JTAG для автоматического определения напряжения цепей ввода/вывода (I/O voltage, VDDIO) отлаживаемого процессора DSP.
Как показано на рис. 7, отлаживаемые системы, у которых больше одного DSP в цепочке сканирования, когда не используется локальный контроллер пограничного сканирования, могут потребовать применения буферизации сигналов. Рис. 7 показывает соединения между коннектором эмулятора JTAG и отлаживаемой системой с несколькими DSP без локального контроллера пограничного сканирования.
Для отлаживаемых систем с уровнями сигналов 5V применяйте буфер сигнала TCK с крутыми перепадами сигнала на выходе, высокой нагрузочной способностью, минимальной задержкой между входом и выходом, сдвоенный с разветвлением сигнала 1-к-5 типа IDT49FCT805 (или его эквивалент), и применяйте буфер для сигналов TMS, TDI, TRST
типа 74AC11244 (или эквивалентный).
Для низковольтных систем с уровнями 3.3V применяйте буфер сигнала TCK с крутыми перепадами сигнала на выходе, высокой нагрузочной способностью, минимальной задержкой между входом и выходом, сдвоенный с разветвлением сигнала 1-к-5 типа IDT49FCT3805E (или аналогичный), и применяйте для сигналов TMS, TDI, TRST
буфер типа 74AVC16244 (или эквивалентный).
Для систем с очень низкими уровнями сигналов 2.5V / 1.8V применяйте буфер сигнала TCK с крутыми перепадами сигнала на выходе, высокой нагрузочной способностью, минимальной задержкой между входом и выходом, сдвоенный с разветвлением сигнала 1-к-5 типа IDT5T9050 (или его эквивалент), и применяйте для сигналов TMS, TDI, TRST
буфер типа 74AVC16244 (или эквивалентный).
Рис. 7. Несколько процессоров DSP без локального контроллера пограничного сканирования.
На рис. 7 показаны последовательно подключенные терминирующие резисторы для сигналов TDO и EMU
, приходящих на эмулятор JTAG. Наличие этих резисторов не является обязательным. Используйте терминаторы, если трассы TDO или EMU
между коннектором JTAG и процессором DSP длиннее 6 дюймов (152 мм).
Номинал резистора терминирования обычно равен волновому сопротивлению сигнала печатной платы (ZPCB) минус выходное сопротивление драйвера ввода/вывода сигналов TDO или EMU
(ZDriver). Изначально установите значение этих резисторов в 0 Ом. Меняйте значение терминирующего сопротивления ZTerminator на значение ZPCB минус ZDriver, если есть проблемы с целостностью сигналов, наблюдаемые при работе эмулятора JTAG. Может потребоваться подстройка значения резистора терминирования несколько меньше или больше, чем ZTerminator, в зависимости от качества прохождения сигналов. Размещайте резисторы терминирования как можно ближе к процессору DSP, насколько это возможно.
Чтобы минимизировать длительность перепада уровней логики для сигналов TMS, TDI, TRST
, убедитесь, что они приходят от одного корпуса. Для сигналов TCK используйте драйвер с высокой нагрузочной способностью. Эти драйверы должны браться от одного выделенного корпуса микросхемы, которая не применяется для других сигналов TMS, TDI, TRST
Разведите все проводники сигналов коннектора эмулятора JTAG как группу сигналов, используя по возможности одинаковую длину проводников для этих цепей. Обеспечьте хорошую изоляцию от других сигналов в контексте наводок перекрестных помех (crosstalk isolation), особенно от тактовых сигналов.
Ограничьтесь количеством нагрузок (подключенных параллельно процессоров DSP) сигналов TMS, TRST
не более восьми. Ограничьтесь количеством параллельных нагрузок для буферизованных сигналов TCK одной нагрузкой. Дополнительные нагрузки (процессоры DSP) должны использовать другой буфер для поддержки дополнительного количества (до 8) подключенных процессоров.
Примечание: в предыдущих версиях этого документа было указано наличие pull-up резисторов на сигналах TMS, TCK и TDI. Мощные драйверы буферов CMOS, используемые в эмуляторе, делают эти резисторы ненужными.
Не рекомендуется использовать больше 16 физических устройств на одной цепочке сканирования интерфейса JTAG. В этом случае самым лучшим решением проблемы будет разбиение большого количества (>16) физических устройств на независимые цепочки меньшего размера. Например, если в системе имеется 20 устройств JTAG, то можно их разбить на 2 цепочки по 10 устройств в каждой, и для каждой цепочки организовать отдельный коннектор JTAG с отдельными буферами. Если это невозможно, то попробуйте добавить перемычки для уменьшения количества дополнительных микросхем и коннекторов, сделать отдельные цепочки сканирования для отладки программы и для тестирования схемы. Уделите особое внимание трассировке печатной платы, чтобы минимизировать влияние линий передачи сигналов.
Здесь описывается, как разработать интерфейс адаптера эмулятора JTAG, когда имеется только один отлаживаемый процессор DSP, и на печатной плате системы разведен и распаян локальный контроллер пограничного сканирования. Соответствующее подключение процессора к коннектору эмулятора JTAG показано на рис. 8.
Если у вашей отлаживаемой системы имеется опциональный контроллер пограничного сканирования, и Вы подключаете эмулятор HPPCI JTAG, то понадобится изолировать сигнал BTMS от напряжения вывода BTMS/VDDIO до запуска программного обеспечения эмулятора. См. на рис. 8, где показано, как при эмуляции JTAG можно изолировать вывод 5 кабеля эмулятора HPPCI JTAG от логики локального контроллера пограничного сканирования с использованием перемычки или буфера с тремя состояниями выхода.
Вы должны обязательно предоставить метод изоляции сигнала BTMS на Вашем отлаживаемом процессоре от вывода BTMS/VDDIO на кабеле эмулятора JTAG, когда подключен эмулятор HPPCI JTAG. Изоляция должна действовать перед тем, как запущено программное обеспечение эмулятора HPPCI JTAG. Эта изоляция предотвратит неправильное состояние сигнала BTMS локального контроллера пограничного сканирования, которое будет мешать логике автоматического анализа уровней сигналов, которая имеется в адаптере эмулятора HPPCI JTAG.
Управление соединением между локальным контроллером пограничного сканирования и DSP осуществляется установкой или снятием перемычек между локальным контроллером пограничного сканирования и сигналами эмуляции DSP JTAG. Локальные сигналы пограничного сканирования включают BTMS, BTCK, BTDI и BTRST
. Сигналы эмуляции DSP JTAG: TMS, TCK, TDI и TRST
подключаются к локальным сигналам пограничного сканирования с использованием перемычек на коннекторе эмулятора JTAG, как показано на рис. 8.
В момент включения питания на выводе TRST
должен быть импульс лог. 0, когда используется локальный контроллер пограничного сканирования, и он должен удерживаться на уровне лог. 0, когда локальный контроллер пограничного сканирования и эмулятор JTAG не используются. Рис. 8 показывает, как должен управляться TRST
, когда отлаживаемое устройство использует локальный контроллер пограничного сканирования.
Если в отлаживаемой системе имеется локальный контроллер пограничного сканирования, и отлаживаемая система не управляет сигналом BTRST
, то Вам понадобится управлять этим сигналом с помощью дополнительной логики. Эта дополнительная логика должна гарантировать, что сигнал BTRST
получает импульс лог. 0 только в момент сброса при включении питания (power-on reset). Сигнал должен получить уровень лог. 1 все остальное время при локальном пограничном сканировании. Это предотвратит от удерживания сигнала в лог. 0 длительное время по время проведения тестов пограничного сканирования.
Удерживайте DSP TAP в состоянии постоянного сброса путем притягивания сигнала BTRST
к лог. 0 с помощью перемычки или резистора pull-down, чтобы предотвратить процессор DSP от выполнения локального пограничного сканирования.
Резистор 4.7 кОм pull-down на сигнале TRST
, показанный на рис. 8, не должен использоваться в отлаживаемых системах, которые имеют локальный контроллер пограничного сканирования, и не управляют сигналом TRST
. DSP JTAG TAP будет удерживаться в состоянии сброса, когда применяется этот pull-down резистор, если его влияние не может быть отменено.
Рис. 8 показывает соединения между коннектором эмулятора JTAG и DSP для одиночного отлаживаемого DSP в системе с локальным контроллером пограничного сканирования.
Перемычки можно заменить резисторами на 0 Ом в процессе производства, когда осуществляется выпуск готовых изделий. Если Вы планируете использовать ту же самую ревизию печатной платы и для отладки и для поставки готовых изделий, выполните дизайн печатной платы системы таким образом, чтобы он учитывал как коннектор JTAG, так и наличие резисторов поверхностного монтажа. Во время отладки должен быть запаян коннектор JTAG, и он должен быть таким, как показано на рис. 1, и в готовых изделиях должны быть запаяны резисторы для поверхностного монтажа.
Буферизация не требуется для систем с одним процессором DSP, когда длина дорожек коннектора эмулятора JTAG на печатной плате меньше 6 дюймов (152 мм). Применяйте буфер, если это условие не выполняется, независимо от количества используемых процессоров DSP в цепочке сканирования.
На рис. 8 показаны последовательно подключенные терминирующие резисторы для сигналов TDO и EMU
, приходящих на эмулятор JTAG. Наличие этих резисторов не является обязательным. Используйте терминаторы, если трассы TDO или EMU
между коннектором JTAG и процессором DSP длиннее 6 дюймов (152 мм).
Номинал резистора терминирования обычно равен волновому сопротивлению сигнала печатной платы (ZPCB) минус выходное сопротивление драйвера ввода/вывода сигналов TDO или EMU
(ZDriver). Изначально установите значение этих резисторов в 0 Ом. Меняйте значение терминирующего сопротивления ZTerminator на значение ZPCB минус ZDriver, если есть проблемы с целостностью сигналов, наблюдаемые при работе эмулятора JTAG. Может потребоваться подстройка значения резистора терминирования несколько меньше или больше, чем ZTerminator, в зависимости от качества прохождения сигналов. Размещайте резисторы терминирования как можно ближе к процессору DSP, насколько это возможно.
Примечание: в предыдущих версиях этого документа было указано наличие pull-up резисторов на сигналах TMS, TCK и TDI. Мощные драйверы буферов CMOS, используемые в эмуляторе, делают эти резисторы ненужными.
Рис. 8. Один процессор DSP в системе с локальным контроллером пограничного сканирования.
Здесь описывается, как разработать интерфейс адаптера эмулятора JTAG, когда имеется несколько отлаживаемых процессоров DSP, и на печатной плате системы разведен и распаян локальный контроллер пограничного сканирования. Соответствующее подключение процессоров DSP с подключением сигналов логики пограничного сканирования к выводам коннектора эмулятора JTAG показано на рис. 9.
Перемычки можно заменить резисторами на 0 Ом в процессе производства, когда осуществляется выпуск готовых изделий. Если Вы планируете использовать ту же самую ревизию печатной платы и для отладки и для поставки готовых изделий, выполните дизайн печатной платы системы таким образом, чтобы он учитывал как коннектор JTAG, так и наличие резисторов поверхностного монтажа. Во время отладки должен быть запаян коннектор JTAG, и он должен быть таким, как показано на рис. 1, и в готовых изделиях должны быть запаяны резисторы для поверхностного монтажа.
Если у вашей отлаживаемой системы имеется опциональный контроллер пограничного сканирования, и Вы подключаете эмулятор HPPCI JTAG, то понадобится изолировать сигнал BTMS от напряжения вывода BTMS/VDDIO до запуска программного обеспечения эмулятора. См. на рис. 9, где показано, как при эмуляции JTAG можно изолировать вывод 5 кабеля эмулятора HPPCI JTAG от логики локального контроллера пограничного сканирования с использованием перемычки или буфера с тремя состояниями выхода.
Вы должны обязательно предоставить метод изоляции сигнала BTMS на Вашем отлаживаемом процессоре от вывода BTMS/VDDIO на кабеле эмулятора JTAG, когда подключен эмулятор HPPCI JTAG. Изоляция должна действовать перед тем, как запущено программное обеспечение эмулятора HPPCI JTAG. Эта изоляция предотвратит неправильное состояние сигнала BTMS локального контроллера пограничного сканирования, которое будет мешать логике автоматического анализа уровней сигналов, которая имеется в адаптере эмулятора HPPCI JTAG.
Управление соединением между локальным контроллером пограничного сканирования и DSP осуществляется установкой или снятием перемычек между локальным контроллером пограничного сканирования и сигналами эмуляции DSP JTAG. Локальные сигналы пограничного сканирования включают BTMS, BTCK, BTDI и BTRST
подключаются к локальным сигналам пограничного сканирования с использованием перемычек на коннекторе эмулятора JTAG, как показано на рис. 9.
В момент включения питания на выводе TRST
должен быть импульс лог. 0, когда используется локальный контроллер пограничного сканирования, и он должен удерживаться на уровне лог. 0, когда локальный контроллер пограничного сканирования и эмулятор JTAG не используются. Рис. 9 показывает, как должен управляться TRST
, когда отлаживаемое устройство использует локальный контроллер пограничного сканирования.
Если в отлаживаемой системе имеется локальный контроллер пограничного сканирования, и отлаживаемая система не управляет сигналом BTRST
, то Вам понадобится управлять этим сигналом с помощью дополнительной логики. Эта дополнительная логика должна гарантировать, что сигнал BTRST
получает импульс лог. 0 только в момент сброса при включении питания (power-on reset). Сигнал должен получить уровень лог. 1 все остальное время при локальном пограничном сканировании. Это предотвратит от удерживания сигнала в лог. 0 длительное время по время проведения тестов пограничного сканирования.
Удерживайте DSP TAP в состоянии постоянного сброса путем притягивания сигнала BTRST
к лог. 0 с помощью перемычки или резистора pull-down, чтобы предотвратить процессор DSP от выполнения локального пограничного сканирования.
Резистор 4.7 кОм pull-down на сигнале TRST
, показанный на рис. 9, не должен использоваться в отлаживаемых системах, которые имеют локальный контроллер пограничного сканирования, и не управляют сигналом TRST
. DSP JTAG TAP будет удерживаться в состоянии сброса, когда применяется этот pull-down резистор, если его влияние не может быть отменено.
Как показано на рис. 9, отлаживаемые системы, в которых используется больше одного DSP в цепочке сканирования, и которые используют контроллер пограничного сканирования, требуют применения буферизации. Рис. 9 показывает соединения между коннектором эмулятора JTAG и буферами с отлаживаемой системой, где применено несколько процессоров DSP с локальным контроллером пограничного сканирования.
Для отлаживаемых систем с уровнями сигналов 5V применяйте буфер сигнала TCK с крутыми перепадами сигнала на выходе, высокой нагрузочной способностью, минимальной задержкой между входом и выходом, сдвоенный с разветвлением сигнала 1-к-5 типа IDT49FCT805 (или его эквивалент), и применяйте буфер для сигналов TMS, TDI, TRST
типа 74AC11244 (или эквивалентный).
Для низковольтных систем с уровнями 3.3V применяйте буфер сигнала TCK с крутыми перепадами сигнала на выходе, высокой нагрузочной способностью, минимальной задержкой между входом и выходом, сдвоенный с разветвлением сигнала 1-к-5 типа IDT49FCT3805E (или аналогичный), и применяйте для сигналов TMS, TDI, TRST
буфер типа 74AVC16244 (или эквивалентный).
Для систем с очень низкими уровнями сигналов 2.5V / 1.8V применяйте буфер сигнала TCK с крутыми перепадами сигнала на выходе, высокой нагрузочной способностью, минимальной задержкой между входом и выходом, сдвоенный с разветвлением сигнала 1-к-5 типа IDT5T9050 (или его эквивалент), и применяйте для сигналов TMS, TDI, TRST
буфер типа 74AVC16244 (или эквивалентный).
На рис. 9 показаны последовательно подключенные терминирующие резисторы для сигналов TDO и EMU
, приходящих на эмулятор JTAG. Наличие этих резисторов не является обязательным. Используйте терминаторы, если трассы TDO или EMU
между коннектором JTAG и процессором DSP длиннее 6 дюймов (152 мм).
Номинал резистора терминирования обычно равен волновому сопротивлению сигнала печатной платы (ZPCB) минус выходное сопротивление драйвера ввода/вывода сигналов TDO или EMU
(ZDriver). Изначально установите значение этих резисторов в 0 Ом. Меняйте значение терминирующего сопротивления ZTerminator на значение ZPCB минус ZDriver, если есть проблемы с целостностью сигналов, наблюдаемые при работе эмулятора JTAG. Может потребоваться подстройка значения резистора терминирования несколько меньше или больше, чем ZTerminator, в зависимости от качества прохождения сигналов. Размещайте резисторы терминирования как можно ближе к процессору DSP, насколько это возможно.
Чтобы минимизировать длительность перепада уровней логики для сигналов TMS, TDI, TRST
, убедитесь, что они приходят от одного корпуса. Для сигналов TCK используйте драйвер с высокой нагрузочной способностью. Эти драйверы должны браться от одного выделенного корпуса микросхемы, которая не применяется для других сигналов TMS, TDI, TRST
Разведите все проводники сигналов коннектора эмулятора JTAG как группу сигналов, используя по возможности одинаковую длину проводников для этих цепей. Обеспечьте хорошую изоляцию от других сигналов в контексте наводок перекрестных помех (crosstalk isolation), особенно от тактовых сигналов.
Ограничьтесь количеством нагрузок (подключенных параллельно процессоров DSP) сигналов TMS, TRST
не более восьми. Ограничьтесь количеством параллельных нагрузок для буферизованных сигналов TCK одной нагрузкой. Дополнительные нагрузки (процессоры DSP) должны использовать другой буфер для поддержки дополнительного количества (до 8) подключенных процессоров.
Примечание: в предыдущих версиях этого документа было указано наличие pull-up резисторов на сигналах TMS, TCK и TDI. Мощные драйверы буферов CMOS, используемые в эмуляторе, делают эти резисторы ненужными.
Не рекомендуется использовать больше 16 физических устройств на одной цепочке сканирования интерфейса JTAG. В этом случае самым лучшим решением проблемы будет разбиение большого количества (>16) физических устройств на независимые цепочки меньшего размера. Например, если в системе имеется 20 устройств JTAG, то можно их разбить на 2 цепочки по 10 устройств в каждой, и для каждой цепочки организовать отдельный коннектор JTAG с отдельными буферами. Если это невозможно, то попробуйте добавит перемычки для уменьшения количества дополнительных микросхем и коннекторов, чтобы сделать отдельные цепочки сканирования для отладки программы и для тестирования схемы. Уделите особое внимание трассировке печатной платы, чтобы минимизировать влияние линий передачи сигналов.
Рис. 9. Несколько отлаживаемых процессоров DSP, когда в системе разведен локальный контроллер пограничного сканирования.
Здесь приведено короткое описание спецификации IEEE 1149.1 (JTAG) и концепции технологии пограничного тестирования (Boundary Scan) для пользователей, которые незнакомы с этими темами.
[Стандарт IEEE Std. 1149.1 (JTAG)]
Поскольку печатные платы стали очень плотными, с минимальными расстояниями между деталями, с наличием компонентов в многовыводных корпусах PGA и BGA, то традиционные методы проверки с использованием матричных контактных полей и внутрисхемных тестов стали очень сложными для реализации или вовсе невозможными. Понадобилась разработка нового метода, который позволил бы тестировать эти сложные электронные узлы. Чтобы решить проблему, в 1980 годах организация Joint Test Action Group (JTAG) разработала спецификацию IEEE Std. 1149.1, в которой использовалась так называемая технология пограничного сканирования, предназначенная для тестирования соединений на печатных платах с детализацией до отдельного вывода микросхемы. Этот стандарт был ратифицирован, адаптирован и впервые был представлен в 1990 году. Впоследствии были адаптированы несколько ревизий этого стандарта, включая ревизию 1993 года 1149.1a, и дополнение спецификации 1994 года, вводящую язык описания пограничного тестирования (boundary scan descriptive language, сокращенно BSDL). Компании, которые интегрировали IEEE Std. 1149.1 в свою продукцию (микросхемы) с целью проверки печатных плат и компонентов схемы, расширили дальнейшее использование JTAG для программирования устройств FPGA, загрузки микрокода, внутрисхемной эмуляции для отладки программ и т. д.
[Пограничное сканирование: что это такое?]
Технология пограничного сканирования (Boundary Scan) предоставляет метод тестирования внутренних соединений на печатной плате без необходимости применения физических щупов наподобие матричного контактного поля. С помощью использования внутренних ячеек пограничного сканирования с возможностью мультиплексирования функций выводов и защелки их состояния, данные в последовательном формате могут как вдвигаться в микросхему и попадать на выводы ножек, так и выдвигаться из микросхемы, что позволяет анализировать уровни на её ножках. Каждая ячейка пограничного сканирования использует свой собственный мультиплексор и логику защелки, подключенную к выводу устройства, и все эти ячейки соединены друг с другом, формируя последовательную цепочку. Эта цепочка включает ячейки пограничного сканирования для всех или некоторых выводов устройства (определяется пользователем) которые подключены к другим устройствам (определяется пользователем) на печатной плате.
Рис. 10. Диаграмма реализации технологии Boundary Scan.
На рис. 10 показана схема реализации части спецификации IEEE Std. 1149.1, которая соединила бы отдельные ячейки пограничного сканирования и логику контроллера JTAG. Выводы TDI, TCK, TMS, TDO и опциональный (его наличие не обязательно) вывод TRST
предоставляет порт доступа для тестирования (test access port, TAP) для сдвига (под управлением тактов TCK) данных внутрь микросхемы (через вывод TDI) и из микросхемы (через вывод TDO) по алгоритму которым управляет вывод TMS. Внешнее устройство, которое управляет сигналами TCK, TMS и TDI, также может сбросить контроллер TAP переводом в лог. 0 опционального вывода TRST
. Данные возвращаются во внешнее устройство, которое управляет всей работой TAP, через вывод TDO.
Вместе с операциями пограничного сканирования компания Analog Devices использует контроллер TAP для доступа к выделенным внутренним регистрам с ячейками сканирования JTAG, чтобы вдвигать данные в процессор DSP и из него, предоставляя порт доступа для эмуляции (отладки программы). Analog Devices не включает опциональный вывод TRST
во все свои текущие реализации логики DSP JTAG TAP, и также использует специальный вывод для управления эмуляцией (emulation control pin, EMU
), который не определен в стандарте IEEE Std. 1149.1.
Если Вы хотите получить больше информации о том, как работает стандарт IEEE Std. 1149.1, то можете посетить соответствующий сайт http://standards.ieee.org/.
Примечание: также см. [3], где описан интерфейс JTAG процессора ADSP-BF538 в контексте пограничного сканирования, а также замечательную статью Иосифа Каршенбойма «JTAG тестирование», которая была опубликована журналом «СОВРЕМЕННАЯ ЭЛЕКТРОНИКА» в 2007 году (статью в формате PDF можно скачать по ссылке [5]).
[Словарик]
ATPG Automatic Test Pattern Generation, метод/технология автоматизации постороения тестов печатных плат (электроники). Метод автоматически определяет данные, которые при подаче на цифровую схему позволяют определить её работоспособность, или обнаружить её неисправности и место возникновения этих неисправностей (из википедии).
BIST Built-In Self Test, встроенная процедура самотестирования.
BS Boundary Scan, технология пограничного тестирования.
BSDL boundary scan descriptive language, язык описания пограничного сканирования.
DR Data Register, регистр данных.
DTS Debug Test Syntax, специальный язык программирования тестов, разработан фирмой Flynn Systems для своей линейки ПО и адаптеров JTAG (onTAP). Имеет C-подобный синтаксис для манипуляции переменными, функциями, группами выводов с целью упрощения разработки повторно используемых тестовых моделей для не-JTAG компонентов, включая память и FLASH. Модели могут быть получены из папки …onTAP/examples/cluster_test_models, у компании Flynn Systems, или могут быть составлены напрямую пользователями.
HDR Header Data Register.
LED Light Emitting Diode, светодиод.
IR Instruction Register, регистр инструкции.
PLD Programmable Logic Device.
RUNBIST операция запуска самотестирования (BIST).
SVF Serial Vector Format, формат файла для сохранения в нем порций данных, которые должны отправляться через интерфейс JTAG, а также ожидаемый ответ на эти данные [7]. Используется как формат обмена между программами, которые генерируют входные/выходные данные JTAG (input/output patterns), и устройствами, которые могут физически отвечать на взаимодействие через интерфейс JTAG.
TAP test access port, порт доступа для тестирования.
TCK Test Clock, такты тестирования.
TDI Test Data Input, вход данных тестирования.
TDO Test Data Out, выход данных тестирования.
TMS Test Mode Select, выбор режима тестирования.
TRST Test Reset, сброс логики тестирования.
UUT Unit Under Test, тестируемая электронная схема.
XSVF Xilinx Serial Vector Format, двоичный вариант формата SVF, оптимизированный для програмирования устройств Xilinx FPGA и CPLD. Формат может применяться и для других микросхем.
Кластер часть тестируемой схемы, которая не оборудована управляющим интерфейсом JTAG.
















