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

 
Пересюхтюмя


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





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





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


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





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


5.13. Описание регистров DMA-контроллера

5.13.1. CTRL - регистр управления DMA

Бит 7 6 5 4 3 2 1 0  
+0х00
ENABLE RESET - - DBUFMODE[1:0] PRIMODE[1:0]
CTRL
Чтение/запись Чт./Зап. Чт./Зап. Чт. Чт. Чт./Зап. Чт./Зап. Чт./Зап. Чт./Зап.
Начальное значение 0 0 0 0 0 0 0 0
  • Бит 7 - ENABLE: разрешение работы DMA

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

  • Бит 6 - RESET: программный сброс DMA

Установка данного бита активизирует программный сброс. Данный бит автоматически очищается по завершении сброса. Данный бит можно установить, только если DMA-контроллер отключен (ENABLE = 0).

  • Биты 5:4 - Res: Резервные биты

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

  • Биты 3:2 - DBUFMODE[1:0]: режим двойной буферизации DMA

Данные биты управляют активностью функции двойной буферизации в различных каналах в соответствии с таблицей 5.1.

Таблица 5.1. Настройки двойной буферизации DMA

DBUFMODE[1:0] Групповая конфигурация Описание
00 DISABLED Двойная буферизация отключена
01 CH01 Двойная буферизация включена у каналов 0/1
10 CH23 Двойная буферизация включена у каналов 2/3
11 CH01CH23 Двойная буферизация включена у каналов 0/1 и 2/3
  • Биты 1:0 - PRIMODE[1:0]: приоритеты DMA-каналов

Данные биты задают приоритеты внутренних каналов в соответствии с таблицей 5.2.

Таблица 5.2. Настройки приоритетов каналов DMA

PRIMODE[1:0] Групповая конфигурация Описание
00 PR0123 Обработка запросов всех каналов карусельным методом (Round Robin)
01 CH0RR123 Высший приоритет имеет канал 0, а все остальные (каналы 1, 2 и 3) обрабатываются по карусельному методу
10 CH01RR23 Высший приоритет имеет канал 0, затем - канал 1, а все остальные (каналы 2 и 3) обрабатываются по карусельному методу
11 CH0123 Высший приоритет имеет канал 0, затем - канал 1, канал 2, и, наконец, канал с самым низким приоритетом - 3

5.13.2. INTFLAGS - регистр статуса прерываний DMA

Бит 7 6 5 4 3 2 1 0  
+0х04
CH3ERRIF CH2ERRIF CH1ERRIF CH0ERRIF CH3TRNFIF CH2TRNFIF CH1TRNFIF CH0TRNFIF
NTFLAGS
Чтение/запись Чт./Зап. Чт./Зап. Чт./Зап. Чт./Зап. Чт./Зап. Чт./Зап. Чт./Зап. Чт./Зап.
Начальное значение 0 0 0 0 0 0 0 0
  • Биты 7:4 - CHnERRIF[3:0]: флаг прерывания по ошибке в DMA-канале n

Флаг CHnERRIF автоматически устанавливается при обнаружении ошибки в DMA-канале n. Запись единицы в данный бит приводит к сбросу флага.

  • Биты 3:0 - CHnTRNFIF[3:0]: флаг прерывания по завершении транзакции в DMA-канале n

Флаг CHnTRFIF автоматически устанавливается по завершении транзакции в канале n. Если активизировать неограниченное количество повторов, то данный флаг будет принимать единичное значение после завершении передачи каждого блока. Запись единицы в данный бит приводит к сбросу флага.

5.13.3. STATUS - Регистр статуса DMA

Бит 7 6 5 4 3 2 1 0  
+0х05
CH3BUSY CH2BUSY CH1BUSY CH0BUSY CH3PEND CH2PEND CH1PEND CH0PEND
STATUS
Чтение/запись Чт. Чт. Чт. Чт. Чт. Чт. Чт. Чт.
Начальное значение 0 0 0 0 0 0 0 0
  • Биты 7:4 - CHnBUSY[3:0]: флаг занятости канала DMA

Флаг CHnBUSY принимает единичное значение при старте транзакции в DMA-канале n. Данный флаг автоматически сбрасывается при отключении DMA-канала, при установке флага прерывания по завершении транзакции в DMA-канале n или при установке флага прерывания по ошибке в DMA-канале n.

  • Биты 3:0 - CHnPEND[3:0]: флаг отправки передачи по DMA-каналу

Флаг принимает единичное значение во время отправки передачи блока по DMA-каналу n. Данный флаг автоматически сбрасывается во время запуска передачи блока или при отмене передачи.

5.13.4. TEMPH - старший байт временного регистра DMTEMP

Бит 7 6 5 4 3 2 1 0  
+0х07
DMTEMP[15:8]
TEMPH
Чтение/запись Чт./Зап. Чт./Зап. Чт./Зап. Чт./Зап. Чт./Зап. Чт./Зап. Чт./Зап. Чт./Зап.
Начальное значение 0 0 0 0 0 0 0 0
  • Биты 7:0 - DMTEMP[15:8]: старший байт временного регистра DMA-контроллера

Данный регистр используется для чтения и записи 24-битных регистров DMA-контроллера. В нем запоминается второй байт 24-битного регистра, когда запись в него выполняет ЦПУ. Здесь также хранится второй байт 24-битного регистра, когда ЦПУ считывает первый байт. При необходимости данный регистр можно считать и записать из программы пользователя.

Чтение и запись 24-битного регистра требуют особого внимания. Подробности см. в 3.11 "Доступ к 16-битным регистрам".

5.13.5. TEMPL - младший байт временного регистра DMTEMP

Бит 7 6 5 4 3 2 1 0  
+0х06
DMTEMP[7:0]
TEMPL
Чтение/запись Чт./Зап. Чт./Зап. Чт./Зап. Чт./Зап. Чт./Зап. Чт./Зап. Чт./Зап. Чт./Зап.
Начальное значение 0 0 0 0 0 0 0 0
  • Биты 7:0 - DMTEMP[7:0]: младший байт временного регистра DMA-контроллера

Данный регистр используется при чтении 24- и 16-битных регистров DMA-контроллера. В нем запоминается байт 1 записываемых ЦПУ 16/24-битных регистров. Запоминание байта 1 16/24-битных регистров происходит, когда ЦПУ считывает байт 0. Данный регистр можно считывать и записывать программно.

Чтение и запись 16- и 24-битных регистров нужно выполнять с особым вниманием (см. подробности в руководстве по ядру AVR).



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