На сайт "Мир микроконтроллеров"   Закрыть окно помощи

 

FUSE калькулятор
Страница помощи

 

Интерфейс JTAG.

JTAG (произносится «дже?й-таг»; сокращение от англ. Joint Test Action Group) — специализированный аппаратный интерфейс, разработанный для тестирования собранных печатных плат. Из-за широкой функциональности JTAG стал использоваться для отладки и программирования. На данный момент JTAG-интерфейс применяется при периферийном сканировании (тестироване печатных плат с установленными на них процессорами на наличие в цепях коротких замыканий, непропаек, западаний на 0 или 1). Управление JTAG-интерфейсом описывается в т. н. BSDL-файле, который предоставляется разработчиком каждой конкретной микросхемы. В большинстве случаев эти файлы находятся на сайте производителя микросхемы.

Порт тестирования (TAP — Test Access Port) представляет собой четыре или пять выделенных выводов микросхемы: ТСК, TMS, TDI, TDO. Иногда еще TRST.

Функциональное назначение этих линий:
TDI (test data input — вход тестовых данных) — вход последовательных данных периферийного сканирования. Команды и данные вводятся в микросхему с этого вывода по переднему фронту сигнала TCK;
TDO (test data output — выход тестовых данных) — выход последовательных данных. Команды и данные выводятся из микросхемы с этого вывода по заднему фронту сигнала TCK;
TCK (test clock — тестовое тактирование) — тактирует работу встроенного автомата управления периферийным сканированием. Максимальная частота сканирования периферийных ячеек зависит от используемой аппаратной части и на данный момент ограничена 25…40 МГц[источник?];
TMS (test mode select — выбор режима тестирования) — обеспечивает переход схемы в(из) режим(а) тестирования и переключение между разными режимами тестирования.
В некоторых случаях к перечисленным сигналам добавляется сигнал TRST для инициализации порта тестирования, что необязательно, так как инициализация возможна путем подачи определённой последовательности сигналов на вход TMS.

Работа средств обеспечения интерфейса JTAG подчиняется сигналам автомата управления, встроенного в микросхему. Состояния автомата определяются сигналами TDI и TMS порта тестирования. Определённое сочетание сигналов TMS и TCK обеспечивает ввод команды для автомата и её исполнение

Если на плате установлено несколько устройств, поддерживающих JTAG, они могут быть объединены в общую цепочку. Уникальной особенностью JTAG является возможность программирования не только самого микроконтроллера (или ПЛИС), но и подключённой к его выводам микросхемы флэш-памяти. Причём существует два способа программирования флэш-памяти с использованием JTAG: через загрузчик с последующим обменом данными через память процессора, либо через прямое управление выводами микросхемы.

JTAGEN

Для включения интерфейса JTAG используется FUSE переключатель JTAGEN. Запрограммированный бит JTAGEN включает канал, незапрограммированный отключает. По умолчанию канал включен. Но это не означает, что используемые под этот канал выводы микроконтроллера нельзя использовать по их основному предназначению. Канал активизируется в нужный момент программно.

Рекомендации по применению

Используйте этот интерфейс в том случае, если вам ставится такая задача. Возможно вам заказали некое устройство, которое должно управлять чем то именно по этому интерфейсу. Возможно так же, что ваш программатор работает по интерфейсу JTAG. Есть такие программаторы. Но предпочтительнее применять стандартный программатор, работающий по родному для фирмы Atmel каналу SPI.


Внутрисхемная отладка через JTAG

Еще одно применение JTAG интерфейса - это внутрисхемная отладка (на ряду с родным для Atmel внутрисхемным отладчиком debugWire). В режиме отладки через JTAG адаптер микроконтроллер подключается напрямую к среде программирвания и отладки, например к AVR Studio. После чего микроконтроллер полностью подчиняется AVR Studio и полностью работает под ее управлением. Становится доступным пошаговое выполнение кода, просмотр и изменение всех регистров, работа со всей периферией и все это в реальном микроконтроллере, а не в его программной эмуляции. Можно ставить точки останова (breakpoints) на разные события. К сожалению в AVR микроконтроллерах JTAG доступен далеко не везде, как правило контроллеры с числом ног меньше 40 и обьемом памяти меньше 16КБ интерфейса JTAG не имеют. Там, правда, часто есть debugWire.