Devid0 - регистр 0 идентификатора МК 


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



ЗНАЕТЕ ЛИ ВЫ?

Devid0 - регистр 0 идентификатора МК



В регистрах DEVID0, DEVID1 и DEVID2 хранится трехбайтный идентификационный код, позволяющий программно определить тип МК. Точное значение идентификационного кода уточните в документации на МК.

Обзор регистров контроллера энергонезависимой памяти

Адрес Наименование Бит 7 Бит 6 Бит 5 Бит 4 Бит 3 Бит 2 Бит 1 Бит 0
+0x00 ADDR0 Байт 0 адреса энергонезависимой памяти
+0x01 ADDR1 Байт 1 адреса энергонезависимой памяти
+0x02 ADDR2 Байт 2 адреса энергонезависимой памяти
+0x03 Резерв                
+0x04 DATA0 Байт 0 данных энергонезависимой памяти
+0x05 DATA1 Байт 1 данных энергонезависимой памяти
+0x06 DATA2 Байт 2 данных энергонезависимой памяти
+0x07 Резерв                
+0x08 Резерв                
+0x09 Резерв                
+0x0A CMD - CMD[6:0]
+0x0B CTRLA               CMDEX
+0x0C CTRLB         EEMAPEN FPRM EPRM SPMLOCK
+0x0D INTCTRL         SPMLVL[1:0] EELVL[1:0]
+0x0E Резерв                
+0x0F STATUS NVMBUSY FBUSY         EELOAD FLOAD
+0x10 LOCKBITS BLBB[1:0] BLBA[1:0] BLBAT[1:0] LB[1:0]

Обзор регистров Fuse- и Lock-бит

Адрес Наименование Бит 7 Бит 6 Бит 5 Бит 4 Бит 3 Бит 2 Бит 1 Бит 0
+0x00 FUSEBYTE0 JTAGUID
+0x01 FUSEBYTE1 WDWPER[3:0] WDPER[3:0]
+0x02 FUSEBYTE2 DVSDON BOOTRST         BODPD[1:0]
+0x03 Резерв                
+0x04 FUSEBYTE4       RSTDISBL STARTUPTIME[1:0] WDLOCK JTAGEN
+0x05 FUSEBYTE5     BODACT[1:0] EESAVE BODLEVEL[2:0]
+0x06 Резерв                
+0x07 LOCKBITS BLBB[1:0] BLBA[1:0] BLBAT[1:0] LB[1:0]

Обзор регистров кода сигнатуры производителя

Адрес Автозагрузка Наименование Бит 7 Бит 6 Бит 5 Бит 4 Бит 3 Бит 2 Бит 1 Бит 0
+0x00 Есть RCOSC2M RCOSC2M[7:0]
+0x01   Резерв  
+0x02 Есть RCOSC32K RCOSC32K[7:0]
+0x03 Есть RCOSC32M RCOSC32M[7:0]
+0x04   Резерв  
+0x05   Резерв  
+0x06   Резерв  
+0x07   Резерв  
+0x08 Нет LOTNUM0 LOTNUM0[7:0]
+0x09 Нет LOTNUM1 LOTNUM1[7:0]
+0x0A Нет LOTNUM2 LOTNUM2[7:0]
+0x0B Нет LOTNUM3 LOTNUM3[7:0]
+0x0C Нет LOTNUM4 LOTNUM4[7:0]
+0x0D Нет LOTNUM5 LOTNUM5[7:0]
+0x0E   Резерв  
+0x0F   Резерв  
+0x10 Нет WAFNUM WAFNUM[7:0]
+0x11   Резерв  
+0x12 Нет COORDX0 COORDX0[7:0]
+0x13 Нет COORDX1 COORDX1[7:0]
+0x14 Нет COORDY0 COORDY0[7:0]
+0x15 Нет COORDY1 COORDY1[7:0]
+0x16   Резерв  
+0x17   Резерв  
+0x18   Резерв  
+0x19   Резерв  
+0x1A   Резерв  
+0x1B   Резерв  
+0x1C   Резерв  
+0x1D   Резерв  
+0x1E   Резерв  
+0x1F   Резерв  
+0x20 Нет ADCACAL0 ADCACAL0[7:0]
+0x21 Нет ADCACAL1 ADCACAL1[7:0]
+0x22   Резерв  
+0x23   Резерв  
+0x24 Нет ADCBCAL0 ADCBCAL0[7:0]
+0x25 Нет ADCBCAL1 ADCBCAL1[7:0]
+0x26   Резерв  
+0x27   Резерв  
+0x28   Резерв  
+0x29   Резерв  
+0x2A   Резерв  
+0x2B   Резерв  
+0x2C   Резерв  
+0x2D   Резерв  
+0x2E Нет TEMPSENSE0 TEMPSENSE[7:0]
+0x2F Нет TEMPSENSE1   TEMPSENSE[11:8]
+0x30 Нет DACAOFFCAL DACAOFFCAL[7:0]
+0x31 Нет DACAGAINCAL DACAGAINCAL[7:0]
+0x32 Нет DACBOFFCAL DACBOFFCAL[7:0]
+0x33 Нет DACBGAINCAL DACBGAINCAL[7:0]
+0x34   Резерв  
+0x35   Резерв  
+0x36   Резерв  
+0x37   Резерв  
+0x38   Резерв  
+0x39   Резерв  
+0x3A   Резерв  
+0x3B   Резерв  
+0x3C   Резерв  
+0x3D   Резерв  
+0x3E   Резерв  

 

Обзор регистров ввода-вывода общего назначения

Адрес Наименование Бит 7 Бит 6 Бит 5 Бит 4 Бит 3 Бит 2 Бит 1 Бит 0
+0x00 GPIOR0 GPIOR[7:0]
+0x01 GPIOR1 GPIOR[7:0]
+0x02 GPIOR2 GPIOR[7:0]
+0x03 GPIOR3 GPIOR[7:0]
+0x04 GPIOR4 GPIOR[7:0]
+0x05 GPIOR5 GPIOR[7:0]
+0x06 GPIOR6 GPIOR[7:0]
+0x07 GPIOR7 GPIOR[7:0]
+0x08 GPIOR8 GPIOR[7:0]
+0x09 GPIOR9 GPIOR[7:0]
+0x0A GPIOR10 GPIOR[7:0]
+0x0B GPIOR11 GPIOR[7:0]
+0x0C GPIOR12 GPIOR[7:0]
+0x0D GPIOR13 GPIOR[7:0]
+0x0E GPIOR14 GPIOR[7:0]
+0x0F GPIOR15 GPIOR[7:0]

 

Обзор регистров управления микроконтроллером

Адрес Наименование Бит 7 Бит 6 Бит 5 Бит 4 Бит 3 Бит 2 Бит 1 Бит 0
+0x00 DEVID0 DEVID0[7:0]
+0x01 DEVID1 DEVID1[7:0]
+0x02 DEVID2 DEVID2[7:0]
+0x03 REVID - - - - REVID[3:0]
+0x04 JTAGUID JTAGUID[7:0]
+0x05 Резерв - - - - - - - -
+0x06 MCUCR - - - - - - - -
+0x07 Резерв - - - - - - - -
+0x08 EVSYSLOCK - - - EVSYS1LOC - - - EVSYS2LOC
+0x09 AWEXLOCK - - - - - AWEXELOCK - AWEXCLOCK
+0x0A Резерв - - - - - - - -
+0x0B Резерв - - - - - - - -

 

Векторы прерываний контроллера энергонезависимой памяти

Таблица 4.14. Векторы прерываний и их смещение по отношению к базовому адресу контроллера энергонезависимой памяти

Смещение Источник Описание прерывания
0x00 SPM_vect Вектор прерываний по готовности к исполнению инструкции SPM
0x02 EE_vect Вектор прерываний по готовности EEPROM

 

Контроллер прямого доступа к памяти (DMA-контроллер)

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

1. DMA-контроллер отвечает за высокоскоростную передачу данных при минимальном участии ЦПУ

2. из одной области памяти в другую

3. из области памяти в УВВ

4. из УВВ в область памяти

5. из одного УВВ в другое УВВ

6. Четыре канала DMA с отдельными:

7. источниками запуска передачи

8. векторами прерываний

9. режимами адресации

10. Передача за одну транзакцию от 1 байта до 16 Мбайт

11. Передача блоков размером до 64 кбайт с режимом повтора

12. Передача 1, 2, 4 или 8 байтного потока

13. Внутренние и внешние источники запуска передачи

14. Несколько режимов адресации

15. статический

16. инкрементный

17. декрементный

18. Опциональная перезагрузка адреса источника и назначения в конце каждого

19. потока

20. блока

21. транзакции

22. Опциональное прерывание по окончании транзакции

23. Программируемый приоритет канала

Обзор

Контроллер прямого доступа к памяти (DMA-контроллер) микроконтроллеров XMEGA предназначен для передачи данных между встроенными запоминающими устройствами и УВВ при минимальном участии ЦПУ. DMA-контроллер поддерживает возможность гибкой конфигурации приоритетов каждого канала, несколько режимов адресации, возможности двойной буферизации и передачу блоков больших размеров. DMA-контроллер может передавать данные между запоминающими устройствами и УВВ, между запоминающими устройствами, а также между регистрами УВВ.

Всего предусмотрено четыре канала DMA. Для каждого из них отдельно задаются источники и получатели данных, источники запуска передачи и размеры блоков.

В каждом из каналов предусмотрены возможности раздельной конфигурации (функций управления и прерываний) и отдельные векторы прерываний. Запросы прерываний могут генерироваться, как при завершении транзакции, так и обнаружении DMA-контроллером ошибки в канале DMA. После поступления запроса от DMA-канала на передачу данных, арбитр шины ожидает, когда ЦПУ AVR освободить шину данных, а затем разрешает DMA-контроллеру передавать данные. Передачи выполняются потоками из 1, 2, 4 или 8 байт. Адресация может быть статической, инкрементной или декрементной. По окончании передачи каждого пакета и блока, при необходимости, может быть выполнена автоматическая перезагрузка адреса источника и/или получателя.

Запуск DMA-передачи могут инициировать программа, УВВ и события.

Транзакция DMA

Полная операция DMA чтения и записи между запоминающими устройствами и/или УВВ называется DMA-транзакцией. Транзакция выполняется блоками данных, а размер транзакции (количество байт для передачи) задается программно посредством настройки размера блока и счетчика повторов. Передача каждого блока разделяется на пакеты меньшего размера.

Передача блока и повтор

Размер передаваемого блока задается через регистр счетчика байт при передаче блока и может быть любым из диапазона от 1 байта до 64 кбайт.

При необходимости задания количества повторов передач блоков до завершения транзакции, необходимо соответствующим образом настроить регистр счетчика повторов. Количество повторов может быть от 1 до 255 и неограниченным, если в регистр счетчика повторов записать нуль.

Передача пакета

Поскольку ЦПУ AVR и DMA-контроллер используют общие шины данных, то передача блоков разделяется на передачи пакетов меньшего размера. Размер пакета может быть задан равным 1, 2, 4 или 8 байт. Это означает, что, если DMA-контроллер получит доступ к шине данных и отправит запрос на передачу, то он сможет занимать шину до тех пор, пока не завершится передача всех байт передаваемого пакета.

Задачей арбитра шины является управление доступом к шине для DMA-контроллера или ЦПУ AVR. Приоритет всегда отдается за ЦПУ. Это означает, что до тех пор, пока ЦПУ запрашивает доступ к шине, все остальные отправленные запросы на передачу пакетов будут ожидать освобождения шины. ЦПУ запрашивает доступ к шине при выполнении инструкций записи или чтения SRAM, памяти ввода-вывода, EEPROM и интерфейса внешней шины. Более детально об арбитраже доступа к шине см. в подразделе 4.5 "Память данных".

Рисунок 5.1. Транзакция DMA

Запуск передачи

DMA-передачи стартуют только при условии обнаружения запроса на DMA-передачу. Запрос на передачу может быть инициирован программно, внешним источником (УВВ) или событием. Предусмотрена возможность раздельного выбора источника запуска передачи для каждого из DMA-каналов. Доступные источники запуска могут отличаться у разных МК, что зависит от фактического набора модулей и УВВ, присутствующих у МК. Попытка использования источника запуска передачи (полный перечень см. в 5.4.14 "TRIGSRC - источник запуска DMA-канала") для модуля и УВВ, которых нет в МК, не окажет никакого эффекта.

По умолчанию, источник запуска инициирует запуск передачи блока. Передача длится до завершения передачи одного блока, после чего канал будет ожидать появления очередного запуска и только после этого начнет передачу следующего блока. Предусмотрена возможность такой настройки, чтобы после запуска стартовала передача не блока, а пакета. Такая передача называется "single shot". Новый запуск инициирует старт передачи очередного пакета.

Если активизировать режим повтора, то для старта передачи очередного блока не требуется ожидание ее запуска - передача начнется сразу по завершении передачи предыдущего блока. Если источник запуска генерирует запрос на передачу по ходу выполняющейся передачи, данный запрос будет запомнен и выполнен сразу по завершению текущей передачи. Предусмотрена возможность запоминания только одного запроса. Это означает, что, если во время выполняющейся передачи будут сгенерировано более одного запроса, то все они будут потеряны.

Адресация

Применительно к источнику и получателю данных DMA-передачи можно раздельно выбрать следующие режимы обработки адреса источника и получателя: статический, инкрементный или декрементный. Если используется инкрементный или декрементный режим, то адрес будет соответствующим образом модифицироваться после каждого доступа. Исходный адрес источника и получателя запоминаются DMA-контроллером, а перезагрузку адресов источника и получателя можно настроить на выполнение в следующих точках:

1. по окончании передачи каждого пакета

2. по окончании передачи каждого блока

3. по окончании транзакции

4. перезагрузка не выполняется

Приоритеты каналов

В случае, если передачу одновременно запрашивают несколько каналов, применяется схема приоритетов. Программно можно задать, у скольких каналов приоритет будет фиксированным и к скольким каналам будет применена карусельная схема (Round Robin). При карусельной схеме, наименьший приоритет имеет тот канал, который последним передавал данные.

Двойная буферизация

Чтобы гарантировать непрерывность передачи, оба канала должны взаимодействовать таким образом, чтобы второй канал вступал в работу сразу после завершения передачи первым каналом и, наоборот. Этого позволяет добиться двойная буферизация. Когда передача завершается в первом канале, разрешается работа второго канала. При обнаружении запроса во втором канале, начинается передача, а по ее завершении - вновь разрешается работа первого канала.

Передача буферов

У каждого DMA-канала имеется внутренний буфер передачи, который используется при передачах пакетов размером 2, 4 и 8 байт. После запуска передачи, фактическая передача по DMA-каналу начинается при появлении в буфере передачи двух байт. При передаче 4- или 8-байтных пакетов, остальные байты будут отправляться по мере готовности их к передаче по DMA-каналу. Использование буфера позволяет снизить нагрузку на шину со стороны DMA-контроллера. После программного отключения DMA-контроллера или DMA-канала, вначале будет выполнена передача всех оставшихся в буфере данных, а затем уже будет выполнено заданное отключение. Этим гарантируется синхронизированность регистров адреса источника и получателя.

Обнаружение ошибок

DMA-контроллер поддерживает возможности обнаружения ошибок. В каждом из каналов DMA предусмотрена возможность раздельного обнаружения следующих ошибок:

1. Запись в отображаемое в памяти данных EEPROM

2. Чтение из EEPROM, когда оно отключено (переведено в экономичный режим работы).

3. DMA-контроллер или занятый канал отключен программно во время передачи

Программный сброс

DMA-контроллер и канал DMA поддерживают возможность программного сброса. После сброса DMA-контроллера, все связанные с ним регистры очищаются. Программный сброс можно выполнить, только если DMA-контроллер отключен.

Защита

Для гарантирования безопасной работы некоторые регистры защищаются на время выполнения транзакции. До тех пор пока будет установлен флаг занятости DMA-канала (CHnBUSY), пользователь имеет возможность модификации следующих регистров и их бит:

1. Регистр CTRL

2. Регистр INTFLAGS

3. Регистры TEMP

4. Биты CHEN, CHRST, TRFREQ, REPEAT регистра канала CTRL

5. Регистр TRIGSRC

Прерывания

DMA-контроллер может генерировать прерывания при обнаружении ошибки в DMA-канале или по завершении транзакции в DMA-канале. У каждого из DMA-каналов имеется отдельный вектор прерывания и отдельные флаги прерываний по обнаружению ошибки и завершению транзакции. Если функция повтора неактивна, то флаг завершения транзакции устанавливается по завершении передачи блока. Если же активизировать функцию неограниченных повторов, то флаг завершения транзакции будет устанавливаться по завершении передачи каждого блока.



Поделиться:


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

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