Описание регистров управления и статуса интерфейса PDI 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Описание регистров управления и статуса интерфейса PDI



Данные регистры доступны в пространстве регистров управления и статуса PDI (CSRS) с использованием инструкций LDCS и STCS. В пространство CSRS включены те регистры, которые позволяют настроить и проконтролировать состояние PDI.

STATUS - регистр статуса интерфейса PDI

Бит                  
+0x00
- - - - - - NVMEN -
STATUS
Чтение/запись Чт. Чт. Чт. Чт. Чт. Чт. Чт. Чт.
Нач значение                

· Биты 7:2 - Res: резервные биты

Данные биты являются резервными и всегда считываются с нулевыми значениями. Для совместимости с более новыми МК, выполняя запись в этот регистр, всегда записывайте нули в резервные биты.

· Бит 1- NVMEN: разрешение энергонезависимой памяти

Данный бит статуса равен единице, когда в результате ввода верного ключа разрешается работа интерфейса программирования энергонезависимой памяти. Внешний программатор может опросить данный бит, чтобы убедиться в успешности разрешения программирования. Запись бита NVMEN отключит интерфейс энергонезависимой памяти.

· Бит 0 - Res: резервный бит

Данный бит является резервным и всегда считывается с нулевым значением. Для совместимости с более новыми МК, выполняя запись в этот регистр, всегда записывайте нуль в резервный бит.

RESET - регистр сброса

Бит                  
+0x01
RESET[7:0]
CTRLB
Чтение/запись Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап Чт/Зап
Нач значение                

· Биты 7:0 - RESET[7:0]: сигнатура сброса

Когда в регистр RESET записывается сигнатура сброса (0x59), МК переходит в состояние сброса. МК будет удерживаться в состоянии сброса то тех пор, пока в этот регистр не будет записано любое другое, отличное от сигнатуры сброса, значение (рекомендуется 0x00). Опросом младшего бита можно оценить статус сброса. При опросе 7 старших бит регистра всегда возвращаются нули, независимо от того в состоянии сброса или нет находится МК.

CTRL - регистр управления интерфейсом PDI

Бит                  
+0x02 - - - - - GUARDTIME[2:0] CTRL
Чтение/запись Чт. Чт. Чт. Чт. Чт. Чт/Зап Чт/Зап Чт/Зап
Нач значение                

· Биты 7:3 - Res: резервные биты

Данные биты не используются и зарезервированы для использования в будущем. Для совместимости с более новыми МК, выполняя запись в этот регистр, всегда записывайте нули в резервные биты.

· Биты 2:0 - GUARDTIME[2:0]: защитный интервал

Данные биты предназначены для задания защитного интервала в виде дополнительных бит IDLE, которые вставляются перед изменением направления передачи интерфейса PDI. По умолчанию, защитный интервал равен 128 битам IDLE, а возможные его настройки показаны в таблице 29.1. Для ускорения связи, величина защитного интервала должна быть как можно более меньшей, но и не ухудшающей надежность передачи. Необходимо обратить внимание, что защитный интервал вставляется при переключении из режима передачи в режим приема.

Таблица 29.1. Настройка защитного интервала

GUARDTIME Количество бит IDLE
  +128
  +64
  +32
  +16
  +8
  +4
  +2
  +0

Обзор регистров

Адрес Наименование Бит 7 Бит 6 Бит 5 Бит 4 Бит 3 Бит 2 Бит 1 Бит 0
+0x00 STATUS - - - - - - NVMEN -
+0x01 RESET RESET[7:0]
+0x02 CTRL - - - - - GUARDTIME[2:0]
+0x03 (резерв)                
+0x04 (резерв)                
+0x05 (резерв)                
+0x06 (резерв)                
+0x07 (резерв)                
+0x08 (резерв)                
+0x09 (резерв)                
+0x0A (резерв)                
+0x0B (резерв)                
+0x0C (резерв)                
+0x0D (резерв)                
+0x0E (резерв)                
+0x0F (резерв)                
+0x10 (резерв)                

Программирование запоминающих устройств

Отличительные особенности

· Чтение/запись любого пространства памяти с помощью

· внешнего программатора

· программы

· Возможность самопрограммирования под управлением программы загрузчика

· поддержка чтения во время записи в процессе самопрограммирования

· ЦПУ может исполнять код программы во время программирования Flash-памяти

· Для загрузки кода программы может использоваться любой коммуникационный интерфейс

· Внешнее программирование

· Поддержка внутрисистемного и производственного программирования

· Программирование через последовательный интерфейс PDI или JTAG

· Быстродействующие и надежные интерфейсы

· Отдельные биты Boot Lock позволяют ограничить

· доступ для внешнего программирования

· доступ к загрузочному сектору

· доступ к сектору прикладной программы

· доступ к сектору таблицы приложения

· Fuse-бит RESET задает положение вектора сброса в начале

· сектора прикладной программы или

· загрузочного сектора

· Простой алгоритм выполнения операций

· Эффективная поддержка операций типа "чтение-модификация-запись"

Обзор

В данном разделе приводится описание механизмов программирования энергонезависимой памяти (NVM) микроконтроллеров XMEGA, в т.ч. самопрограммирование и внешнее программирование. NVM состоит из Flash-памяти программы, сигнатурного кода, Fuse- и Lock-бит, а также EEPROM памяти данных. Более детально об организации памяти и регистрах NVM-контроллера, участвующих в доступе к памяти, см. в разделе 4 "Запоминающие устройства".

Доступ к NVM (чтение или запись) можно осуществить как из прикладной программы с использованием возможности самопрограммирования, так и внешне с помощью программатора. Независимо от используемого способа программирования, доступ к NVM осуществляется при участии общего NVM-контроллера. Благодаря этому, оба метода программирования становятся близкими друг к другу. Доступ к памяти выполняется следующим образом. Вначале загружается адрес и/или данные NVM, а затем задаются и запускаются команды, указывающие какие именно действия нужно выполнить NVM-контроллеру над энергонезависимой памятью.

В режиме внешнего программирования для чтения и записи доступны все пространства памяти, кроме области калибровочных данных. В этой области поддерживается только чтение. Микроконтроллеры допускают внутрисистемное программирование через контроллер PDI с использованием физического интерфейса PDI или JTAG (более детально об этом см. в 30.12 "Внешнее программирование").

Самопрограммирование, выполняемое программой в загрузочном секторе, позволяет пользователю прочитать и записать сектор прикладной программы Flash-памяти, сигнатурный код пользователя и EEPROM, а также записать Lock-биты для выбора уровня защиты и прочитать калибровочные данные и состояние Fuse-бит. Во время самопрограммирования Flash-память сохраняет возможность чтения (тип памяти "Read-While-Write", т.е. чтение во время записи). Это означает, что во время программирования Flash-памяти ЦПУ может выполнять выборку и исполнение инструкций. Более детально об этом см. в 30.11 "Самопрограммирование под управлением программы загрузчика".

Как при использовании самопрограммирования, так и при использовании внешнего программирования для проверки целостности сектора Flash-памяти может быть применен механизм автоматической проверки CRC. При необходимости пользователь может защитить NVM от чтения и/или записи. Отдельные lock-биты предусмотрены у загрузочного сектора, секторы прикладной программы и сектора таблицы приложения. Все они доступны, как при внешнем программировании, так и при самопрограммировании.

NVM-контроллер

Любой доступ к энергонезависимой памяти происходит при участии NVM-контроллера. Он отвечает за соблюдение временной диаграммы доступа к NVM и за привилегии доступа, а также за сбор информации о состоянии NVM. Для внешнего программирования и самопрограммирования предусмотрен общий интерфейс NVM. Более детально об NVM-контроллере см. в 30.13 "Описание регистров".

NVM-команды

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

Запуск команды, даже после загрузки требуемой команды и установки адреса и данных, может произойти не сразу, а при возникновении условия запуска команды. Всего существует три типа команд с различными условиями запуска.



Поделиться:


Последнее изменение этой страницы: 2016-12-30; просмотров: 421; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.12.162.179 (0.015 с.)