SPRUII0F May 2019 – June 2024 TMS320F28384D , TMS320F28384D-Q1 , TMS320F28384S , TMS320F28384S-Q1 , TMS320F28386D , TMS320F28386D-Q1 , TMS320F28386S , TMS320F28386S-Q1 , TMS320F28388D , TMS320F28388S
The source and destination end pointers must be set to the last address for the transfer (inclusive). Because the peripheral pointer does not change, it simply points to the peripheral's data register. Both the primary and alternate sets of pointers must be configured.
The primary control word at offset 0x088 and the alternate control word at offset 0x288 are initially programmed the same way.
Field in DMACHCTL | Bits | Value | Description |
---|---|---|---|
DSTINC | 31:30 | 0 | 8-bit destination address increment |
DSTSIZE | 29:28 | 0 | 8-bit destination data size |
SRCINC | 27:26 | 3 | Source address does not increment |
SRCSIZE | 25:24 | 0 | 8-bit source data size |
reserved | 23:22 | 0 | Reserved |
DSTPROT0 | 21 | 0 | Privileged access protection for destination data writes |
reserved | 20:19 | 0 | Reserved |
SRCPROT0 | 18 | 0 | Privileged access protection for source data reads |
ARBSIZE | 17:14 | 3 | Arbitrates after 8 transfers |
XFERSIZE | 13:4 | 63 | Transfer 64 items |
NXTUSEBURST | 3 | 0 | N/A for this transfer type |
XFERMODE | 2:0 | 3 | Use Ping-Pong transfer mode |
In this example, it is not important if the peripheral makes a single request or a burst request. Because the peripheral has a FIFO that triggers at a level of 8, the arbitration size is set to 8. If the peripheral does make a burst request, then 8 bytes are transferred, which is what the FIFO can accommodate. If the peripheral makes a single request (if there is any data in the FIFO), then one byte is transferred at a time. If it is important to the application that transfers only be made in bursts, then the Channel Useburst SET[8] bit should be set in the DMA Channel Useburst Set (DMAUSEBURSTSET) register.