Specifications
©Copyright 2001-2013 SD Group (Panasonic, SanDisk, Toshiba) and SD Card Association
Physical Layer Simplified Specification Version 4.10
35
4.3.1 Wide Bus Selection/Deselection
Wide Bus (4 bit bus width) operation mode may be selected/deselected using ACMD6. The default bus
width after power up or GO_IDLE (CMD0) is 1 bit bus width.
In order to change the bus width two conditions shall be met:
a) The card is in 'tran state'.
b) The card is not locked
A locked card will responds to ACMD6 as illegal command.
4.3.2 2 GByte Card
To make 2GByte card, the Maximum Block Length (READ_BL_LEN=WRITE_BL_LEN) shall be set to
1024 bytes. However, the Block Length, set by CMD16, shall be up to 512 bytes to keep consistency
with 512 bytes Maximum Block Length cards (Less than and equal 2GByte cards).
4.3.3 Data Read
The DAT bus line level is high by the pull-up when no data is transmitted. A transmitted data block
consists of start bits (1 or 4 bits LOW), followed by a continuous data stream. The data stream contains
the payload data (and error correction bits if an off-card ECC is used). The data stream ends with end
bits (1 or 4 bits HIGH). The data transmission is synchronous to the clock signal. The payload for block
oriented data transfer is protected by 1 or 4 bits CRC check sum (See Chapter 0).
The Read operation from SD Memory Card may be interrupted by turning the power off. The SD
Memory Card ensures that data is not destroyed during all the conditions except write or erase
operations issued by the host even in the event of sudden shut down or removal.
Read command is rejected if BLOCK_LEN_ERROR or ADDRESS_ERROR occurred and no data
transfer is performed.
• Block Read
Block read is block oriented data transfer. The basic unit of data transfer is a block whose maximum
size is always 512 bytes. Smaller blocks whose starting and ending address are entirely contained
within 512 bytes boundary may be transmitted.
Block Length set by CMD16 can be set up to 512 bytes regardless of READ_BL_LEN.
A CRC is appended to the end of each block ensuring data transfer integrity. CMD17
(READ_SINGLE_BLOCK) initiates a block read and after completing the transfer, the card returns to
the Transfer State. CMD18 (READ_MULTIPLE_BLOCK) starts a transfer of several consecutive blocks.
Blocks will be continuously transferred until a STOP_TRANSMISSION command (CMD12) is issued.
The stop command has an execution delay due to the serial command transmission. The data transfer
stops after the end bit of the stop command.
When the last block of user area is read using CMD18, the host should ignore OUT_OF_RANGE error
that may occur even the sequence is correct.
If the host uses partial blocks whose accumulated length is not block aligned and block misalignment is
not allowed, the card shall detect a block misalignment at the beginning of the first misaligned block, set
the ADDRESS_ERROR error bit in the status register, abort transmission and wait in the Data State for
a stop command.