cancel
Showing results for 
Search instead for 
Did you mean: 

SDMMC & SDIO - why max 1 SD card only?

freddie_chopin
Associate III

I'm writing an SDMMC driver for my C++ RTOS - http://distortos.org/ - and there is one thing which really puzzles me, making it hard to decide about class hierarchy. In the Reference Manual for STM32F7 (but the same is true for other chips, both for SDMMC and SDIO peripherals) you can read the following at the very beginning:

"The current version of the SDMMC supports only one SD/SDIO/MMC4.2 card at any one time and a stack of MMC4.1 or previous."

Where does this limitation come from? As far as I understand SD cards (which is hard given the "quality" of the SD documentation) using one card should look exactly the same as using ten - from the point of view of SDMMC peripheral this is just sending commands, receiving responses and transferring data blocks. To use more than 1 card you just need to make sure to "select" the proper one with CMD7 before talking to the selected card and that's it. But this selection process is done completely in software, in the higher layer than SDMMC driver.

I've found some clue in the mentioned SD documentation:

"4.3.11 High-Speed Mode (25 MB/sec interface speed)

...

Because it is not possible to control two cards or more in the case that each of them has a different timing mode (Default and High-Speed mode) and in order to satisfy severe timing, the host shall drive only one card. CLK/CMD/DAT signal shall be connected in 1-to-1 between the host and the card."

But this (according to my understanding) affects high-speed mode only, you can stick to default-speed mode, which is (surprisingly) the default mode after card power-up.

Thanks in advance for any information (;

0 REPLIES 0