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 SD_CON[1] INIT bit to
0x1 to send an initialization stream
Write 0x0000 0000 in the
SD_CMD register
Set SD_STAT[0] CC bit
to 0x1 to clear the flag
A
A
Read the SD_STAT
register
Yes
(it is an SDIO card)
Set SD_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 SD_STAT
register
YES
(it is an SD card compliant
with standard 2.0 or later)
Set SD_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 SD_CON[1] INIT bit to
0x0 to end the initialization sequence
Wait 1 ms
Clear SD_STAT register
(write 0xFFFF FFFF)
Change clock frequency
to fit protocol
Send a CMD0 command
Low-Level Programming Models
18.4.3 Operational Modes Configuration
18.4.3.1 Basic Operations for MMC/SD/SDIO Host Controller
The MMC/SD/SDIO controller performs data transfers: data to card (referred to as write transfers) and
data from card (referred to as read transfers).
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.
18.4.3.2 Card Detection, Identification, and Selection
and
show the card identification and selection process.
Figure 18-35. MMC/SD/SDIO Controller Card Identification and Selection - Part 1
3387
SPRUH73H – October 2011 – Revised April 2013
Multimedia Card (MMC)
Copyright © 2011–2013, Texas Instruments Incorporated