Oct 01, 2019
06:41 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Oct 01, 2019
06:41 AM
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!
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!
- Tags:
- dma vadc xmc4400
- IFX
1 Reply
Oct 04, 2019
05:25 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Oct 04, 2019
05:25 AM
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
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