Start
End
Module initialization
Send a CMD5 command
CC = 0x1?
CTO = 0x1?
Yes
Send a CMD8 command
End
CC = 0x1?
No
CTO = 0x1?
Yes
No
No
No
A
Set MMCi.MMCHS_CON[1] INIT bit to
0x1 to send an initialization stream
Write 0x0000 0000 in the
MMCi.MMCHS_CMD register
Set MMCi.MMCHS_STAT[0] CC bit
to 0x1 to clear the flag
A
A
Read the MMCi.MMCHS_STAT
register
Yes
(it is an SDIO card)
Set MMCi.MMCHS_SYSCTL[25] SRC
bit to 0x1 and wait until it returns to 0x0
See the SDIO Standard Specification to
identify the card type:
Memory only, I/O only, Combo
Read the MMCi.MMCHS_STAT
register
YES
(it is an SD card compliant
with standard 2.0 or later)
Set MMCi.MMCHS_SYSCTL[25] SRC
bit to 0x1 and wait until it returns to 0x0
See the SD Standard Specification version
2.0 or later to identify the card type:
High Capacity; Standard Capacity
Set MMCi.MMCHS_CON[1] INIT bit to
0x0 to end the initialization sequence
Wait 1 ms
Clear MMCHS_STAT register
(write 0xFFFF FFFF)
Change clock frequency
to fit protocol
Send a CMD0 command
mmchs-030
Public Version
MMC/SD/SDIO Basic Programming Model
www.ti.com
The host controller requires transfers to run on a block-by-block basis, rather than on a DMA burst size
basis. A single DMA request (or block request interrupt) is signaled for each block. Pipelining is supported
as long as the block size is less than one half of the memory buffer size.
24.5.2.1 Card Detection, Identification, and Selection
and
show the card identification and selection process.
Figure 24-35. MMC/SD/SDIO Controller Card Identification and Selection - Part 1
3400
MMC/SD/SDIO Card Interface
SWPU177N – December 2009 – Revised November 2010
Copyright © 2009–2010, Texas Instruments Incorporated