13.5.6 Descriptor Write Back
The descriptor-based operation offers a descriptor write-back capability, which allows the Payload Pointer (PP) portion of the descriptor to be dynamically updated (i.e., incremented or decremented) during operation. The write back occurs after the transaction is completed, provided that the Source Address/Destination Address (SA/DA) mode is not zero. After incrementing the Payload Pointer, the DMA controller writes back the updated value to the descriptor, ensuring that the descriptor’s Payload Pointer reflects the current position in memory. With its jump capability using DPO, the descriptors can alternatively be fetched and updated to address a database structure with consecutive locations without having to explicitly pre-load all the descriptors corresponding to each address location. This feature is particularly suitable in any memory-constrained system because it enables the efficient use of system memory.
Figure 13-12 illustrates the use of descriptor write-back capability in the Gather/Scatter operation commonly utilized in multi-sampling ADC applications utilizing three ADC channels which output conversion results onto the same SFR register. By selecting increment or decrement for the address mode(s), SAMODE[1:0]/DAMODE[1:0], an extra memory cycle is generated to update the PP portion of the descriptor after the data transfer phase of the operation is completed. This allows the updated descriptor to be reused again at the next iteration.
- DPO1M1 = DPO1M0 = 1 for +4, SIZE1[1:0] = 10 for 32-bit transfer
- DPO2M1 = DPO2M0 = 1 for +4, SIZE2[1:0] = 10 for 32-bit transfer
- DPO3M1 = DPO3M0 = 3E for -8, SIZE2[1:0] = 10 for 32-bit transfer
