MultiMediaCard Product Manual
SanDisk MultiMediaCard Product Manual Rev. 2 © 2000 SANDISK CORPORATION
42
The relationship between the various data
transfer modes is summarized in the card state
diagram Figure 5-2, and in the following
paragraphs:
• All data read commands can be aborted
any time by the stop command (CMD12).
The data transfer will terminate and the
MultiMediaCard will return to the
Transfer State. The read commands are:
stream read (CMD11), block
read
(CMD17), multiple block read (CMD18)
and send write protect (CMD30).
•
All data write commands can be aborted
any time by the stop command (CMD12).
The write commands must be stopped prior
to deselecting the MultiMediaCard by
CMD7. The write commands are: stream
write (CMD20), block write (CMD24 and
CMD25), write CID (CMD26), and write
CSD (CMD27).
•
If a stream write operation is stopped
prior to reaching the block boundary and
partial blocks are allowed (as defined in
the CSD), the part of the last block will
be packed as a partial block and
programmed. If partial blocks are not
allowed, the data will be discarded.
•
As soon as the data transfer is completed,
the MultiMediaCard will exit the data
write state and move either to the
Programming State (transfer is successful)
or Transfer State (transfer failed).
•
If a block write operation is stopped and
the block length and CRC of the last block
are valid, the data will be programmed.
•
If data transfer in stream write mode is
stopped, not byte aligned, the bits of the
incomplete byte are ignored and not
programmed.
•
The MultiMediaCard may
provide
buffering for stream and block write. This
means that the next block can be sent to
the card while the previous is being
programmed. If all write buffers are full,
and as long as the MultiMediaCard is in
Programming State (see MultiMediaCard
state diagram Figure 5-2), the DAT line
will be kept low.
•
There is no buffering option for write CSD,
write CID, write protection and erase.
This
means
that while the
MultiMediaCard is busy servicing any one
of these commands, no other data transfer
commands will be accepted. DAT line will
be kept low as long as the
MultiMediaCard is busy and in the
Programming State.
•
Parameter set commands are
not
allowed
while the MultiMediaCard is
programming. Parameter set commands
are: set block length (CMD16), and erase
tagging/untagging (CMD32-37).
•
Read commands are
not
allowed while the
MultiMediaCard is programming.
•
Moving another MultiMediaCard from
Stand-by to Transfer State (using CMD7)
will
not terminate a programming
operation. The MultiMediaCard will
switch to the Disconnect State and will
release the DAT line.
•
A MultiMediaCard can be reselected
while in the Disconnect State, using
CMD7. In this case the MultiMediaCard
will move to the Programming State and
reactivate the busy indication.
•
Resetting a MultiMediaCard (using CMD0
or CMD15) will terminate any pending or
active programming operation. This may
destroy the data contents on the
MultiMediaCard. It is up to the host’s
responsibility to prevent this.
5.3.1
Data Read Format
The DAT bus line is high when no data is
transmitted. A transmitted data block consists of a
start bit (LOW), followed by a continuous data
stream. The data stream contains the net payload
data (and error correction bits if an off-card ECC is
used). The data stream ends with an end bit
(HIGH). The data transmission is synchronous to
the clock signal.
The payload for block oriented data transfer is
preserved by a CRC check sum. The generator
polynomial is a standard CCITT polynomial
x
16
+x
12
+x
5
+1.
The code is a shortened BCH code with d=4 and is
used for payload length of up to 2048 Bytes.