28.4. JTAG-инструкции
Регистр инструкции является 4-битным. Ниже приводится описание JTAG-инструкций, используемых для граничного сканирования, а также инструкции PDICOM, используемой для доступа к интерфейсу PDI в режиме JTAG.
Ввод и вывод младшего бита осуществляется первым у всех сдвиговых регистров.
Код операции для каждой инструкции показан сразу за её наименованием в шестнадцатиричном формате. В тексте можно найти указание, какой регистр данных используется в качестве пути между выводами TDI и TDO у каждой инструкции.
28.4.1. EXTEST; 0x1
EXTEST - обязательная инструкция, предназначенная для выбора цепи граничного сканирования (позволяет протестировать внешнюю, подключенную к МК AVR, схему) в качестве регистра данных. Через цепь граничного сканирования можно изменить направление (DIR) и состояние (OUT) любой линии ввода-вывода, а также проконтролировать настройку направления линии и её фактическое состояние. Содержимое выходов с фиксацией цепи граничного сканирования становится доступным на выходах сразу после загрузки в регистр инструкции команды EXTEST.
Активные состояния:
- ЗАХВАТ_РД: выполняется выборка данных на внешних выводах для считывания через цепь граничного сканирования.
- СДВИГ_РД: данные в цепи граничного сканирования сдвигаются под управлением входа TCK.
- МОДИФ_РД: данные из цепи сканирования подаются на выводы выходов.
28.4.2. IDCODE; 0x3
IDEOCE - обязательная инструкция, предназначенная для выбора 32-битного регистра идентификации МК в качестве регистра данных.
Регистр идентификации содержит следующие данные: номер версии, номер МК и JEDEC-код производителя. Данная инструкция является инструкцией по умолчанию после подачи питания.
Активные состояния:
- ЗАХВАТ_РД: выполняется выборка содержимого регистра IDCODE в регистр идентификации МК.
- СДВИГ_РД: цепь сканирования IDCODE передается сдвигом под управлением входа TCK.
28.4.3. SAMPLE/PRELOAD; 0x2
SAMPLE/RELOAD - обязательная инструкция, предназначенная для предварительной загрузки выходов с фиксацией и опроса состояния входов/выходов без нарушения работы системы. Однако необходимо учесть, что выходы с фиксацией не связаны с выводами. В качестве регистра данных выступает цепь граничного сканирования.
Обратите внимание, что каждая из инструкций SAMPLE и PRELOAD выполняют одни те же действия, что объясняет причину общего кода операции у них и объединения в одну инструкцию.
Активные состояния:
- ЗАХВАТ_РД: выполняется выборка данных на внешних выводах для чтения через цепь граничного сканирования.
- СДВИГ_РД: передача сдвигом цепи граничного сканирования под управлением входа TCK.
- МОДИФ_РД: данные из цепи граничного сканирования подаются на выходы с фиксацией. Однако нужно учесть, что выходы с фиксацией не связаны с выводами.
28.4.4. BYPASS; 0xf
BYPASS - обязательная инструкция, предназначенная для выбора регистра обхода в качестве регистра данных.
Активные состояния:
- ЗАХВАТ_РД: загрузка логического "0" в регистр обхода.
- СДВИГ_РД: регистр обхода включен между выводами TDI и TD
- как сдвиговый регистр.
28.4.5. CLAMP; 0x4
CLAMP - опциональная инструкция, которая позволяет назначить состояние выводов МК по состоянию предварительно загруженных выходов с фиксацией. В качестве регистра данных выбирается регистр обхода.
Активные состояния:
- ЗАХВАТ РД: загрузка логического "0" в регистр обхода.
- СДВИГ РД: регистр обхода работает как сдвиговый регистр между выводами TDI и TDO.
28.4.6. HIGHZ; 0x5
HIGHZ - опциональная инструкция, предназначенная для перевода всех выходов в неактивное состояние (например, высокоимпедансное). В качестве регистра данных выбирается регистр обхода.
Активные состояния:
- ЗАХВАТ_РД: загружает логический "0" в регистр обхода.
- СДВИГ_РД: регистр обхода включается между выводами TDI и TD
- как сдвиговый регистр.
28.4.7. PDICOM; 0x7
PDICOM - специфическая AVR-инструкция, предназначенная для использования порта JTAG TAP в качестве альтернативного канала доступа к интерфейсу программирования и отладки PDI.
Активные состояния:
- ЗАХВАТ_РД: фиксация параллельных данных из PDI в регистре данных PDICOM.
- СДВИГ_РД: передача сдвигом регистра данных PDICOM под управлением входа TCK.
- МОДИФ_РД: копирование команд или операндов в параллельном формате из регистра данных PDICOM в интерфейс PDI.
28.5. Регистры данных
Между выводами TDI и TD могут быть включены следующие регистры данных:
- Обходной регистр (регистр А на рисунке 28.2).
- Регистр идентификации МК (регистр С на рисунке 28.2).
- Цепь граничного сканирования (регистр D на рисунке 28.2).
- Регистр данных PDI (регистр В на рисунке 28.2).
Рисунок 28.2. Обзор JTAG регистра данных
28.5.1. Обходной регистр
Обходной регистр образован однокаскадным сдвиговым регистром. Когда обходной регистр выбирается в качестве пути между выводами TDI и TDO, при выходе контроллера из состояния ЗАХВАТ-РД, регистр принимает нулевое значение. Обходной регистр может использоваться для минимизации длины цепи сканирования во время тестирования другой микросхемы.
28.5.2. Регистр идентификации МК
Рисунок 28.3. Регистр идентификации МК
28.5.2.1. Версия
Версия - 4-битное значение, позволяющее идентифицировать версию компонента. Здесь используется JTAG нумерация версий. Версии А соответствует код 0x0, версии B - 0x1 и т.д.
28.5.2.2. Шифр продукции
Шифр продукции - это 16-битный код, позволяющий установить наименование микросхемы. Узнать числовое значение шифра продукции интересующего микроконтроллера можно в документации на него.
28.5.2.3. Идентификатор производителя
Идентификатор производителя - это 11-битный код, позволяющий установить производителя микросхемы. В случае Atmel этот код равен 11x01F.
28.5.3. Цепь граничного сканирования
Цепь граничного сканирования имеет возможность управления логическими уровнями и их контроля на всех линиях ввода-вывода. Более детально об этом см. в 28.6 "Цепь граничного сканирования".
28.5.4. Регистр данных PDICOM
Регистр данных PDICOM - 9-битный регистр, который используется для последовательно-параллельного и параллельно-последовательного преобразования данных между JTAG TAP и PDI. Подробности см. в разделе 29 "Интерфейс программирования и отладки".
28.6. Цепь граничного сканирования
Цепь граничного сканирования позволяет управлять логическими уровнями на линиях ввода-вывода и контролировать их. Чтобы гарантировать предсказуемость поведения микроконтроллера в процессе и после выполнения инструкций EXTEST, CLAMP и HIGHZ, микроконтроллер автоматически переходит в состояние сброса. В этом состоянии отключаются внешние генераторы, аналоговые модули и заданные программно настройки портов (в т.ч. подтяжка к плюсу или минусу, адаптивная подтяжка и выходы типа "Монтажное И/ИЛИ"). Необходимо заметить, что инструкции SAMPLE и PRELOAD не влияют на текущее состояние микроконтроллера и его портов.
28.6.1. Сканирование линий ввода-вывода
На рисунке 28.4 показана ячейка граничного сканирования, предусмотренная на каждой двунаправленной линии порта. Данная ячейка может управлять как направлением линии, так и её значением через двухступенчатый сдвиговый регистр. Если альтернативная функция линии ввода-вывода не используется, её направление будет зависеть от значения регистра DIR, состояние - от значения регистра OUT, а входное значение будет доступно через регистр IN (предварительно поступает к входному инвертору и синхронизатору). Линия Mode активизируется инструкцией CLAMP или EXTEST, а линия Shift DR равна единице, когда TAP-контроллер находится в состоянии СДВИГ-РД.
Рисунок 28.4. Ячейка граничного сканирования двунаправленной линии
28.6.2. Сканирование линий PDI
Для контроля за состоянием комбинированного вывода RESET/PDI_CLK и вывода PDI_DATA предусмотрены две специальные ячейки, имеющие только возможность контроля логических уровней. Несмотря на то, что вывод PDI_DATA является двунаправленным, он может только контролироваться, что необходимо для избавления от избыточной логики в выходном тракте PDI_DATA.
Рисунок 28.5. Ячейки с возможностями только контроля входов
|