I have an application that requires me to trigger a DMA transfer every N software loop cycles. One core is running a CIC filter and the DMA signals the second core to run the comb part. The loop is running a very optimized DSP algorithm and I am looking for ways to not have to deal with the overhead of having to keep track of a counter and launching the DMA.
Browsing the datasheet I have found that a PWM can trigger a DMA transfer on wrap but I do not see a way to increment the accumulator in the PWM channel in software. The only option I see is putting a PWM channel into DIVMODE=RISE and then physically connecting the PIN B to an output pin and pulsing that in software.
Would this work? Is there a better way to produce a DMA transfer every N software loops?
Browsing the datasheet I have found that a PWM can trigger a DMA transfer on wrap but I do not see a way to increment the accumulator in the PWM channel in software. The only option I see is putting a PWM channel into DIVMODE=RISE and then physically connecting the PIN B to an output pin and pulsing that in software.
Would this work? Is there a better way to produce a DMA transfer every N software loops?
Statistics: Posted by simont153 — Wed Jul 09, 2025 4:29 pm