2019-09-04 06:30 AM
MCU is STM32F405. I write data array to output pins using DMA mem to peripheral (DM2 stream6 channel0). Trigger is TIM1 CC1 event. Also I use DMA2 stream5 channel6 for write to TIM1 registers. Trigger is TIM1 UEV event. So the writing and interrupt DMA_IT_TCIF5 appears ony once but TIM1_SR.UIF is set every time.
2019-09-04 09:54 AM
Is there any question?
JW
2019-09-04 12:23 PM
My question is why only once the interrupt appears? Update events occurs but no DMA burst writing and no interrupts generates.
2019-09-04 02:05 PM
Why do you think several interrupt should appear? Do you set DMA as circular? Is there any DMA transfer error indicated in the DMA status register?
JW
2019-09-04 02:06 PM
Is the Stream 5 circular? TC will normally occur once per DMA transfer (could involve thousands of DMA requests), once the last work is delivered.
Check for error status from the DMA unit.
2019-09-04 02:17 PM
There aren't any errors at DMA unit. DMA is normal, but UEV occurs periodically. So I think TC will occur for every UEV. It's not true?
2019-09-04 04:30 PM
TC will only fire once all available data is consumed. It can keep firing only if the DMA is in circular mode, reseting the buffer pointer/size at completion of entire buffer. This can be at a rate significantly decimated compared to the TIM triggered requests.
2019-09-05 12:54 AM
Thanks!
2019-09-05 12:55 AM
Thanks!