cancel
Showing results for 
Search instead for 
Did you mean: 

SDIO/SDMMC DMA request mapping

Peter Flox
Associate II
Posted on November 09, 2015 at 18:23

Hi,

I have recently got my SD card running on an STM32F7 with the SDMMC (with DMA) and came across one issue. The DMA request mapping in the Reference Manual (Table 25. DMA2 request mapping) indicates two streams for this peripheral, stream 3 and stream 6. As neither of them is tagged with RX or TX, I thought I only need one (SDMMC is only receiving OR transmitting anyway).

After some fiddling it turns out that stream 3 works only for RX and stream 6 only for TX. That messes up my project a bit because I only planned to sacrifice one stream for it (stream 6 is already used by SPI6 in my case).

Can anybody confirm this is indeed true? Or did I miss something and I actually can use only one stream for RX and TX alternating?

Best regards,

Andre

PS: STM32F4 manual has the same issue.

#stm32f7-dma-sdio-sdmmc-requests
3 REPLIES 3
Posted on November 09, 2015 at 18:43

I'm pretty sure the F4 only uses ONE DMA stream, you choose the one of the two that's not conflicting with other potential uses.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
John F.
Senior
Posted on November 10, 2015 at 09:32

Building an SD card project in an IDE mindlessly using the wizards gave me:

STM32F4

DMA Rx Number 2, Stream 3, Channel 4

DMA Tx Number 2 Stream 6, Channel 4

STM32F7

same.

All with low priority.

I think you need two streams.

stm322399
Senior
Posted on November 10, 2015 at 10:18

Be assured that using only DMA2 / Stream3 / Channel 4 is enough to make SDIO working for either RX or TX (on F429).

IMHO the other channel is available even while SDIO is transferring (watch the BW and make good use of FIFO though).