Datasheet

SAM3X / SAM3A [DATASHEET]
Atmel-11057C-ATARM-SAM3X-SAM3A-Datasheet_23-Mar-15
1138
39.6.2.19 Device DMA Channel x Control Register
Name: UOTGHS_DEVDMACONTROLx [x=1..6]
Address: 0x400AC318 [1], 0x400AC328 [2], 0x400AC338 [3], 0x400AC348 [4], 0x400AC358 [5], 0x400AC368 [6],
0x400AC378 [7]
Access: Read-write
CHANN_ENB: Channel Enable Command
0: DMA channel is disabled at and no transfer will occur upon request. This bit is also cleared by hardware when the chan-
nel source bus is disabled at end of buffer.
If LDNXT_DSC bit has been cleared by descriptor loading, the firmware will have to set the corresponding
CHANN_ENB bit to start the described transfer, if needed.
If LDNXT_DSC bit is cleared, the channel is frozen and the channel registers may then be read and/or written reliably
as soon as both UOTGHS_DEVDMASTATUS.CHANN_ENB and CHANN_ACT flags read as 0.
If a chann
el request is currently serviced when this bit is cleared, the DMA FIFO buffer is drained until it is empty, then
the UOTGHS_DEVDMASTATUS.CHANN_ENB bit is cleared.
If LDNXT_DSC bit is set at or after this bit clearing, then the currently loaded descriptor is skipped (no data transfer
occurs) and the next descriptor is immediately loaded.
1: UOTGHS_DEVD
MASTATUS.CHANN_ENB bit will be set, thus enabling DMA channel data transfer. Then any pending
request will start the transfer. This may be used to start or resume any requested transfer.
LDNXT_DSC: Load Next Channel Transfer Descriptor Enable Command
0: no channel register is loaded after the end of the channel transfer.
1: the channel controller loads the next descriptor after the end of the current transfer, i.e. when
UOTGHS_DEVDMASTATUS.CHANN_ENB bit is reset.
If CHANN_ENB bit is cleared, the next descriptor is immediately loaded upon transfer request.
DMA Channel Control Command Summary
31 30 29 28 27 26 25 24
BUFF_LENGTH
23 22 21 20 19 18 17 16
BUFF_LENGTH
15 14 13 12 11 10 9 8
––––––––
76543210
BURST_LCK DESC_LD_IT END_BUFFIT END_TR_IT END_B_EN END_TR_EN LDNXT_DSC CHANN_ENB
Value Name Description
0STOP_NOW Stop now
1 RUN_AND_STOP Run and stop at end of buffer
2 LOAD_NEXT_DESC Load next descriptor now
3 RUN_AND_LINK Run and link at end of buffer