2020-12-09 06:25 AM
Hi all,
I seem not to be able to achieve periodic DMA transfers using DMAMux periodic triggering functionality.
I read on SPC574Kx reference manual that (§7.3.9.2)
and that (Table44):
Now, suppose I have configured PIT_0 channel 1 to be my periodic source, I should then set my eDMA transfer control descriptor data in DMA_0.TCD[9]
my DMACHMUX config is:
DMACHMUX_1.CHCONFIG[1].B.ENBL = FALSE; //§ 25.3.1
DMACHMUX_1.CHCONFIG[1].B.SOURCE = 0;
DMACHMUX_1.CHCONFIG[1].B.TRIG = TRUE;
DMACHMUX_1.CHCONFIG[1].B.ENBL = TRUE;
Am I correct?
Unfortunately I cannot get the dma channel service to start upon PIT timer expiration.
What am I missing?
Is there a configuration example available somewhere?
Thanks in advance,
M
Solved! Go to Solution.
2021-01-11 02:34 AM
Hello,
your analysis is correct:
In the coming update (beginning of February) of SPC5Studio (link) there will be a specific demo about DMA triggering configuration and usage.
The name of the demo is:
Attached the main.c for this demo.
Regards,
Giuseppe
2020-12-09 08:55 AM
my fault:
DMACHMUX_1.CHCONFIG[1].B.SOURCE = 59U;
// just use an "ALWAYS ON" source on the specific DMAMUX.... (see §7.3.9.3 Table43)
// the always on source serves as a gating signal and to allow
// trigger pulses form PIT_0.Ch1 start the eDMA channel
;)
2021-01-11 02:34 AM
Hello,
your analysis is correct:
In the coming update (beginning of February) of SPC5Studio (link) there will be a specific demo about DMA triggering configuration and usage.
The name of the demo is:
Attached the main.c for this demo.
Regards,
Giuseppe