I am trying to use SPI with eDMA. The SPI transmission with eDMA is working properly, but I am facing issue with SPI reception with eDMA. Please see below details on issue:
eDMA is not able to transfer content from SPI RX FIFO to destination RAM location properly. After the trigger from SPI RX FIFO Drain event, DMA transaction gets completed but SPI RX FIFO pointer does not change regularly after each DMA read operation on SPI POPR register
Following configuration is used:
Check your eDMA configuration. See Application Note for eDMA using in the attachment.
Have a great day,
Pavel Chubakov
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Thanks for sharing application note on eDMA. I read the applicatiion note and also verified my eDMA configuration. You can see the eDMA configuration I made in original question. I am currently also using eDMA with other peripherals of LS1021A (like LPUART), and it works very well without any issue. I am facing the issue only with SPI and eDMA combination (SPI reception with eDMA to be specific). DMA performs complete transfer as specified by eDMA configuration, but the "SPI RX FIFO pointer" does not change regularly after each DMA read operation on "SPI POPR" register. This results in stale values transfered by DMA (because RX FIFO pointer does not change).