Этот регистр содержит счетчик передачи. DMAxCNT + 1 представляет число запросов DMA , которое канал должен обслужить прежде, чем пересылка блока данных считается законченной.
То есть значение DMAxCNT ‘0’ передаст один элемент. Значение регистра DMAxCNT независимо от размера данных передачи (SIZE бита в регистре DMAxCON). Запись в этот регистр, в то время как канал x разрешен (то есть, активный) может привести к непредсказуемому поведению и ее нужно избегать.
В дополнение к регистрам индивидуальных канала DMA, Контроллер DMA имеет три регистра состояния DMA.
•DSADR: Регистр адреса Самого недавнего DMADPSRAM
Это 16-разрядный, только для чтения, регистр состояния для всех каналов DMA. Он фиксирует адрес самого последнего доступа DPSRAM (чтение или запись). Он очищается при Сбросе и поэтому, содержит значение ‘0x0000’ если читается до любой деятельности DMA. Этот регистр доступен в любое время, но прежде всего предназначен для помощи при отладке.
• DMACS0: Регистр Состояния 0 Контроллера DMA
Это 16-разрядный, только для чтения, регистр состояния содержит флаги коллизии Записи DPSRAM и Периферии, XWCOLx и PWCOLx, соответственно. См. Раздел 22.10" Коллизии Записи Данных” для более детальной информации.
• DMACS1: Регистр Состояния Контроллера DMA 1
Это 16-разрядный, только для чтения, регистр состояния указывает, какой канал DMA был последний раз активен и обеспечивает состояние режима Ping-Pong каждого канала DMA, указывая, какой регистр Смещения Адреса Начала DPSRAM выбран (DMAxSTA или DMAxSTB).
Регистр 1. DMAxCON: Регистр Управления Канала DMA x
бит 15 CHEN: бит разрешения канала
1 = канал разрешен
0 = канал запрещен
бит 14 SIZE: бит размера передаваемых данных
1 = байт
0 = слово
бит 13 DIR: бит направления передачи данных
1 = чтение из DPSRAM, запись в периферию
0 = чтение из периферии, запись в DPSRAM
бит 12 HALF: Выбор когда должно формироваться прерывания DMA
1 = Прерывание формируется когда половина блока данных была перемещена
0 = Прерывание формируется когда весь блок данных был перемещён
бит 11 NULLW: Null Data Peripheral Write Mode Select bit
1 = Null data write to peripheral in addition to DPSRAM write (бит DIR должен быть очищен)
0 = Normal operation
бит 10-6: Не реализованы: читаются как ‘0’
бит 5-4 AMODE<1:0>: Выбор режима адресации DMA канала
11 = зарезервировано
10 = Периферийный косвенный режим адресации
01 = Регистровый косвенный режим без постинкримента
00 = Регистровый косвенный режим с постинкриментом
бит 3-2 Не реализован: читаются как ‘0’
бит 1-0 MODE<1:0>: Выбор режима работы канала DMA
11 = Одиночный, Ping-Pong режим включить (один блок передается из/в каждый DMA RAM буфер)
10 = Непрерывный Ping-Pong режим включить
01 = Одиночный Ping-Pong режим отключить
00 = Непрерывный, Ping-Pong режим отключить
Регистр 2. DMAxREQ: Регистр Выбора IRQ Канала DMA x
бит 15 FORCE: бит вызова DMA передачи (1)
1 = вызывает одну DMA передачу (ручной режим)
0 =автоматическая передачи DMA инициируются DMA запросами
бит 14-7 Не реализован: читаются как ‘0’
бит 6-0 IRQSEL<6:0>: биты выбора номера IRQ периферии DMA
0000000 = INT0 – Внешнее прерывание 0
0000001 = IC1 – Input Capture 1
0000010 = OC1 – Output Compare 1
0000101 = IC2 – Input Capture 2
0000110 = OC2 – Output Compare 2
0000111 = TMR2 – Timer 2
0001000 = TMR3 – Timer 3
0001010 = SPI1 – перемещение завершено
0001011 = UART1RX – UART1 Приёмник
0001100 = UART1TX – UART1 Передатчик
0001101 = ADC1 – ADC1 преобразование завершено
0010101 = ADC2 – ADC2 преобразование завершено
0011110 = UART2RX – UART2 Приёмник
0011111 = UART2TX – UART2 Передатчик
0100001 = SPI2 Перемещение завершено
0100010 = ECAN1 – RX данные получены
0110111 = ECAN2 – RX данные получены
0111100 = DCI – CODEC Transfer Done
1000110 = ECAN1 – TX данные отправлены
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.