DMA для dsPIC. Контроллер Прямого доступа к памяти (DMA). DMA контроллер. Регистр Смещения Адреса Начала A DPSRAM Канала DMA x, страница 5

В течение цикла передачи данных, контроллер DMA также продолжает выносить решение задерживать  или разрешить последующие запросы DMA.

Figure 22-3: DMA Data Transfer Пример

 

22.5 УСТАНОВКА DMA

Для передачи данных DMA, каналы DMA и периферийные устройства должны быть соответственно конфигурированы:

• каналы DMA должен быть связаны с периферийными устройствами (см. Раздел 22.5.1)

• Периферийные устройства должны быть должным образом конфигурировано (см. Раздел 22.5.2)

• адрес начала DPSRAM данных должен быть инициализирован (см. Раздел 22.5.3)

• Счетчик передачи DMA должен быть инициализирован (см. Раздел 22.5.4)

• Соответствующая адресация и операционные режимы должен быть выбраны (см. Раздел 22.6)

22.5.1 Связывание Канала DMA с Периферией

Канал DMA должен знать к какому периферийному адресу обращаться, чтобы читать от или записывать в него, и когда делать это. Эта информация конфигурируется в Регистре адреса Периферии Канала DMA x (DMAxPAD) и Регистре Выбора IRQ Канала DMA x (DMAxREQ), соответственно.

Таблица 22-1 показывает, какие значения должны быть записаны в эти регистры, чтобы связать специфическое периферийное устройство с данным каналом DMA.

Если два канала DMA выбирают то же самое периферийное устройство как источник их запроса DMA, оба канала получают запрос DMA одновременно. Однако, сначала самый высокоприоритетный канал выполняет передачу, оставляя другой канал задерживаться. Эта ситуация обычна, где один запрос DMA используется, чтобы переместить данные и с и на периферийное устройство (например. SPI). Два канала DMA используются. Один распределен для чтения периферии, а другой для записи данных периферии.

Оба используют тот же самый запрос DMA.

Если регистр DMAxPAD инициализирован к значению, не перечисленному в Таблице 1-1, записи канала DMA к этому периферийному адресу будут игнорироваться. чтения канала DMA из этого адреса приведут к чтению ‘0’.

Table 22-1: DMA Channel to Peripheral Associations

22.5.2 Конфигурация периферии

Второй шаг в процессе установки DMA должен должным образом конфигурировать DMA - способные периферийные устройства для операции DMA. Таблица 22-2 основы требования конфигурации для DMA - способных периферийных устройств.

Table 22-2: ConfigurationConsiderationsforDMA-ReadyPeripherals

ECAN

Сделать в виде таблицы!!!!!!!!!!!!

ECAN буфера распределяются в DMA RAM. Полный размер зоны буферов CAN и FIFO в DMA RAM определяется пользователем и должен быть определен установкой битов размера Буфера DMA, DMABS <2:0> в ECAN регистре Управлении FIFO (C1FCTRL). Типовой код показан в Примере 22-8.

Data Converter Interface (DCI)

The DCI must be configured to generate an interrupt for every buffered data word by setting Buffer Length Control bits (BLEN<1:0>) to ‘00’ in the DCI Control 2 (DCICON2) register. The same DCI interrupt must be used as the request for two DMA channels to support Rx and Tx data transfers.

If the DCI module is operating as Master and only receiving data, the second DMA channel must be used to send dummy transmit data. Sample code is shown in Example 22-9.

10-bit/12-bit Analog-to-Digital Converter (ADC)

Когда ADC используется с DMA в режиме Peripheral Indirect, биты Нормы{Разряд;Скорость} Приращения для DMA Адреса (SMPI <3:0>) в регистре Управления ADCx 2 (ADCxCON2), и номер Местоположений Буфера DMA в Аналоговые Входные (DMABL <2:0>) биты в регистре Управления ADCx 4 (ADCxCON4), должны быть установлены должным образом. Также, бит режима Buffer Build DMA (ADDMABM) в регистре Управления ADCx 1 (ADxCON1) должен быть должным образом установлен для генерации адресов ADC. См. Раздел 22.6.6.1" Поддержка ADC Генерации адресов DMA для детальной информации. Типовой код показывают в Примере 22-5 и Примере 22-7.

SerialPeripheralInterface (SPI)