Specifications

©Copyright 2001-2013 SD Group (Panasonic, SanDisk, Toshiba) and SD Card Association
Physical Layer Simplified Specification Version 4.10
156
7.2.2 Bus Transfer Protection
Every SD Card command transferred on the bus is protected by CRC bits. In SPI mode, the SD
Memory Card offers a CRC ON 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 CRC OFF mode, the CRC bits of the command are defined as 'don't care' for the transmitter and
ignored by the receiver.
The SPI interface is initialized in the CRC OFF mode in default. However, the RESET command
(CMD0) that is used to switch the card to SPI mode, is received by the card while in SD mode and,
therefore, shall have a valid CRC field.
Since CMD0 has no arguments, the content of all the fields, including the CRC field, are constants and
need not be calculated in run time. A valid reset command is:
0x40, 0x0, 0x0, 0x0, 0x0, 0x95
After the card is put into SPI mode, CRC check for all commands including CMD0 will be done
according to CMD59 setting.
The host can turn the CRC option on and off using the CRC_ON_OFF command (CMD59). Host should
enable CRC verification before issuing ACMD41.
The CMD8 CRC verification is always enabled. The Host shall set correct CRC in the argument of
CMD8. If CRC error is detected, card returns CRC error in R1 response regardless of command index.
7.2.3 Data Read
The SPI mode supports single block read and Multiple Block read operations (CMD17 or CMD18 in the
SD Memory Card protocol). Upon reception of a valid read command the card will respond with a
response token followed by a data token (Refer to Figure 7-3). In case of Standard Capacity Card, the
size in the data token is determined by the block length set by SET_BLOCKLEN (CMD16). In case of
SDHC and SDXC Cards, block length is fixed to 512 Bytes regardless of the block length set by
CMD16.
command
DataIn
DataOut
from
host
to card
data from card
to host
from
card
to host
data block
response
command
Next
Command
CRC
Figure 7-3: Single Block Read Operation
A valid data block is suffixed with a 16-bit CRC generated by the standard CCITT polynomial
x
16
+x
12
+x
5
+1.
The maximum block length is given by 512 Bytes regardless of READ_BL_LEN, defined in the CSD. If
partial block access is enabled in Standard Capacity Card (i.e. the CSD parameter READ_BL_PARTIAL
equals 1), the block length can be any number between 1 and 512 Bytes. The start address can be any
byte address in the valid address range of the card. Every block, however, shall be contained in a single
physical card sector.
If partial block access is disabled, only 512-Byte data length is supported.
SDHC and SDXC Cards only support 512-byte block length. The start address shall be aligned to the
block boundary.