How to get DMA working for the last DWORDs from SDMMCx FIFO?
Hello,
I am working on SDMMC ReadBlock function using DMA with peripheral flow control enabled. When I try to transfer 512 Bytes block from the SD Card, I have last 3 DWORDs "mising" (CNDTR is 0xFF82 instead of expected 0xFF00). These DWORDs are transfered by DPSM (its DCOUNT is zero), but staying in FIFO, not transfered by DMA. So I have to transfer them by SW, instead by DMA.
Is there anyone, who knows how to persuade DMA to completely finish the transfer?
Some details about my setup:
- memory buffer is 32 Bytes aligned
- DMA burst transfer is INCR4 on both sides
- SDMMC hardware flow enabled
- transfer is finished with DATAEND flag
Thank you for any help,
Jarda