Secure Digital (SD) Card Protocol Description
SanDisk Secure Digital (SD) Card Product Manual, Rev. 1.9 © 2003 SANDISK CORPORATION
4-21
Table 4-4. Block Read Commands (Class 2)
Cmd
Index
Type Argument Resp Abbreviation
Command
Description
CMD16
ac
[31:0] block length
R1
SET_BLOCKLEN
Selects a block length (in bytes) for all following
block commands (read and write).
1
CMD17
adtc
[31:0] data address
R1
READ_SINGLE_
BLOCK
Reads a block of the size selected by the
SET_BLOCKLEN command.
2
CMD18
adtc
[31:0] data address
R1
READ_MULTIPLE_BLOCK Continuously send blocks of data until interrupted
by a stop transmission command.
CMD19 –
CMD23
Reserved
Table 4-5. Block Write Commands (Class 4)
Cmd
Index
Type Argument Resp Abbreviation
Command
Description
CMD24
adtc
[31:0] data address
R1
WRITE_BLOCK
Writes a block of the size selected by the
SET_BLOCKLEN command.
3
CMD25
adtc
[31:0] data address
R1
WRITE_MULTIPLE_
BLOCK
Continuously writes blocks of data until a
STOP_TRANSMISSION follows.
CMD26 Not
Applicable
CMD27
adtc
[31:0] don’t care*
R1
PROGRAM_CSD
Programming of the programmable bits of the CSD.
* The bit places must be filled but the value is irrelevant.
Table 4-6. Write Protection (Class 6)
Cmd
Index
Type Argument
Resp Abbreviation
Command
Description
CMD28*
ac
[31:0] data address
R1b
SET_WRITE_PROT
This command sets the write protection bit of the
addressed group. The properties of write
protection are coded in the card specific data
(WP_GRP_SIZE).
CMD29*
ac
[31:0] data address
R1b
CLR_WRITE_PROT
This command clears the write protection bit of
the addressed group.
CMD30*
adtc
[31:0] write protect
data address
R1 SEND_WRITE_
PROT
This command asks the card to send the status of
the write protection bits.
CMD31 Reserved
1) The default block length is as specified in the CSD (512 bytes). A set block length of less than 512 bytes will
cause a write error. The only valid write set block length is 512 bytes. CMD16 is not mandatory if the default is
accepted.
2) The data transferred must not cross a physical block boundary.
3) All data blocks are responded to with a data response token followed by a busy signal. The data transferred
must not cross a physical block boundary.