- •Отличительные особенности микроконтроллеров at91 на базе ядра arm® Thumb®
- •. Описание
- •2. Краткий обзор конфигурации семейства at91sam7s
- •3. Структурная схема
- •4. Назначение выводов
- •5. Назначение внешних выводов для различных корпусов
- •6. Питание
- •7. Порты ввода-вывода
- •8. Архитектура ядра процессора
- •9. Память
- •10. Системный контроллер
- •10.1 Организация памяти системного контроллера
- •10.2 Контроллер сброса
- •10.3 Тактовый генератор
- •10.4 Контроллер управления потребляемой мощностью
- •Расширенный контроллер прерываний и модуль внутрисхемной отладки
- •Таймеры, контроллер портов ввода-вывода и контроллер режимов стабилизатора напряжения питания
- •11. Периферийные модули
- •11.1 Организация памяти периферийных модулей
- •11.2 Дополнительные функции портов ввода-вывода
- •11.3 Функции портов pa0…pa31
- •11.4 Идентификаторы периферийных модулей
- •11.5 Последовательный периферийный интерфейс
- •Двухпроводной интерфейс, usart, spi
- •11.9 Таймер-счетчик (tc)
- •Шим контроллер, usb, ацп
- •12. Обзор процессора arm7tdmi
- •13. Отличительные способности средств отладки и тестирования Описание и структурная схема
- •13.3 Примеры применения
- •13.4 Описание выводов для отладки и тестирования
- •13.5 Функциональное описание
- •14. Контроллер сброса (rstc) Обзор и структурная схема
- •14.3 Функциональное описание
- •14.4 Пользовательский интерфейс контроллера сброса
- •15. Таймер реального времени (rtt)
- •15.3 Функциональное описание
- •15.4 Пользовательский интерфейс таймера реально времени
- •16. Интервальный таймер (pit)
- •16.3 Функциональное описание
- •16.4 Пользовательский интерфейс интервального таймера
- •17. Сторожевой таймер (wdt)
- •17.3 Функциональное описание
- •17.4 Пользовательский интерфейс сторожевого таймера
- •18. Контроллер режимов стабилизатора напряжения (vreg)
- •19. Контроллер памяти (mc)
- •19.3 Функциональное описание
- •19.4 Пользовательский интерфейс контроллера памяти
- •20. Контроллер встроенной флэш-памяти (efc)
- •20.3 Пользовательский интерфейс контроллера встроенной флэш-памяти
- •21. Интерфейс программирования флэш-памяти (ffpi)
- •21.3. Последовательный интерфейс программирования флэш-памяти
- •22. Стартовый загрузчик at91sam7 (бут загрузчик)
- •23. Контроллер пдп (dma) периферийных модулей
- •23.3 Функционирование контроллера dma
- •23.4 Контроллер пдп (pdc). Интерфейс работы
- •24. Расширенный Контроллер Прерываний (aic)
- •24.6 Особенности контроллеров at91 серии
- •24.7 Функциональное описание
- •24.8 Контроллер прерываний aic. Интерфейс пользователя
- •25. Тактовый генератор
- •26. Контроллер управления потребляемой мощности (pmc)
- •26.5 Контроллер тактовых сигналов периферийных модулей (Peripheral Clock Controller)
- •26.6 Контроллер программно управляемых внешних тактовых сигнала
- •6.7 Последовательность программирования
- •26.8 Переключение тактовых сигналов
- •26.9 Регистры контроллера управления потребляемой мощности
- •27. Модуль внутрисхемной отладки (dbgu)
- •27.4. Работа уапп (uart)
- •27.5 Пользовательский интерфейс модуля внутрисхемной отладки
- •28. Контроллер параллельного ввода-вывода
- •8.5 Функциональное описание
- •28.7. Пользовательский интерфейс контроллера параллельного ввода - вывода
- •9. Последовательный периферийный интерфейс (spi)
- •29.6 Функциональное описание
- •29.7 Пользовательский интерфейс последовательно - параллельного интерфейса (spi)
- •30. Двухпроводной интерфейс
- •30.5 Функциональное описание
- •30.6. Пользовательский интерфейс двухпроводного интерфейса
- •33. Таймер-счетчик (тс)
- •33.5 Функциональное описание
- •33.6 Пользовательский интерфейс таймера-счетчика (тс)
- •34. Контроллер широтно-импульсной модуляции (шим)
- •34.5 Функциональное описание
- •34.6 Пользовательский интерфейс шим-контроллера (pwm)
- •35. Порт usb-устройства (udp)
- •35.5. Функциональное описание
- •35.5.2.8 Транзакция "Статус"
- •35.6. Пользовательский интерфейс usb порта (udp)
- •36. Аналогово-цифровой преобразователь (ацп)
- •36.5 Функциональное описание
- •36.6 Пользовательский интерфейс ацп
23. Контроллер пдп (dma) периферийных модулей
23.1 Обзор
Контроллер периферийных модулей (PDC) пересылает данные между последовательными периферийными модулями (UART, USART, SSC, SPI, MCI) и памятью, как встроенной, так и внешней без участия процессора. Это значительно сокращает число циклов для пересылки данных, что улучшает производительность и уменьшает энергопотребление микроконтроллера.
Каналы PDC выполнены парами. Каждая пара отведена под конкретный периферийный модуль (UART, USART, SSC или SPI). Один канал в паре является приемным каналом, а другой - передающим.
Интерфейс работы с каналами контроллера PDC включен в пространство памяти каждого периферийного модуля. Он включает в себя:
32-х битный регистр указателя памяти
16-ти битный регистр счетчика передачи
32-х битный регистр 2-ого указателя памяти
16-ти битный регистр 2-го счетчика передачи
После пересылки данных формируется прерывание пересылки соответствующим периферийным модулем.
23.2. Структурная схема
Рис.23-1.
Структурная схема
23.3 Функционирование контроллера dma
23.3.1 Конфигурация
Интерфейс работы с каналами PDC позволяет конфигурировать и управлять пересылкой данных по каждому каналу. Обращение к каналу PDC контроллера производится через область обращения к периферийному модулю (со смещением 0х100).
Для одного периферийного модуля отводится четыре 32-х битных регистра-указателя (RPR, RNPR, TPR и TNPR) и четыре 16-ти разрядных регистра-счетчика (RCR, RNCR, TCR и TNCR).
Размер буфера (количество пересылок) устанавливается внутренним 16-ти битным регистром счетчика пересылок. В любой момент можно прочесть количество пересылок, оставшихся для каждого канала.
Базовый адрес памяти устанавливается 32-х битным указателем памяти указанием первого адреса доступа к памяти. В любой момент можно прочесть расположение в памяти следующей пересылки и количество оставшихся пересылок. Контроллер PDC имеет специальные регистры статуса, показывающие доступна или нет пересылка для каждого канала. Состояние каждого канала (пересылка разрешена/запрещена) определяется статусным регистром периферийных модулей. Пересылка может быть разрешена и/или запрещена установкой флагов TXTEN/TXTDIS и RXTEN/RXTDIS в регистре контроля пересылки (Transfer Control Register) контроллера PDC. Эти управляющие биты разрешают чтение регистров указателей и счетчиков без риска их изменения.
Контроллер PDC выставляет флаги статуса (ENDRX, ENDTX, RXBUFF и TXBUFE) периферийных модулей, читаемые через их статусные регистры.
Флаг ENDRX устанавливается, когда регистр PERIPH_RCR достигает нуля.
Флаг RXBUFF устанавливается, когда оба регистра PERIPH_RCR и PERIPH_RNCR достигают нуля.
Флаг ENDTX устанавливается, когда регистр PERIPH_TCR достигает нуля.
Флаг TXBUFE устанавливается, когда оба регистра PERIPH_TCR и PERIPH_TNCR достигают нуля.
Эти статусные флаги описываются в регистре статуса периферийного модуля.
23.3.2 Указатели памяти
Каждый периферийный модуль подключается к контроллеру PDC через приемный и передающий канал. Каждый канал имеет встроенный 32-х битный указатель памяти. Каждый указатель памяти указывает на позицию в любой части пространства памяти (встроенной памяти или внешней памяти, подключаемой через шинный интерфейс).
В зависимости от типа пересылки (байт, полслова или слово) указатель памяти увеличивается на 1, 2 или 4 соответственно для каждого типа пересылки.
Если указатель памяти изменен во время работы PDC контроллера, адрес пересылки изменяется и PDC контроллер начинает пересылку, используя новый адрес.
23.3.3 Счетчики пересылок
Для каждого канала имеется 16-ти битный счетчик пересылок, используемый для подсчета размера уже переданного блока по данному каналу. Эти счетчики автоматически декрементируются после каждой пересылки данных. По достижению нуля счетчиком пересылка завершается и PDC контроллер прекращает передачу данных.
Если следующий регистр-счетчик равен нулю, PDC отключает триггер во время активации флага окончания пересылки по соответствующему периферийному модулю.
Если счетчик изменен во время работы PDC контроллера, число пересылок изменяется и PDC контроллер подсчитывает пересылки, используя новое значение.
Программирование вторых регистров счетчиков/указателей позволяет организовать непрерывность буферов. Счетчики декрементируются после каждой пересылки данных, как описано выше. Но как только счетчик пересылок достигает нуля, значения 2-рых счетчиков/указателей загружаются в регистры счетчиков/указателей.
В каждом канале имеются два статусных флага, индицирующих окончание текущего буфера (ENDRX, ENDTX) и окончание обоих текущего и следующего буферов (RXBUFF, TXBUFE). Эти флаги непосредственно отображены в периферийный статусный регистр и могут формировать запросы прерываний для контроллера прерываний AIC.
Эти флаги автоматически сбрасываются при записи в любой из регистров-счетчиков.
Примечание: После переноса значения из 2-го регистра-счетчика в основной регистр-счетчик 2-ой регистр-счетчик очищается.
23.3.4 Пересылка данных
Периферийные триггеры PDC производят пересылку, используя сигналы передачи (TXRDY) и приема (RXRDY).
При получении периферийным модулем внешних данных (первого символа) формируется сигнал готовности приема для PDC, производящий запросы доступа к системной шине. После получения доступа, PDC начинает чтение периферийного регистра приема (Receive Holding Register) RHR а затем производит запись в память. После каждой пересылки соответствующий указатель памяти инкрементируется, а число оставшихся пересылок декрементируется. После достижения размера блока памяти посылается сигнал к периферийному модулю и пересылка прекращается.
Для передающей пересылки, процедура аналогична, только в обратном порядке.
23.3.5 Приоритеты запросов пересылок
Контроллер DMA обрабатывает запросы пересылок по каждому каналу согласно приоритетам.
Если одновременно поступают запросы одного типа (прием или передача), приоритет определяется номером периферийного модуля.
Если запросы пересылок поступают не одновременно, то они обрабатываются в порядке поступления. Запросы приемников обрабатываются в первую очередь.
