Chapter 4 – SD Card Protocol Description
Revision 2.2
SanDisk SD Card Product Manual
© 2004 SanDisk Corporation
4-6
12/08/04
card have incompatible V
DD
ranges, the card will not be able to complete the identification
cycle or send CSD data.
The SD_SEND_OP_COND (ACMD41) command is designed to provide card hosts with a
mechanism to identify and reject cards that do not match the host’s desired V
DD
range. To
accomplish this, the host sends the required V
DD
voltage window as the operand of the
command. SD cards that cannot perform data transfers in the specified range must discard
themselves from further bus operations and go into Inactive State
2
.
The MultiMediaCard will not respond to ACMD41
3
. The MultiMediaCard will be
initialized per the MultiMediaCard specification, using SEND_OP_COND command
(CMD1). The host should ignore an ILLEGAL_COMMAND status in the response to
CMD3, since it is a residue of ACMD41 that is invalid in the MultiMediaCard (CMD0, 1, 2
do not clear the Status Register). The host will use ACMD41 and CMD1 in a system, to
distinguish between a MultiMediaCard and an SD Card.
By omitting the voltage range in the command, the host can query each card and determine
if there are any incompatibilities before sending out-of-range cards into an inactive state.
This query should be used if the host can select a common voltage range or wants to notify
the application of non-usable cards in the stack.
The SanDisk SD Card can use the busy bit in the ACMD41 response to tell the host that it
is still working on its power-up/reset procedure (e.g., downloading the register information
from memory field) and is not ready for communication. In this case the host must repeat
ACMD41 until the busy bit is cleared.
During the initialization procedure, the host is not allowed to change the OCR values; the
SD Card will ignore changes in the OCR content. If there is a real change in the operating
conditions, the host must reset the card stack (using CMD0) and begin the initialization
procedure once more. However, for accessing cards already in Inactive State, a hard reset
must be done by switching the power supply off and on.
GO_INACTIVE_STATE (CMD15) can also be used to send an addressed SD Card into the
inactive state. CMD15 is used when the host explicitly wants to deactivate a card—for
example, the host changes V
DD
into a range not supported by this card.
4.3.3
Card Identification Process
The host starts the card identification process with the identification clock rate f
OD
. In the
SD Card, the CMD line output drives are push-pull drivers.
After the bus is activated, the host will request the cards to send their valid operation
conditions (ACMD41 preceding with APP_CMD-CMD55 with RCA=0x0000). The
response to ACMD41 is the Operation Condition Register of the card. The same command
will be sent to all of the new cards in the system. Incompatible cards are sent into inactive
state. The host then issues the command, ALL_SEND_CID (CMD2), to each card to get its
unique card identification (CID) number. An unidentified card (i.e., which is in Ready
State) sends its CID number as the response (on the CMD line). After the card sends the
CID number, it goes into Identification State. Thereafter, the host issues the CMD3
(SEND_RELATIVE_ADDR) command asking the card to publish a new relative card
address (RCA), which is shorter than CID and will be used to address the card in the future
data transfer mode (typically with a higher clock rate than f
OD
).
2
ACMD41 is an application-specific command. Therefore, APP_CMD (CMD55) will always precede ACMD41.
The RCA to be used for CMD55 in idle_state will be the card’s default RCA = 0x0000.
3
Actually it will not respond to preceding commands APP_CMD-CMD55.