5.14.2. CTRLB - регистр B управления DMA-каналом
Бит |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
+0х04 |
CHBUSY |
CHPEND |
ERRIF |
TRNIF |
ERRINTLVL[1:0] |
TRNINTLVL[1:0] |
|
CTRLB |
Чтение/запись |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Чт./Зап. |
Начальное значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
- Бит 7- CHBUSY - флаг занятости DMA-канала
При чтении флага CHBUSY возвращается единица, когда DMA-канал начинает DMA-транзакцию. Данный флаг автоматически сбрасывается при отключении DMA-канала, при установке фага прерыванию по завершению транзакции в DMA-канале или при установке флага прерывания по ошибке в канале.
- Бит 6 - CHPEND - флаг отправки передачи по DMA-каналу
Флаг CHPEND считывается с единичным значением по время отправки по DMA-каналу передачи блока. Данный флаг автоматически сбрасывается при запуске передачи или при отмене передачи.
- Бит 5 - ERRIF - флаг прерывания по ошибке в DMA-канале
Флаг ERRIF устанавливается при обнаружении в DMA-канале условия прерывания. Опционально, одновременно с установкой этого флага, может генерироваться соответствующее прерывание. Поскольку у прерывания по ошибке в DMA-канале и прерывания по завершению транзакции в DMA-канале предусмотрен один и тот же вектор, флаг ERRIF автоматически не сбрасывается при переходе на вектор прерываний. Для сброса данного флага необходимо выполнить операцию записи по его адресу единицы.
- Бит 4 - TRNIF - флаг прерывания завершению транзакции в DMA-канале n
Флаг TRNIF устанавливается после завершения транзакции в DMA-канале. Опционально, одновременно с этим может генерироваться прерывание. Если режим повтора не активен, то установка флага TRNIF и завершение транзакции происходят после передачи блока. Если режим неограниченного повтора активен, то флаг TRNIF также устанавливается после передачи каждого блока.
Поскольку прерывание по завершению транзакции в DMA-канале и прерывание по ошибке в DMA-канале используют общий вектор, то автоматический сброс флага TRNIF при переходе на вектор прерываний не выполняется. Данный флаг сбрасывается путем записи единицы по его адресу.
- Биты [3:2] - ERRINTLVL[1:0]: уровень прерывания по ошибке в DMA-канале
С помощью данных бит можно активизировать прерывание по ошибке передачи в DMA-канале и выбрать его уровень (см. раздел 12 "Прерывания и программируемый многоуровневый контроллер прерываний"). После разрешения прерывания, оно будет генерироваться при возникновении условий, которые устанавливают флаг ERRIF.
- Биты [1:0] - TRNINTLVL[1:0]: уровень прерывания по завершению транзакции в DMA-канале
Данные биты управляют активностью прерывания по завершению транзакции в DMA-канале и его уровнем (см. раздел 12 "Прерывания и программируемый многоуровневый контроллер прерываний"). Запуск активизированного прерывания происходит при возникновении условий, приводящих к установке флага TRNIF.
|