HB28E016/D032/D064/B128MM2
55
Bus Transfer Protection
Every MultiMediaCard token transferred on the bus is protected by CRC bits. In SPI mode, the
MultiMediaCard offers a non-protected mode which enables systems built with reliable data links to
exclude the hardware or firmware required for implementing the CRC generation and verification
functions. In the non-protected mode the CRC bits of the command, response and data tokens are still
required in the tokens. However, they are defined as “don’t care” for the transmitter and ignored by the
receiver. The SPI interface is initialized in the non protected mode. However, the RESET command
(CMD0), which is used to switch the card to SPI mode, is received by the card while in MultiMediaCard
mode and, therefore, must have a valid CRC field.
The host can turn this option on and off using the CRC_ON_OFF command (CMD59).
Data Read Overview
The SPI mode supports single and multiple block read operations (CMD17 and CMD18 in the
MultiMediaCard protocol). The main difference between SPI and MultiMediaCard modes is that the data
and the response are both transmitted to the host on the DataOut signal (refer to Figure 43 and Figure 45).
Therefore the card response to the STOP_COMMAND may cut-short and replace the last data block (refer
to Figure “Read Operation”).
Data in
Data out
command
response
data block CRC
command
from
host
to card
from
card
to host
data from card
to host
Next
command
Single Block Read Operation
Data in
Data out
command
response
data block CRC
command
from
host
to card
from
card
to host
data from card
to host
Stop
command
data block CRC
data B.
response
Multiple Block Read Operation
The basic unit of data transfer is a block whose maximum size is defined in the CSD (READ_BL_LEN). If
READ_BL_PARTIAL is set, smaller blocks whose starting and ending addresses are entirely contained
within one physical block (as defined by READ_BL_LEN) may also be transmitted. A 16-bit CRC is
appended to the end of each block ensuring data transfer integrity (also refer to chapter “Cyclic
Redundancy Check (CRC)”). CMD17 (READ_SINGLE_BLOCK) initiates a single block read. CMD18