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

 
Пересюхтюмя


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





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





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


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





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


5.5. Адресация

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

  • по окончании передачи каждого пакета
  • по окончании передачи каждого блока
  • по окончании транзакции
  • перезагрузка не выполняется

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

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

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

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

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

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

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

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

  • Запись в отображаемое в памяти данных EEPROM
  • Чтение из EEPROM, когда оно отключено (переведено в экономичный режим работы).
  • DMA-контроллер или занятый канал отключен программно во время передачи

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

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

5.11. Защита

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

  • Регистр CTRL
  • Регистр INTFLAGS
  • Регистры TEMP
  • Биты CHEN, CHRST, TRFREQ, REPEAT регистра канала CTRL
  • Регистр TRIGSRC

5.12. Прерывания

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



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