MultiMediaCard Product Manual
SanDisk MultiMediaCard Product Manual Rev. 2 © 2000 SANDISK CORPORATION
47
5.6
Error Conditions
5.6.1
CRC and Illegal Command
All commands are protected by CRC (cyclic
redundancy check) bits. If the addressed
MultiMediaCard’s CRC check fails, the card does
not respond and the command is not executed. The
MultiMediaCard does not change its state, and
COM_CRC_ERROR bit is set in the status
register.
Similarly, if an illegal command has been
received, a MultiMediaCard shall not change its
state, shall not response and shall set the
ILLEGAL_COMMAND error bit in the status
register. Only the non-erroneous state branches are
shown in the state diagrams (Figure
5-1 and
Figure 5-2). Table 5-10 contains a complete state
transition description.
There are different kinds of illegal commands:
•
Commands which belong to classes not
supported by the MultiMediaCard (e.g.
I/O command CMD39).
•
Commands not allowed in the current state
(e.g. CMD2 in Transfer State).
•
Commands which are not defined (e.g.
CMD6).
5.6.2
Read, Write and Erase Time-out
Conditions
The times after which a time-out condition for
read/write/erase operations occurs are (card
independent)
10 times longer
than the typical
access/program times for these operations given
below. A card shall complete the command within
this time period, or give up and return an error
message. If the host does not get a response within
the defined time-out it should assume the card is
not going to respond any more and try to recover
(e.g. reset the card, power cycle, reject, etc.). The
typical access and program times are defined as
follows:
Read
The read access time is defined as the sum of the
two times given by the CSD parameters TAAC
and NSAC. These card parameters define the
typical delay between the end bit of the read
command and the start bit of the data block. This
number is card dependent and should be used by
the host to calculate throughput and the maximal
frequency for stream read.
Write
The R2W_FACTOR field in the CSD is used to
calculate the typical block program time
obtained by multiplying the read access time by
this factor. It applies to all write/erase
commands (e.g. SET(CLEAR)_WRITE_PROTECT,
PROGRAM_CSD(CID) and the block write
commands). It should be used by the host to
calculate throughput and the maximal frequency
for stream write.
Erase
The duration of an erase command will be (order of
magnitude) the number of sectors to be erased
multiplied by the block write delay.
5.7
Commands
5.7.1
Command Types
There are four kinds of commands defined on the
MultiMediaCard bus:
•
Broadcast commands (bc)—sent on CMD,
no response
•
Broadcast
commands
with
response
(bcr)—sent on CMD, response (all cards
simultaneously) on CMD
•
Addressed
(point-to-point)
commands
(ac)—sent on CMD, response on CMD
•
Addressed (point-to-point) data transfer
commands (adtc)—sent on CMD, response
on CMD, data transfer on DAT
The command transmission always starts with the
MSB.