2015-11-09 09:23 AM
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-requests2015-11-09 09:43 AM
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.
2015-11-10 12:32 AM
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.2015-11-10 01:18 AM
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).