В HTML      В PDF
микроэлектроника, микросхема, транзистор, диод, микроконтроллер, память, msp430, Atmel, Maxim, LCD, hd44780, t6963, sed1335, avr, mega128
Предприятия Компоненты Документация Применения Статьи Новости

 
Пересюхтюмя


13-я Международная выставка электронных компонентов и комплектующих для электронной промышленности





Выставка Передовые Технологии Автоматизации





Главная страница > Обзоры по типам > Микроконтроллеры > AVR
Пересюхтюмя


13-я Международная выставка электронных компонентов и комплектующих для электронной промышленности





Выставка Передовые Технологии Автоматизации


29.5. Контроллер PDI

Контроллер PDI отвечает за передачу/прием данных на байтном уровне, дешифрацию команд, управление направлением передачи, обработку исключительных ситуаций, доступ к регистрам управления и статуса и переключение синхронизации (PDI_CLK или TCK). Взаимодействие между программатором и контроллером PDI происходит по следующей схеме. Программатор передает различные типы запросов в контроллер PDI, который в зависимости от типа запроса соответствующим образом реагирует на него. Запрос программатора поступает в виде инструкции, за которой могут следовать один или несколько байт операндов. Реакцией контроллера PDI на запрос может быть молчание (например, когда требуется сохранение принятых данных по назначению) или передача данных программатору (например, когда выполняется чтение данных по заданному адресу).

29.5.1. Переключение между режимами PDI и JTAG

Для связи с программатором PDI-контроллер использует либо трансивер JTAG, либо PDI. Исходя из этого, PDI может работать либо в режиме JTAG, либо в режиме PDI. При вводе одного из режимов, происходит инициализация регистров PDI и выбор корректного источника синхронизации. Необходимо отметить, что режим PDI имеет более высокий приоритет, чем режим JTAG. Это означает, что если разрешается работа в режиме PDI, когда контроллер PDI уже находился в режиме JTAG, слой доступа автоматически переключится на работу в режиме PDI. Однако, если по некоторым причинам пользователю необходимо изменить тип трансивера без снятия и подачи питания, перед разрешением альтернативного трансивера, необходимо отключить активный трансивер (это необходимо для запуска сброса PDI).

29.5.2. Доступ к внутренним интерфейсам

Внутренние интерфейсы, даже после установления связи внешнего программатора с PDI, не являются доступными по умолчанию. Чтобы получить доступ к NVM-контроллеру и программированию энергонезависимой памяти должен быть передан уникальный ключ. Для этого необходимо воспользоваться инструкцией KEY. Внутренние интерфейсы доступны как одно линейное адресное пространство через специальную шину (PDIBUS), расположенную между PDI и внутренними интерфейсами.

29.5.3. Ключ программирования энергонезависимой памяти

Передаваемый инструкцией KEY ключ имеет 64-битную длину. Для разрешения программирования энергонезависимой памяти необходимо ввести ключ 0x1289AB45CDD888FF.

29.5.4. Обработка исключительных ситуаций

Могут возникнуть несколько ситуаций, которые считаются отклонением от нормальной работы. Такие ситуации называются исключительными. Исключительные ситуации разделяются в зависимости от режима работы PDI (прием или передача) и используемого трансивера (PDI или JTAG).

Для режима приема определены следующие исключительные ситуации:

  • PDI:
    • Трансивер обнаружил ошибку паритета.
    • Трансивер обнаружил ошибку посылки.
    • Трансивер распознал символ BREAK (при этом, также обнаруживается ошибка посылки).
  • JTAG:
    • Трансивер обнаружил ошибку паритета.
    • Трансивер распознал символ BREAK (при этом, также обнаруживается ошибка паритета).

Для режима передачи определены следующие исключительные ситуации:

  • PDI:
    • Трансивер обнаружил коллизию.
  • JTAG:
    • Трансивер обнаружил ошибку паритета (при вводе с линии TDI фиктивных данных).
    • Трансивер распознал символ BREAK.

Контроллер PDI оповещается об обнаружении каждой исключительной ситуации. В таком случае, все выполняющиеся операции прекращаются, а PDI переходит в состояние ERROR. PDI будет удерживаться в этом состоянии до тех пор, пока внешний программатор не отправит инструкцию BREAK, после чего PDI вернется в его состояние по умолчанию - состояние приема. Благодаря такому механизму, программатор может в любой момент синхронизировать протокол путем передачи подряд двух символов BREAK.

29.5.5. Управление сбросом

Через регистр сброса программатор может перевести микроконтроллер в состояние сброса. Обнуление этого регистра приводит к выходу из состояния сброса, но при условии, что другие источники сброса неактивны.

29.5.6. Набор инструкций

PDI поддерживает небольшой набор инструкций, с помощью которых можно выполнить любой доступ к PDI и внутренним интерфейсам. Все инструкции имеют однобайтный код, а большая их часть требуют ввода вслед за инструкцией нескольких байт операндов. С помощью инструкций внешний программатор может осуществить доступ к контроллеру PDI, NVM-контроллеру и энергонезависимой памяти.

29.5.6.1. LDS - загрузка данных из пространства данных PDIBUS с использованием прямой адресации

Инструкция LDS предназначена для загрузки данных из пространства данных PDIBUS для дальнейшего последовательного чтения. Инструкция LDS использует прямую адресацию. Это означает, что в качестве аргумента инструкции должен быть задан адрес. Несмотря на то, что протокол предусматривает побайтную передачу, инструкция LDS поддерживает доступы с многобайтными адресом и данными. Всего поддерживается четыре различных размера адреса/данных: байт (byte), слово (word), 3 байта и 4 байта (long). Необходимо заметить, что многобайтный доступ внутренне разделяется на несколько повторяющихся однобайтных доступов. Главным преимуществом многобайтного доступа является то, что он позволяет снизить потери времени и ресурсов на реализацию протокола. Инструкция LDS подразумевает вначале передачу байта (или байт) адреса, а затем передачу данных.

29.5.6.2. STS - сохранение данных в пространстве данных PDIBUS с использованием прямой адресации

Инструкция ST используется для сохранения данных, принятых в сдвиговый регистр трансивера, по адресу в пространстве данных PDIBUS. Инструкция STS использует прямую адресацию. Это означает, что в качестве аргумента инструкции должен быть указан адрес. Несмотря на то, что протокол предусматривает побайтную передачу, инструкция STS поддерживает доступы с многобайтными адресом и данными. Всего поддерживается четыре различных размера адреса/данных: байт (byte), слово (word), 3 байта и 4 байта (long). Необходимо заметить, что многобайтный доступ внутренне разделяется на несколько повторяющихся однобайтных доступов. Главным преимуществом многобайтного доступа является то, что он позволяет снизить потери времени и ресурсов на реализацию протокола. Инструкция STS подразумевает вначале передачу байта (или байт) адреса, а затем передачу данных.

29.5.6.3. LD - загрузка данных из пространства данных PDIBUS с использованием косвенной адресации

Инструкция LD предназначена для загрузки данных из пространства данных PDIBUS в сдвиговый регистр трансивера для дальнейшего последовательного считывания. Инструкция LD использует косвенную адресацию (доступ по указателю). Это означает, что перед выполнением доступа необходимо записать адрес в регистр указателя. Косвенную адресацию можно совместить с инкрементированием указателя. В дополнение к чтению данных из пространства данных PDIBUS, инструкция LD позволяет выполнить чтение регистра указателя. Несмотря на то, что протокол предусматривает побайтную передачу, инструкция LD поддерживает доступы с многобайтными адресом и данными. Всего поддерживается четыре различных размера адреса/данных: байт (byte), слово (word), 3 байта и 4 байта (long). Необходимо заметить, что многобайтный доступ внутренне разделяется на несколько повторяющихся однобайтных доступов. Главным преимуществом многобайтного доступа является то, что он позволяет снизить потери времени и ресурсов на реализацию протокола.

29.5.6.4. ST - сохранение данных в пространство данных PDIBUS с использованием косвенной адресации

Инструкция ST предназначена для сохранения принятых в сдвиговый регистр данных в пространстве данных PDIBUS. Инструкция ST использует косвенную адресацию (доступ по указателю). Это означает, что перед выполнением доступа необходимо записать адрес в регистр указателя. Косвенную адресацию можно совместить с инкрементированием указателя. В дополнение к записи данных в пространство данных PDIBUS, инструкция ST позволяет выполнить запись регистра указателя. Несмотря на то, что протокол предусматривает побайтную передачу, инструкция ST поддерживает доступы с многобайтными адресом и данными. Всего поддерживается четыре различных размера адреса/данных: байт (byte), слово (word), 3 байта и 4 байта (long). Необходимо заметить, что многобайтный доступ внутренне разделяется на несколько повторяющихся однобайтных доступов. Главным преимуществом многобайтного доступа является то, что он позволяет снизить потери времени и ресурсов на реализацию протокола.

29.5.6.5. LDCS - загрузка данных из пространства регистров управления и статуса PDI

Инструкция LDCS предназначена для загрузки данных из регистров управления и статуса PDI в сдвиговый регистр трансивера для дальнейшего последовательного считывания. Инструкция LDCS поддерживает только прямую адресацию и однобайтный доступ.

29.5.6.6. STCS - сохранение данных в пространстве регистров управления и статуса PDI

Инструкция STCS предназначена для сохранения последовательно принятых данных сдвиговым регистром трансивера в регистрах управления и статуса PDI. Инструкция STCS поддерживает только прямую адресацию и однобайтный доступ.

29.5.6.7. KEY - настройка ключа активизации

Инструкция KEY предназначена для передачи байт ключа активизации, который необходим для активизации интерфейсов энергонезависимой памяти.

29.5.6.8. REPEAT - настройка счетчика повтора инструкций

Инструкция REPEAT предназначена для сохранения принятого в сдвиговый регистр настройки счетчика в регистр счетчика повторов. Инструкция, которая загружается сразу за операндом (операндами) инструкции REPEAT, будет выполнена заданное регистром счетчика повторов число раз. Таким образом, общее число раз выполнения инструкции будет равно исходному значению счетчика повторов + 1. Если в регистре счетчика повторов будет записан нуль, то следующая инструкция будет выполнена один раз без повторов.

Повторы не могут быть применены к инструкции REPEAT. Инструкция KEY также не может исполняться повторно. Кроме того, она перекрывает текущее значение регистра счетчика повторов.

29.5.7. Обзор набора инструкций

Обзор набора инструкций PDI показан на рисунке 29.14.

Обзор набора инструкций PDI
Рисунок 29.14. Обзор набора инструкций PDI



<-- Предыдущая страница Оглавление Следующая страница -->