Is it possible to restart a DMA transfer without software intervention ?

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
User15071
Level 1
Level 1
Hi,

Using a XMC4400, I can periodically trigger a transfer of VADC measurements to SRAM via DMA (the trigger is a timer). However,
due to hard realtime constraints I cannot generate an interrupt at the end of the transfer in order to re-program the DMA channel, so
I must rely on the hardware to do it for me. This seems to be possible reading the user manual - I even tried to use a linked-list with 2
elements (one to to read the values and the second to acknowledge the "IRQ") but to no avail (the transfer of the values does not work
anymore but that could be the due to another issue of course).
My question is: can I re-start a DMA transfer without involving software and if so - how?

Thanks in advance!
0 Likes
1 Reply
jferreira
Employee
Employee
10 sign-ins 5 sign-ins First like received
Hi,

Yes, you can use multiblock transfers.
Have a look at example in XMClib, XMC_Peripheral_Library_v2.1.24\XMCLib\examples\XMC4800_series\DMA\DMA_RING_BUFFER. The example uses linked lists.


Regards,
Jesus
0 Likes