2.2 Message
A DMA message consists of one or more transactions. The size of the DMA message is determined by the value programmed in the Source Message Size (DMAxSSZ) and Destination Message Size (DMAxDSZ) registers. The source and destination sizes can be different, but must be a multiple of each other for correct operation. The number of bytes transferred by the DMA module is determined by the largest of the two sizes.
For example, if the DMAxSSZ is 2 and DMAxDSZ is 6, then each message will consist of two transactions, and the complete DMA process will consist of three messages, which means a total of six bytes will be transferred. Table 2-1 shows examples of message size configuration values based on various DMA operations.
DMA Operation | DMAxSSZ | DMAxDSZ | Comment |
---|---|---|---|
Reading the values from UART RX register and storing the values in a memory buffer | 1 | N | N equals the number of bytes to be stored in the destination buffer |
Reading ADC results registers and storing the values in a memory buffer | 2 | 2*N | N equals the number of results to be stored in the memory buffer |
Loading PWM duty cycle values from a memory table | 2*N | 2 | N equals the number of duty cycle values to be loaded from the memory table |
Transmitting data bytes from a memory table through UART | N | 1 | N equals the number of bytes to be transmitted from the memory table |