The objective I have, is to transfer packets of 8 ADC values by the DMA to a cyclical buffer e.g. of length 1024. The data transfer to the cyclical buffer should be able to stop at any place of whole 8 ADC values and be rerouted to a second Buffer to be filled cyclically.
I tried using BURST_SIZE of 8 (16bit values) and TRANSFER_SIZE of 128 Bursts (8*128=1024). When I want to switch the buffer I changed the SRC_BEG_ADDR_SHADOW and the SRC_ADDR_SHADOW. And since these get read only when the TRANSFER_COUNT is zero I wrote “zero” to the TRANSFER_COUNT. Unfortunately I noticed that the value I wrote to TRANSFER_COUNT was ignored, though stated as R/W value in documentation. So the DMA always continued writing until the end of the buffer before switching. Which is not as desired.
Do you have some advice how this can be done?
Regards,
Bernd