I've been stuck trying to get this to work for days now. I am attempting to do an EDMA transfer that loops back onto itself. I've tried using the EDMA_SetModulo method, along with various other methods, and I cannot find any decent examples of this.
I want to start an EDMA transfer, that will complete the major loop a specified number of times. (This is going to be used for Audio to send data to the speaker for alarms and I want to implement a circular buffer that will loop as many times as I specify.)
Based on the documentation I've read, this should cause the major loop to run twice.
DMAMUX_EnableAlwaysOn(EXAMPLE_DMAMUX, 0, true);
DMAMUX_SetSource(EXAMPLE_DMAMUX, 0, 63);
EDMA_CreateHandle(&g_EDMA_Handle, EXAMPLE_DMA, 0);
EDMA_SetCallback(&g_EDMA_Handle, EDMA_Callback, NULL);
EDMA_InstallTCDMemory(&g_EDMA_Handle, tcd, 2U);
tcd->BITER = 2;
tcd->CITER = 2;
tcd->SLAST = -32;
Hi Tristen Harr,
Thank you for your interest in NXP Semiconductor products and
for the opportunity to serve you.
In actually, I'm still not very clear with your question, so I was wondering if you can share the block diagram of DMA transfer, then I can give some advice to you to do it.
Looking forward to your reply.