2021-06-28 11:39 PM
Hi There,
I'm looking for help with the SAI4 for this device. I have setup the DMA for SAI4A which is linked to BDMA Channel 2. I have defined my buffers within the D3 domain and have enabled the event on the BDMA channel to request number 15 (sai4_a from the reference manual) I still get a transfer error upon starting the DMA transfer. I have watched the training videos on BDMA,DMA and the DMAMUX, but I still think I am missing a step.
I am also having a similar issue on the TIM23_CH2 using DMA but I think if I can find my error on the SAI4 it will be a similar solution for the Timer.
Kind regards,
Kline
Solved! Go to Solution.
2021-06-30 05:24 AM
Thanks for the feedback.
It was a memory access issue. I had defined my dma buffers in the correct D2 and D3 sections but this was done in the RAM.ld file which wasn't being used by the project. I defined the sections in the Flash.ld and DMA started working.
I have both SAI and TIM23 working with the DMA now.
2021-06-28 11:46 PM
Read our and check/post the DMA registers content.
JW
2021-06-29 12:12 AM
2021-06-29 06:49 AM
BDMA should have registers like CM0AR0 which show memory addresses.
2021-06-29 07:02 AM
> The BDMA registers are not displayed in my SFRs window
Then read it out using any other means, in program, suitably displaying it (e.g. transmitting through USART into some terminal program, or storing it to memory and then displaying using the debugger).
My guess is, that the memory register points to memory region not accessible by DMA, e.g. DTCM.
JW
2021-06-30 05:24 AM
Thanks for the feedback.
It was a memory access issue. I had defined my dma buffers in the correct D2 and D3 sections but this was done in the RAM.ld file which wasn't being used by the project. I defined the sections in the Flash.ld and DMA started working.
I have both SAI and TIM23 working with the DMA now.