Numonyx NAND08GAH0AZA5F 1 gbyte, 2 gbyte, 1.8 v/3 v supply, nand flash memories with multimediacardâ ¢ interface Datasheet

NAND08GAH0A
NAND16GAH0D
1 Gbyte, 2 Gbyte, 1.8 V/3 V supply,
NAND Flash memories with MultiMediaCard™ interface
Preliminary Data
Features
■
Packaged NAND Flash memory with
MultiMediaCard interface
■
1, 2 Gbytes of formatted data storage
■
eMMC/MultiMediaCard system specification,
compliant with V4.1
■
Full backward compatibilty with previous
MultiMediaCard system specification
■
Bus mode
– High-speed MultiMediaCard protocol
– SPI protocol
– Three different data bus widths:1 bit, 4 bits,
8 bits
– Data transfer rate: up to 52 Mbyte/s
■
Operating voltage range:
– VCCQ =1.8 V/3 V
– VCC = 3 V
■
Supported clock frequencies: 0 to 52 MHz
■
Multiple Block Read (x 8 at 52 MHz):
up to 3.5 Mbyte/s
■
Multiple Block Write (x 8 at 52 MHz):
up to 8.5 Mbyte/s
■
Power dissipation
– Standby current: down to 200 µA
– Read current: down to 30 mA
– Write current: down to 30 mA
December 2007
FBGA
LFBGA169 12 x 16 x 1.4 mm (ZA)
■
Error free memory access
– Internal enhanced data management
algorithm (wear levelling, bad block
management, garbage collection)
– Internal error correction code
■
Data integrity
– Data reliability: less than 1 non-recoverable
error per 1014 bits read
– Endurance: more that 2,000,000
Program/Erase cycles
■
Security
– Password protection of data
– Built-in write protection (permanent or
temporary)
Rev 2
This is preliminary information on a new product now in development or undergoing evaluation. Details are subject to
change without notice.
1/116
www.numonyx.com
1
Contents
NAND08GAH0A, NAND16GAH0D
Contents
1
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2
Device physical description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.1
Package connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2
Form factor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3
Memory array partitioning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4
MultiMediaCard interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.1
Clock (CLK) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.1.2
Command (CMD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.1.3
Input/outputs (DAT0-DAT7) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.1.4
VCC core supply voltage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.1.5
VSS ground . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.1.6
VCCQ input/output supply voltage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.1.7
VSSQ supply voltage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Bus topology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4.3
Power-up and power-down . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.3.1
Power-up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.3.2
Power-down . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Electrical specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
High speed MultiMediaCard operation . . . . . . . . . . . . . . . . . . . . . . . . . 24
5.1
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
5.2
Card Identification mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
5.3
2/116
4.1.1
4.2
4.4
5
Signals description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
5.2.1
Card reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
5.2.2
Input/output voltage range validation . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
5.2.3
From Busy to Ready state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
5.2.4
Card Identification process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Data Transfer mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
5.3.1
Active command set selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
5.3.2
High speed mode selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
5.3.3
Power class selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
NAND08GAH0A, NAND16GAH0D
6
7
8
Contents
5.3.4
Bus test procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
5.3.5
Bus width selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5.3.6
Data Read . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.3.7
Single Block/Multiple Block Read . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.3.8
Data Write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
5.3.9
Single Block/Multiple Block Write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
5.3.10
Group Erase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
5.4
Write protection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
5.5
Device locking/unlocking (password protection) . . . . . . . . . . . . . . . . . . . . 37
5.5.1
Setting the password . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.5.2
Resetting the password . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.5.3
Locking the device . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.5.4
Unlocking the device . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.5.5
Performing a Forced Erase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5.5.6
Application specific commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5.6
Clock control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
5.7
Error conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.7.1
CRC and illegal commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.7.2
Read, Write and Erase timeout conditions . . . . . . . . . . . . . . . . . . . . . . 43
Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
6.1
Command classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
6.2
Detailed command description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
6.3
Device state transition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Responses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
7.1
R1 response (normal response command) . . . . . . . . . . . . . . . . . . . . . . . 52
7.2
R1b response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
7.3
R2 response (CID, CSD register) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
7.4
R3 response (OCR register) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
7.5
R4 response (Fast I/O) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Device registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
8.1
Operation conditions register (OCR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
8.2
Card identification (CID) register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
8.3
Card specific data register (CSD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3/116
Contents
NAND08GAH0A, NAND16GAH0D
8.4
4/116
8.3.1
CSD_STRUCTURE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
8.3.2
SPEC_VERS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
8.3.3
TAAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
8.3.4
NSAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
8.3.5
TRAN_SPEED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
8.3.6
CCC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
8.3.7
READ_BL_LEN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
8.3.8
READ_BL_PARTIAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
8.3.9
WRITE_BLK_MISALIGN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
8.3.10
READ_BLK_MISALIGN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
8.3.11
DSR_IMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
8.3.12
C_SIZE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
8.3.13
VDD_R_CURR_MIN, VDD_W_CURR_MIN . . . . . . . . . . . . . . . . . . . . . 61
8.3.14
VDD_R_CURR_MAX, VDD_W_CURR_MAX . . . . . . . . . . . . . . . . . . . . 61
8.3.15
C_SIZE_MULT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
8.3.16
ERASE_GRP_SIZE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
8.3.17
ERASE_GRP_MULT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
8.3.18
WP_GRP_SIZE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
8.3.19
WP_GRP_ENABLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
8.3.20
DEFAULT_ECC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
8.3.21
R2W_FACTOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
8.3.22
WRITE_BL_LEN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
8.3.23
WRITE_BL_LEN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
8.3.24
FILE_FORMAT_GRP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
8.3.25
COPY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
8.3.26
PERM_WRITE_PROTECT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
8.3.27
TMP_WRITE_PROTECT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
8.3.28
CONTENT_PROT_APP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
8.3.29
FILE_FORMAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
8.3.30
ECC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
8.3.31
CRC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Extended CSD register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
8.4.1
S_CMD_SET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
8.4.2
MIN_PERF_a_b_ff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
8.4.3
PWR_CL_ff_vvv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
8.4.4
CARD_TYPE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
8.4.5
CSD_STRUCTURE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
NAND08GAH0A, NAND16GAH0D
9
8.4.6
EXT_CSD_REV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
8.4.7
CMD_SET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
8.4.8
CMD_SET_REV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
8.4.9
POWER_CLASS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
8.4.10
HS_TIMING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
8.4.11
BUS_WIDTH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
8.5
RCA (relative card address) register . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
8.6
DSR (driver stage register) register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
8.7
Status register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Timings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
9.1
9.2
9.3
9.4
10
Contents
Command and response timings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
9.1.1
Card identification and card operation conditions . . . . . . . . . . . . . . . . . 76
9.1.2
Assignment of relative card address . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
9.1.3
Data Transfer mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
9.1.4
R1b responses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
9.1.5
Last device response to Next Host command . . . . . . . . . . . . . . . . . . . . 77
9.1.6
Last Host command to Next Host command . . . . . . . . . . . . . . . . . . . . . 77
Data Read timings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
9.2.1
Single Block Read . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
9.2.2
Multiple Block Read . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
Data Write timings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
9.3.1
Single Block Write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
9.3.2
Multiple Block Write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
9.3.3
Erase, Set and Clear Write Protect . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
9.3.4
Reselecting a busy device . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Bus test procedure timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Serial peripheral interface (SPI) mode . . . . . . . . . . . . . . . . . . . . . . . . . 83
10.1
SPI bus topology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
10.2
SPI electrical interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
10.3
SPI bus operating conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
10.4
SPI bus protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
10.4.1
Mode selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
10.4.2
Bus transfer protection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
10.4.3
Data Read . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
5/116
Contents
NAND08GAH0A, NAND16GAH0D
10.4.4
Data Write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
10.4.5
Erase and Write Protect management . . . . . . . . . . . . . . . . . . . . . . . . . . 91
10.4.6
Read the CID and CSD registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
10.4.7
Reset sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
10.4.8
Clock control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
10.4.9
Error conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
10.4.10 Read, Write, Erase and Forced Erase timeout conditions . . . . . . . . . . . 93
10.4.11 Memory array partitioning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
10.4.12 Lock/Unlock commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
10.4.13 Application specific commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
11
10.5
SPI mode commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
10.6
SPI mode responses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
10.6.1
R1 format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
10.6.2
R1b format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
10.6.3
R2 format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
10.6.4
R3 format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
10.6.5
Data response format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
10.6.6
Data messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
10.6.7
Data error messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
10.7
Clearing Status Register bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
10.8
Device registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
10.9
SPI bus timings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
10.9.1
Command/response timings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
10.9.2
Data Read timings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
10.9.3
Data Write timings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Error protection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
11.1
CRC7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
11.2
CRC16 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
12
Package mechanical . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
13
Part numbering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
14
Revision history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
6/116
NAND08GAH0A, NAND16GAH0D
List of tables
List of tables
Table 1.
Table 2.
Table 3.
Table 4.
Table 5.
Table 6.
Table 7.
Table 8.
Table 9.
Table 10.
Table 11.
Table 12.
Table 13.
Table 14.
Table 15.
Table 16.
Table 17.
Table 18.
Table 19.
Table 20.
Table 21.
Table 22.
Table 23.
Table 24.
Table 25.
Table 26.
Table 27.
Table 28.
Table 29.
Table 30.
Table 31.
Table 32.
Table 33.
Table 34.
Table 35.
Table 36.
Table 37.
Table 38.
Table 39.
Table 40.
Table 41.
Table 42.
Table 43.
Table 44.
Table 45.
Table 46.
Table 47.
Table 48.
System performance. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Current consumption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
System reliability and maintenance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Communication channel performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Signal names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Bus operating conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Open-drain mode bus signal level . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Push-pull mode bus signal level . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Bus AC timings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Bus modes overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Data format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
1-bit bus test pattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4-bit bus test pattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
8-bit bus test pattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Lock/Unlock data block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Formulae to calculate typical access and program times . . . . . . . . . . . . . . . . . . . . . . . . . . 43
MultiMediaCard command format. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Device command classes (CCCs) - supported commands 0 to 27 . . . . . . . . . . . . . . . . . . 45
Card command classes (CCCs) - supported commands 28 to 56 . . . . . . . . . . . . . . . . . . . 45
Basic commands for read-only devices (class 0) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Block oriented Read commands (class 2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Block oriented Write commands (class 4). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Block oriented Write commands (class 6). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Erase commands (class 5) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
I/O mode commands (class 9) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Lock (class 7) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Device state transition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
R1 response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
R2 response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
R3 response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
R4 response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
OCR register definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Card identification (CID) register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Card specific data register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
CSD register structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
System specification version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
TAAC access time definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Maximum bus clock frequency definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Supported card command classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Data block length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
DSR implementation code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Current consumption at VCCmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Current consumption at VCCmax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Multiply factor for the device size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
R2W_FACTOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
File formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
ECC type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
CSD field command classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
7/116
List of tables
Table 49.
Table 50.
Table 51.
Table 52.
Table 53.
Table 54.
Table 55.
Table 56.
Table 57.
Table 58.
Table 59.
Table 60.
Table 61.
Table 62.
Table 63.
Table 64.
Table 65.
Table 66.
Table 67.
Table 68.
Table 69.
Table 70.
Table 71.
Table 72.
Table 73.
Table 74.
8/116
NAND08GAH0A, NAND16GAH0D
Extended CSD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Supported command sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
R/W access performance values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Power classes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Card type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
CSD Register structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Extended CSD revision. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Standard MMC command set revisions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Power class code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Bus mode values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Status register. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Timing symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Timing values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
SPI interface pin configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
MultiMediaCard registers in SPI mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Command format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Command classes in SPI mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Commands and arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Data message first byte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Status bits definition in SPI mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Status bits versus commands and classes (SPI mode) . . . . . . . . . . . . . . . . . . . . . . . . . . 105
SPI timing symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
SPI timing values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
LFBGA169 12 x 16 x 1.4 mm 132+21+16 3R14 0.50 mm, package mechanical data . . . 112
Ordering information scheme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Document revision history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
NAND08GAH0A, NAND16GAH0D
List of figures
List of figures
Figure 1.
Figure 2.
Figure 3.
Figure 4.
Figure 5.
Figure 6.
Figure 7.
Figure 8.
Figure 9.
Figure 10.
Figure 11.
Figure 12.
Figure 13.
Figure 14.
Figure 15.
Figure 16.
Figure 17.
Figure 18.
Figure 19.
Figure 20.
Figure 21.
Figure 22.
Figure 23.
Figure 24.
Figure 25.
Figure 26.
Figure 27.
Figure 28.
Figure 29.
Figure 30.
Figure 31.
Figure 32.
Figure 33.
Figure 34.
Figure 35.
Figure 36.
Figure 37.
Figure 38.
Figure 39.
Figure 40.
Figure 41.
Figure 42.
Figure 43.
Figure 44.
Figure 45.
Figure 46.
Figure 47.
Figure 48.
Device block diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
LFBGA169 package connections (top view through package) . . . . . . . . . . . . . . . . . . . . . . 14
Form factor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Memory array structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Bus circuitry diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Power-up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Power cycling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Bus signal levels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Timing diagram data input/output referenced to clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
MultiMediaCard state diagram (Card Identification mode) . . . . . . . . . . . . . . . . . . . . . . . . . 27
Data transfer formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
MultiMediaCard state diagram (Data Transfer mode). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Identification timing diagram (Card Identification mode). . . . . . . . . . . . . . . . . . . . . . . . . . . 76
SET_RCA timing diagram (Card Identification mode) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Command response timing diagram (Data Transfer mode) . . . . . . . . . . . . . . . . . . . . . . . . 76
R1b response timing diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Last device response to Next Host command timing diagram . . . . . . . . . . . . . . . . . . . . . . 77
Command n end to CMD n+1 start timing diagram (all modes) . . . . . . . . . . . . . . . . . . . . . 77
Single Block Read command timing diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
Multiple Block Read command timing diagram. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
STOP_TRANSMISSION command timing diagram (CMD12, Data Transfer mode) . . . . . 79
Single Block Write command timing diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Multiple Block Write command timing diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
STOP_TRANSMISSION during data transfer from the host timing diagram . . . . . . . . . . . 81
STOP_TRANSMISSION during CRC status transfer from the device timing diagram . . . . 81
STOP_TRANSMISSION received after last data block (device busy) . . . . . . . . . . . . . . . . 81
STOP_TRANSMISSION received after last data block (device becomes busy) . . . . . . . . 81
4-bit system bus test procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
SPI Single Block Read operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
SPI Multiple Block Read operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
SPI Read operation – data error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
SPI Single Block Write operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
SPI Multiple Block Write operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Erase and Write Protect operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
R1 response format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
R1b response format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
R2 response format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
R3 response format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Data response format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Data error message format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Host command to device response timing diagram (device ready) . . . . . . . . . . . . . . . . . 107
Host command to device response timing diagram (device busy) . . . . . . . . . . . . . . . . . . 107
Device response to Host command timing diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Single Block Read timing diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
STOP_TRANSMISSION between blocks in Multiple Block Read timing diagram . . . . . . 108
STOP_TRANSMISSION within a block in Multiple Block Read timing diagram . . . . . . . . 108
CSD and CID register Read timing diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Single Block Write timing diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
9/116
List of figures
Figure 49.
Figure 50.
Figure 51.
Figure 52.
10/116
NAND08GAH0A, NAND16GAH0D
Multiple Block Write timing diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
CRC7 generator/checker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
CRC16 generator/checker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
LFBGA169 12 x 16 x 1.4 mm 132+21+16 3R14 0.50 mm, package outline . . . . . . . . . . 112
NAND08GAH0A, NAND16GAH0D
1
Description
Description
NAND08GAH0A and NAND16GAH0D are embedded Flash memory storage solutions with
MultiMediaCard interface (eMMC™). The eMMC™ was developed for universal low cost
data storage and communication media. They can be considered as high speed
MultiMediaCards embedded in LFBGA169 12 x 16 x 1.4 mm, 0.5 mm pitch package instead
of an MMC. The devices are fully compatible with MMC bus and hosts.
NAND08GAH0A and NAND16GAH0D communications are made through an advanced 13pin bus. The bus can be either 1-bit, 4-bit, or 8-bit bus width. The devices operate in highspeed mode at clock frequencies equal or higher than 20 MHz. The communication protocol
is defined as a part of this MMC standard and referred to as MultiMediaCard mode. For
compatibility with existing controllers the devices may offer, in addition to the
MultiMediaCard mode, an alternate communication protocol which is based on the SPI
standard.
The devices are designed to cover a wide area of applications such as smart phones,
cameras, organizers, PDA, digital recorders, MP3 players, pagers, electronic toys, etc. They
feature high performance, low power consumption, low cost and high density.
To meet the requirements of embedded high density storage media and mobile applications,
Numonyx NAND08GAH0A and NAND16GAH0D support both 3 V supply voltage (VCC),
and 1.8 V/3 V input/output voltage (VCCQ).
The devices have a built-in intelligent controller which manages interface protocols, data
storage and retrieval, wear leveling, bad block management, garbage collection, internal
ECC.
In order to meet environmental requirements, Numonyx offers the NAND08GAH0A and
NAND16GAH0D in ECOPACK® packages. ECOPACK packages are Lead-free. The
category of second Level Interconnect is marked on the package and on the inner box label,
in compliance with JEDEC Standard JESD97. The maximum ratings related to soldering
conditions are also marked on the inner box label. ECOPACK is an Numonyx trademark.
The system performance and characteristics are given in Table 1, Table 2, Table 3, and
Table 4.
Related documentation
●
eMMC™/MultiMediaCard system specification, version 4.1.
11/116
Description
NAND08GAH0A, NAND16GAH0D
Table 1.
System performance
Typical value
System performance
Unit
NAND08GAH0A
NAND16GAH0D
Reset to Ready
100
100
ms
Multiple Block Read
8.9
8.5
Mbyte/s
Single Block Read
1.0
1.0
Mbyte/s
Multiple Block Write
2.8
3.5
Mbyte/s
Single Block Write
0.1
0.1
Mbyte/s
Table 2.
Current consumption
Test
conditions
Operation
Read
Write
Standby
Table 3.
Current consumption
Unit
NAND08GAH0A
NAND16GAH0D
Typ.
Typ.
Max.
VCC= 3 V±5%
VCCQ= 3 V±5%
or 1.8 V±5%
20
25
mA
40
60
mA
VCC= 3 V±5%
10
20
VCCQ= 3 V±5%
or 1.8 V±5%
100
200
100
200
µA
System reliability and maintenance
MTBF
> 3 million hours
Preventive maintenance
None
Data reliability
less than 1 non-recoverable error per 1014 bits read
Endurance
2 000 000
Table 4.
Communication channel performance
MultiMediaCard communication channel performance
Three-wire serial data bus (Clock, command, data)
Variable clock rate 0, 26, 52 MHz
Easy card identification
Error protected data transfer
Sequential and single/multiple block oriented data transfer
12/116
Max.
NAND08GAH0A, NAND16GAH0D
2
Device physical description
Device physical description
The NAND08GAH0A and NAND16GAH0D contain a single chip controller and Flash
memory module, see Figure 1: Device block diagram. The microcontroller interfaces with a
host system allowing data to be written to and read from the Flash memory module. The
controller allows the host to be independent from details of erasing and programming the
Flash memory.
Figure 2 shows the package connections. See Table 5: Signal names for the description of
the signals corresponding to the balls.
Figure 1.
Device block diagram
Data
I/O
MultiMediaCard
interface
Single
Chip
controller
Control
Flash
module
NAND08GAH0A, NAND16GAH0D
AI13614b
13/116
Device physical description
NAND08GAH0A, NAND16GAH0D
2.1
Package connections
Figure 2.
LFBGA169 package connections (top view through package)
DNU
DNU
RSV
RSV
RSV
RSV
RSV
RSV
RSV
RSV
RSV
RSV
DNU
DNU
DNU
RSV
RSV
RSV
RSV
RSV
RSV
RSV
RSV
RSV
RSV
RSV
RSV
DNU
12
RSV
RSV
RSV
RSV
RSV
RSV
RSV
RSV
RSV
RSV
RSV
RSV
RSV
RSV
11
RSV
RSV
RSV
RSV
RSV
RSV
RSV
RSV
RSV
NC
NC
RSV
RSV
RSV
RSV
RSV
RSV
NC
VCC
RSV
RSV
RSV
8
RSV
RSV
RSV
NC
VSS
RSV
RSV
RSV
7
NC
NC
RSV
VSS
NC
RSV
RSV
RSV
RSV
DAT7
VCCQ
VCC
NC
CLK
RSV
VSSQ
DAT2
DAT6
RSV
NC
NC
CMD
VSSQ
VCCQ
DAT1
DAT5
VSSQ
NC
VCCQ
VCCQ
VSSQ
DAT0
DAT4
RSV
RSV
RSV
RSV
RSV
RSV
RSV
RSV
RSV
RSV
RSV
VCCQ
DNU
DAT3
VCCI
RSV
RSV
RSV
RSV
RSV
RSV
RSV
RSV
RSV
VSSQ
DNU
DNU
DNU
RSV
RSV
RSV
RSV
RSV
RSV
RSV
RSV
RSV
RSV
DNU
DNU
H
J
K
L
M
N
P
R
T
U
V
W
Y
AA
DNU
14
DNU
13
DNU
10
9
6
DNU
DNU
5
4
DNU
3
DNU
2
1
DNU
A
B
C
D
E
F
G
NC
VCC
NC
VSS
VSS
NC
VCC
NC
DNU
DNU
DNU
DNU
DNU
DNU
DNU
DNU
AB
AC
AD
AE
AF
AG
AH
AI13626
1. The ball corresponding to VCCI must be decoupled with capacitance C5 (see Table 6).
2.2
Form factor
The ball diameter, d, and the ball pitch, p, for LFBGA169 12 x 16 x 1.4 mm package are:
Figure 3.
●
d = 0.30 mm (solder ball diameter)
●
p = 0.5 mm (ball pitch)
Form factor
VCCQ
d
VSSQ
NC
NC
NC
p
AI13622
14/116
NAND08GAH0A, NAND16GAH0D
3
Memory array partitioning
Memory array partitioning
The basic unit of data transfer to/from the device is one byte. All data transfer
operations which require a block size always define block lengths as integer
multiples of bytes. Some special functions need other partition granularity.
For block oriented commands, the following definitions are used:
●
Block: the unit which is related to the block oriented read and write commands.
Its size is the number of bytes which are transferred when one block command
is issued by the host. The size of a block is either programmable or fixed. The
information about allowed block sizes and the programmability is stored in the
CSD register.
●
Erase Group: the unit which is related to special erase and write commands
defined for R/W cards. Its size is the smallest number of consecutive write
blocks which can be addressed for erase. The size of the Erase Group depends
on each device and is stored in the CSD.
●
Write Protect Group: the smallest unit that may be individually write protected.
Its size is defined in units of erase groups. The size of a WP-group depends on
each device and is stored in the CSD.
Figure 4 shows NAND08GAH0A and NAND16GAH0D memory array organization.
Figure 4.
Memory array structure
NAND08GAH0A, NAND16GAH0D
Write Protect Group 0
Erase Group 0
Block 0
Erase Group 1
Erase Group n
Write Protect Group 1
Write Protect Group 2
Write Protect Group n
MultiMediaCard
AI13615b
1. n = number of last Erase Group or last Write Protect Group.
15/116
MultiMediaCard interface
4
NAND08GAH0A, NAND16GAH0D
MultiMediaCard interface
The signal/pin assignments are listed in Table 5. Refer to this table in conjunction with
Figure 2 and Figure 3: Form factor.
4.1
Signals description
4.1.1
Clock (CLK)
The Clock input, CLK, is used to synchronize the memory to the host during command and
data transfers. Each clock cycle gates one bit on the command and on all the data lines. The
Clock frequency, fPP, may vary between zero and the maximum clock frequency.
4.1.2
Command (CMD)
The CMD signal is a bidirectional command channel used for device initialization and
command transfer. The CMD signal has two operating modes: open-drain and push-pull.
The open-drain mode is used for initialization, while the push-pull mode is used for fast
command transfer. Commands are sent by the MultiMediaCard bus master (or host) to the
device who answers by sending back responses.
4.1.3
Input/outputs (DAT0-DAT7)
DAT0 to DAT7 are bidirectional data channels. The signals operate in push-pull mode. The
NAND08GAH0A and NAND16GAH0D include internal pull ups for all data lines. These
signals cannot be driven simultaneously by the host and the NAND08GAH0A device.
By default, after power-up or hardware reset, only DAT0 is used for data transfers. The host
can configure the device to use a wider data bus, DAT0, DAT0-DAT3 or DAT0-DAT7, for data
transfer.
4.1.4
VCC core supply voltage
VCC provides the power supply to the internal core of the memory device. It is the main
power supply for all operations (read, program and erase).
4.1.5
VSS ground
Ground, VSS, is the reference for the power supply. It must be connected to the system
ground.
4.1.6
VCCQ input/output supply voltage
VCCQ provides the power supply to the I/O pins and enables all outputs to be powered
independently from VCC.
The input/output voltage (VCCQ) can be either within 1.65/1.7 V and 1.95 V (low voltage
range) or 2.7 V and 3.6 V (high voltage range).
16/116
NAND08GAH0A, NAND16GAH0D
4.1.7
MultiMediaCard interface
VSSQ supply voltage
VSSQ ground is the reference for the input/output circuitry driven by VCCQ.
Table 5.
Signal names
Name
Type(1)
DAT0
I/O (PP)
Data
DAT1
I/O (PP)
Data
DAT2
I/O (PP)
Data
DAT3
I/O (PP)
Data
DAT4
I/O (PP)
Data
DAT5
I/O (PP)
Data
DAT6
I/O (PP)
Data
DAT7
I/O (PP)
Data
CMD
I/O (OD or PP)
CLK
I (PP)
Description
Command
Clock
Input/output power supply
VCCQ
VCC
Core power supply
VSSQ
Input/output ground
VCCI
I
VCC
Must be decoupled with capacitance C5 (see Table 6)
Core power supply
Not connected(2)
NC
NC
RSV
RSV
Reserved for future use(2)
DNU
DNU
Do not use(2)
1. I: input; O: output, OD: open drain, PP: push-pull.
2. NC, RSV and DNU pins can be connected to ground or left floating.
17/116
MultiMediaCard interface
4.2
NAND08GAH0A, NAND16GAH0D
Bus topology
Figure 5 shows the bus circuitry required for the device. The resistor ROD is switched on and
off, synchronously, by the host for the open-drain and push-pull mode transitions. RDAT and
RCMD are pull-up resistors that are used to stop the CMD and DAT signals floating when no
device is inserted or when all the device drivers are in a high impedance state.
A constant current source can replace ROD and achieve a better performance (constant
slopes for the signal’s rising and falling edges). If the host does not allow a switchable ROD
to be implemented, a fixed RCMD can be used. Consequently, the maximum operating
frequency in the open drain mode has to be reduced if the value of RCMD is higher than the
minimum given in Table 6: Bus operating conditions.
Figure 5.
Bus circuitry diagram
NAND08GAH0A/NAND16GAH0D in LFBGA169 package
VCC
VCC
ROD
VCC
VCC
RDAT
VCCQ
On-chip
regulator
RCMD
VCCi
HOST
C5
Microcontroller
CMD
DAT
CLK
CBUS = max (C1, C2, C3)
C1
C2
MMC I/O
interface
Core
Flash
I/O
interface
Flash
module
C3
VSS,VSSQ
VSS,VSSQ
AI13192c
1. See Table 6 for the values of ROD, RDAT, RCMD, C1, C2, C3, and C5.
18/116
NAND08GAH0A, NAND16GAH0D
4.3
Power-up and power-down
4.3.1
Power-up
MultiMediaCard interface
The power-up and hot insertion (e.g. inserting the device when the bus is operating) are
handled locally in each device and in the bus master.
VCC must be powered up before or simultaneously with VCCQ. No delay must be respected
between VCC and VCCQ ramp up (see Figure 8).
After power-up the device enters the Idle state until the CMD1 command is received. The
bus master must get the device out of the Idle state. Since the power-up time and the
supply voltage ramp up time depend on application parameters such as the bus
length and the power supply unit, the host must ensure that the supply voltage has
reached the operating level specified in CMD1 before issuing a CMD1 command.
CMD1 is a special synchronization command for the host to poll the device states until the
power-up is completed correctly. The response of CMD1 contains a busy flag which
indicates that a device is not ready. The host has to wait until this flag is cleared. The time
for this flag to be cleared is the Identification delay (see Figure 6).
After power-up the host starts the clock and sends the initializing sequence on the CMD line
(see Figure 6). This sequence is a contiguous stream of logic 1 s. The sequence length is
either 1 ms, 74 clock cycles or the supply ramp up time, whichever is the longest. The
additional 10 clocks (after the 64 clocks after which the device should be ready for
communication) are provided to avoid power-up synchronization problems.
The device ignores all commands until the commands CMD1, CMD2 are issued and the
RCA of the device is initialized.
The initialization delay is relevant only after power-up, the identification delay is relevant for
both power-up and hot insertion.
After power-up, the maximum initial load the NAND08GAH0A and NAND16GAH0D can
present on the VCC line is C4, in parallel with a minimum of R4. During operation, device
capacitance on the VCC line must not exceed 10 µF.
4.3.2
Power-down
At power-down, VCCQ must go Low before or simultaneously with VCC going Low (see
Figure 9). Commands from the bus master are accepted till VCCQ and VCC start to ramp
down.
19/116
MultiMediaCard interface
Figure 6.
NAND08GAH0A, NAND16GAH0D
Power-up
Supply voltage
Bus Master
voltage
(3)
VCC
Memory field working
voltage range
Card logic working
voltage range
(3)
VCCmax
VCCmin(3)
VCCQmax(3)
VCCQmin(3)
Time
Power Up
Supply
ramping up
Initialization
sequence (1)
First CMD1 to card ready
NCC(2)
NCC
CMD1
CMD1
NCC
CMD1
CMD2
CMD1 repeated
until busy flag cleared
Initialization
delay
Identification delay
AI14104
1. The initialization sequence is a contiguous stream of logic 1’s. Its length is either 1 ms, 74 clocks or the supply ramp up
time, whichever is the longest. The device shall complete its initialization within 1 second from the first CMD1 with a valid V
range.
2. NCC is the number of clock cycles. Refer to Table 61 for its value.
3. Refer to Section 8.1: Operation conditions register (OCR) for details on voltage ranges.
Figure 7.
Power cycling
Supply Voltage
VCC
VCCmin
VCCQ
VCCQmin
Time
Command input prohibited
Command input prohibited
AI14122
20/116
NAND08GAH0A, NAND16GAH0D
4.4
MultiMediaCard interface
Electrical specifications
Table 6 defines the bus operating conditions for the device.
The total capacitance CL of each line of the bus is given by the below equation:
C L = C HOST + C BUS + C CARD
where CHOST is the bus master capacitance, CBUS the bus capacitance itself and CCARD the
capacitance of the device connected to this line. The sum of the host and bus capacitance,
CHOST+CBUS, must not to exceed 20 pF.
As the bus can be supplied with a variable supply voltage, all bus signal levels are related to
the supply voltage (see Figure 8, Table 7, and Table 8).
Table 6.
Bus operating conditions(1)(2)
Symbol
Parameter
Min
Max
Unit
Peak voltage on all lines
−0.5
3.6
V
Input leakage current on all inputs (before initialization sequence and/or
internal pull up resistors connected)(3)
−100
100
µA
Input leakage current on all inputs (after initialization sequence and/or internal
pull up resistors connected)(3)
−10
10
µA
Output leakage current on all outputs (before initialization sequence)
−100
100
µA
−10
10
µA
Low supply-voltage range (MultiMediaCard v. 4.1)
1.65
1.95
High supply-voltage range
2.7
3.6
VCC
Input/output supply voltage
2.7
3.6
V
VSS
Supply voltage ground
−0.5
0.5
V
RDAT
Pull-up resistance (to prevent bus floating)
50
100
kΩ
RCMD
Pull-up resistance (to prevent bus floating)
4.7
100
kΩ
RINT
Internal pull up resistance DAT1-DAT7 (to prevent unconnected line floating)
50
150
kΩ
R4
Load resistance on VCC line after power-up or hot insertion
330
C4
Load capacitance on VCC line after power-up or hot insertion
10
µF
CL
Bus signal line capacitance
30
pF
Single card capacitance
7
pF
Output leakage current on all outputs (after initialization sequence)
VCCQ
CCARD
V
Ω
C1
Load capacitance on CMD input
TBD
TBD
pF
C2
Load capacitance on DAT input
TBD
TBD
pF
C3
Load capacitance on CLK input
TBD
TBD
pF
C5
Decoupling capacitance on VCCI input
1
pF
Maximum signal line inductance (fPP ≤52 MHz)
16
nH
1. The current consumption of the device for the different configurations is defined in the POWER_CLASS field of the
EXT_CSD register (see Section 8.4).
2. TBD stands for ‘to be defined’.
3. See Section 4.3: Power-up and power-down.
21/116
MultiMediaCard interface
Figure 8.
NAND08GAH0A, NAND16GAH0D
Bus signal levels
V
VCCQ
Input
High
Level
Output
High
Level
VOH
VIH
Undefined
VIL
Input
Low
Level
Output
Low
Level
VOL
VSSQ
t
AI13194b
Open-drain mode bus signal level(1)
Table 7.
Symbol
Parameter
Conditions
Min
VCCQ–0.2
VOH
Output High voltage
IOH = –100 µA
VOL
Output Low voltage
IOL = 2 mA
Max
Unit
V
0.3
V
1. The values of VIH and VIL are identical in Open-drain and Push-pull mode (see Table 8: Push-pull mode bus signal level).
Table 8.
Push-pull mode bus signal level(1)
VCCQ
Symbol
Parameter
Conditions
1.65 to 1.95 V
Min
VOH
Output High voltage IOH = –100 µA at VCCQmin VCCQ–0.2
VOL
Output Low voltage
VIH
Input High voltage
VIL
Input Low voltage
IOL = 100 µA at VCCQmin
Max
2.7 to 3.6 V
Min
Unit
Max
0.75 VCCQ
0.2
V
0.125VCCQ
V
0.7VCCQ
VCC + 0.3 0.625VCCQ VCCQ + 0.3
V
VSSQ–0.3
0.3VCCQ
V
VSS–0.3
0.25VCCQ
1. In accordance with the JEDEC specification JESD8-1A, the device input and output voltages should be within the specified
ranges for the whole VCC range.
22/116
NAND08GAH0A, NAND16GAH0D
Figure 9.
MultiMediaCard interface
Timing diagram data input/output referenced to clock
tPP
tWL
VIH
Clock
VIL
tIH
tTHL
tTLH
VIH
Input
NV
NV
NV
tISU
Output
VOH
NV
tOH
VOL
tOSU
AI04337
"NV" is not valid
Table 9.
VIL
Bus AC timings
20 MHz
Symbol
26/52 MHz(1)
Parameter
Unit
Min
Max
Min
Max
Clock CLK(2)
fPP
Clock frequency Data Transfer mode (PP)(3)(4)
0
20
0
26/52(1)
MHz
fOD
Clock frequency Identification mode (OD)(5)
0
400
0
400
kHz
tWL
tTLH
tTHL
Clock Low
time(3)
Clock Rise
time(3)(6)
Clock Fall
10
time(3)(6)
6.5
ns
10
3
ns
10
3
ns
Input CMD, DAT (referenced to CLK)
tISU
tIH
Input Set-up time(3)
Input Hold
3
3
ns
3
3
ns
13.1
5
ns
9.7
5
ns
time(3)
Output CMD, DAT (referenced to CLK)
tOSU
tOH
Output Set-up time(3)
Output Hold
time(3)
1. fPP=52 MHz is available for VCC=2.7 to 3.6 V
2. All timing values are measured relatively to 50% of the voltage level.
3. Parameter measured with a bus line load capacitance, CL, lower than 30 pF.
4. fPP is measured with a tolerance of 100 KHz.
5. fOD is measured with a tolerance of 20 KHz.
6. Rise and fall times are measured from 10% to 90% of the voltage level for High clock frequencies (26 and 52 MHz). They
are measured from VIL(max) to VIH (min) of the voltage level for standard clock frequency (20 MHz).
23/116
High speed MultiMediaCard operation
NAND08GAH0A, NAND16GAH0D
5
High speed MultiMediaCard operation
5.1
Overview
All communication between the host and the device is controlled by the host (master). The
host sends two types of command:
●
Broadcast commands intended for all MultimediaCard devices. They are kept for
backwards compatibility to previous MultiMediaCard systems, where more than one
device was allowed on the bus.
●
Addressed (point-to-point) commands which are sent to the addressed device and
cause it to respond.
A general overview of the command flow is shown in Figure 10 for the Card Identification
mode and in Figure 12 for the Data Transfer mode. The commands are listed in the
command tables (Table 20, Table 21, Table 22, Table 23, and Table 24). The relation
between the current device state, the received command and the resulting state are listed in
Table 27. The different operating modes are presented in the following sections, together
with the restrictions for controlling the clock signal, and device commands, state transitions
and timings.
Three operating modes are defined for MultiMediaCard devices:
●
Card Identification mode
The host enter Card Identification mode after reset and while it is looking for new
devices connected to the bus.
MultiMediaCard devices enter this mode after reset until the SET_RCA command
(CMD3) is received.
●
Interrupt mode (not supported)
●
Data Transfer mode
The device enters Data Transfer mode once an RCA is assigned to it.
The host will enter data transfer mode after identifying all the devices on the bus.
Table 10 shows the relations between bus modes, operation modes and device states. Each
state in the device state diagrams is associated with a bus mode and an operation mode
(Figure 10 and Figure 12).
A command received with an incorrect CRC is ignored. If the command was issued during
an operation (for example block read), the device continues the operation until it receives a
correct host command.
24/116
NAND08GAH0A, NAND16GAH0D
M
Table 10.
High speed MultiMediaCard operation
Bus modes overview
Device state
Operation mode
Inactive (ina)
Bus mode
Inactive
Idle
Open-drain
Ready
Card Identification mode
Identification (ident)
Standby (stby)
Transfer (tran)
Bus state test (btst)
Sending-data (data)
Data Transfer mode
Push-pull
Interrupt mode
Push-pull
Receiving-data (rcv)
Programming (pgr)
Disconnect
Wait-IRQ (irq)
5.2
Card Identification mode
When in Card Identification mode, the host resets the device, validates the operating voltage
range and the access mode, identifies the device and assigns a Relative Card Address
(RCA) to it.
In Card Identification mode all data communications are performed using only the command
line (CMD).
5.2.1
Card reset
After power-up, the device is in Idle state and defaults to operate in MultiMediaCard mode,
even if it was previously in the Inactive state.
The GO_IDLE_STATE (CMD0) command performs a software reset and puts the device in
Idle state. It is also used to switch the device into SPI mode (see Section 10: Serial
peripheral interface (SPI) mode).
After power-up or a CMD0 command, all outputs are high impedance, and the device is
initialized with a default RCA (0x0001) and default Driver Stage Register (DSR) settings.
The host starts the device identification process in open-drain mode with the clock
frequency set to the identification clock frequency fOD (see Table 9: Bus AC timings).
CMD0 is valid in all states, with the exception of the Inactive state. While in Inactive state the
device does not accept CMD0 commands unless it is used to switch the device into SPI
mode.
25/116
High speed MultiMediaCard operation
5.2.2
NAND08GAH0A, NAND16GAH0D
Input/output voltage range validation
All device communicate with the host using an input/output voltage in the VCCQmin and
VCCQmax range. In Card Identification mode, the minimum and maximum values for VCCQ
are defined in the operation condition register (OCR) and may not cover the whole range.
The SEND_OP_COND (CMD1) command is designed to provide hosts with a mechanism
to identify and reject devices which do not match the desired VCCQ range. This is performed
by the host sending the required VCCQ range as the operand of the CMD1 command (see
Section 8.1: Operation conditions register (OCR)). If the device can not perform data
transfer in the specified range, it switches into the Inactive state. Otherwise, the device
answers sending back its VCCQ range.
By omitting the voltage range when issuing the CMD1 command (by setting CMD1
argument to ‘0’), the host queries the device about its input/output voltage range. This bus
query should be used if the host is able to select a common voltage range, or if the
application needs to be notified of non usable devices connected to the bus. The host then
chooses an operating voltage, and reissues the CMD1 together with this condition, sending
incompatible devices into the Inactive state.
5.2.3
From Busy to Ready state
The busy flag in the CMD1 response can be used by the device to notify the host that the
power-up/reset sequence is still ongoing and that the device is not ready for communication.
In this case the host must reissue the CMD1 command until the busy flag is cleared.
During the initialization procedure, the host should not change the operating voltage range
or access mode settings. Any change in the operating conditions is ignored by the device. If
this case, the host must reset the device by issuing a CMD0 command, and restart the
initialization sequence. However, a hardware reset must be performed for accessing devices
that are already in the Inactive state.
The GO_INACTIVE_STATE (CMD15) command can be used to send an addressed device
into the Inactive state. This command is used when the host explicitly wants to de-activate a
device by changing its VCC range into a range which is known not to be supported by this
device.
5.2.4
Card Identification process
This process is valid when multiple MultiMediaCard devices are connected to the bus.
The host starts the card identification process in open-drain mode with the identification
clock rate fOD (see Table 9: Bus AC timings). The open drain driver stages on the CMD line
allow parallel operation during card identification.
After the bus is activated, the host will request the devices to send its valid operating
conditions (CMD1). The response to CMD1 is the ‘wired and’ operation on the condition
restrictions of all devices in the system. Incompatible devices are sent into Inactive state.
The host then issues the broadcast command CMD2 and asks all devices for their unique
Card Identification (CID) number. All remaining unidentified devices simultaneously start
sending their CID numbers serially, while monitoring their outgoing bit stream. The devices,
whose outgoing CID bits do not match the corresponding bits on the command line, stop
sending their CID immediately and wait for the next identification cycle (devices stay in the
Ready state). Since CID numbers are unique for each device, there should be only one
device which successfully sends its full CID-number to the host. This device then goes into
the Identification state.
26/116
NAND08GAH0A, NAND16GAH0D
High speed MultiMediaCard operation
The host issues CMD3 to assign this device a relative card address (RCA) which will be
used to address the device in future data transfer communication. Once the RCA is received
the device goes to the Standby state and does not react to further identification cycles. The
device also switches its output drivers from open-drain to push-pull.
The host repeats the identification process as long as it receives a response (CID) to its
identification command (CMD2). When no more devices respond to this command, all
devices have been identified.
Figure 10. MultiMediaCard state diagram (Card Identification mode)
Power On
Idle state
(idle)
CMD0
from all states
except (ina)
Device is busy or host
omitted voltage range
CMD1
(1)
Inactive state
(ina)
CMD15
Ready state
(ready)
Card looses bus
CMD2
Card wins bus
Identification
state (ident)
CMD3
Wait-IRQ state
(irq)
CMD40
Standby state
(stby)
CARD IDENTIFICATION MODE
DATA TRANSFER MODE
from all states in
data transfer mode
Any start bit detected on the bus
INTERRUPT MODE
DATA TRANSFER MODE
AI04340b
1. Incompatible VCCQ voltage range.
2. See Table 10: Bus modes overview for the definition of the abbreviated forms corresponding to the device state.
27/116
High speed MultiMediaCard operation
5.3
NAND08GAH0A, NAND16GAH0D
Data Transfer mode
The device enters data transfer mode once an RCA is assigned to it. When the device is in
Standby mode, issuing the CMD7 command along with the RCA selects the device and puts
it into the Transfer state.
The host enters Data Transfer mode after identifying all the MultiMediaCard devices on the
bus. When all devices are in Standby state, communication over the CMD and DAT lines will
be in push-pull mode (see Table 10: Bus modes overview).
The device supports two Read/Write modes as shown in Figure 11: Data transfer formats.
●
Single Block mode
–
●
In this mode the host reads or writes one data block of a pre-specified length. The
data block transmission is protected with a 16 bit Cyclic Redundancy Check
(CRC).
Multiple Block mode
–
This mode is similar to the single block mode, but the host can read/write multiple
data blocks (all have the same length) which will be stored or retrieved from
contiguous memory addresses.
The host issues CMD9 to obtain the Card Specific Data (CSD register). MultiMediaCard
devices which already have an RCA do not respond to the identification command flow in
this mode. Until the content of all CSD registers is known by the host, the fPP clock rate must
remain at fOD because some devices may have operating frequency restrictions.
The relationship between the various operation modes is summarized in Figure 12:
MultiMediaCard state diagram (Data Transfer mode).
5.3.1
Active command set selection
By default, the device uses the MultiMediaCard standard command set after a power-up or
software reset (CMD0). The host can change the active command set by issuing the
SWITCH command (CMD6) with the ‘Command Set’ access mode selected.
The supported command sets, as well as the currently selected command set, are defined
in the EXT_CSD register.
5.3.2
High speed mode selection
The device operates in high-speed mode (HS-MMC) at clock frequencies higher than
20 MHz.
The host must first check whether the Numonyx NAND08GAH0A and NAND16GAH0D
comply with eMMC™/MultiMediaCard system specification version 4.1.
The high speed mode of the device must then be enables, before changing the clock
frequency to a frequency higher than 20 MHz. This is done by using the SWITCH command
to write 0x01 to the HS_TIMING byte, in the modes segment of the EXT_CSD register.
28/116
NAND08GAH0A, NAND16GAH0D
5.3.3
High speed MultiMediaCard operation
Power class selection
After checking whether the NAND08GAH0A and NAND16GAH0D complies with
eMMC™/MultiMediaCard system specification version 4.0 or higher, the host can change
the device power class.
After power-up or software reset (CMD0), the device defaults to operate in power class 0
which corresponds to the minimum current consumption for the card type (either Low or
High VCCQ voltage range).
The PWR_CL_ff_vvv bytes of the EXT_CSD register report the power consumption levels of
the device, for a 4-bit or 8-bit bus width, at the supported clock frequencies (26 or 52 MHz).
The host can read the PWR_CL_ff_vvv bytes by issuing a SEND_EXT_CSD command, and
determine if it will allow the device to use a higher power class.
The power class can be changed by using the SWITCH command to program the
POWER_CLASS Byte, in the modes segment of the EXT_CSD register.
The valid values for the EXT_CSD register are defined in (see Section 8.4.3:
PWR_CL_ff_vvv). If the value programmed by the host is invalid, the POWER_CLASS byte
remains unchanged and the SWITCH_ERROR bit is set.
5.3.4
Bus test procedure
The host can detect the bus functional lines by issuing CMD19 and CMD14 commands.
The following steps are required to test the bus functional signals:
1.
The host must issue a CMD19 command, followed by a specific data pattern on each
selected data lines (see Table 11). The data pattern sent by the host may optionally
include a CRC16 checksum, which is ignored by the device. The data pattern to be
sent per data line is defined in Table 12, Table 13 and Table 14, according to the bus
width.
2.
The host must then requests the device to send back the reversed data pattern. This is
done by issuing a CMD14 command. The device detects the start bit on DAT0 and
synchronizes accordingly the reading of all data inputs. It ignores all data pattern bits
except for the first two bits. The device buffer size consequently does not limit the
maximum length of the data pattern. The minimum length of the data pattern is two
bytes, of which the first two bits of each data line are sent back reversed by the device.
3.
The host detects the bus functional lines by comparing the initial data pattern with the
reversed pattern sent back by the device. The host ignores all bits except for the first
two bits of the reversed data pattern. The length of the reversed data pattern is eight
bytes and is always sent using all the device DAT lines (see Table 12, Table 13 and
Table 14). The reversed data pattern sent by the device may optionally include a
CRC16 checksum, which is ignored by the host.
The device has internal pull-up resistor on DAT1-DAT7 lines. If the device is connected to 1bit or 4-bit high-speed MMC system, the input value of the upper bits (e.g. DAT1-DAT7 or
DAT4-DAT7) are detected as logic “1” by the device.
Table 11.
Data format
Start bit
Data pattern
Checksum
bit
End bit
0
1 0 x x x x ... x x
CRC16
1
29/116
High speed MultiMediaCard operation
Table 12.
NAND08GAH0A, NAND16GAH0D
1-bit bus test pattern
Data
line
Data pattern sent by the host
Reversed pattern sent by
the device
DAT0
0,10xxxxxxxxxx,[CRC16],1
0,01000000,[CRC16],1
Start bit defines beginning of pattern
DAT1
0,00000000,[CRC16],1
No data pattern sent
DAT2
0,00000000,[CRC16],1
No data pattern sent
DAT3
0,00000000,[CRC16],1
No data pattern sent
DAT4
0,00000000,[CRC16],1
No data pattern sent
DAT5
0,00000000,[CRC16],1
No data pattern sent
DAT6
0,00000000,[CRC16],1
No data pattern sent
DAT7
0,00000000,[CRC16],1
No data pattern sent
Table 13.
Notes
4-bit bus test pattern
Data
line
Data pattern sent by the host
Reversed pattern sent by
the device
DAT0
0,10xxxxxxxxxx,[CRC16],1
0,01000000,[CRC16],1
DAT1
0,01xxxxxxxxxx,[CRC16],1
0,10000000,[CRC16],1
DAT2
0,10xxxxxxxxxx,[CRC16],1
0,01000000,[CRC16],1
DAT3
0,01xxxxxxxxxx,[CRC16],1
0,10000000,[CRC16],1
Notes
Start bit defines beginning of pattern
DAT4
0,00000000,[CRC16],1
No data pattern sent
DAT5
0,00000000,[CRC16],1
No data pattern sent
DAT6
0,00000000,[CRC16],1
No data pattern sent
DAT7
0,00000000,[CRC16],1
No data pattern sent
Table 14.
8-bit bus test pattern
Data
line
Data pattern sent by the host
Reversed pattern sent by
the device
DAT0
0,10xxxxxxxxxx,[CRC16],1
0,01000000,[CRC16],1
DAT1
0,01xxxxxxxxxx,[CRC16],1
0,10000000,[CRC16],1
DAT2
0,10xxxxxxxxxx,[CRC16],1
0,01000000,[CRC16],1
DAT3
0,01xxxxxxxxxx,[CRC16],1
0,10000000,[CRC16],1
DAT4
0,10xxxxxxxxxx,[CRC16],1
0,01000000,[CRC16],1
DAT5
0,01xxxxxxxxxx,[CRC16],1
0,10000000,[CRC16],1
DAT6
0,10xxxxxxxxxx,[CRC16],1
0,01000000,[CRC16],1
DAT7
0,01xxxxxxxxxx,[CRC16],1
0,10000000,[CRC16],1
30/116
Notes
Start bit defines beginning of pattern
NAND08GAH0A, NAND16GAH0D
5.3.5
High speed MultiMediaCard operation
Bus width selection
After checking the bus functional lines, the host must change the bus width configuration
accordingly. This is done by using the SWITCH command to program the BUS_WIDTH byte
in the modes segment of the EXT_CSD register.
The BUS_WIDTH byte is write only.
By default (after power-up or software reset (CMD0)), the contents of the BUS_WIDTH byte
is set to 0x00.
The valid values for this register are defined in Section 8.4.11: BUS_WIDTH.
If the value programmed by the host is invalid, the BUS_WIDTH byte remains unchanged
and the SWITCH_ERROR bit is set.
Figure 11. Data transfer formats
MULTIPLE BLOCK MODE
Memory
Blocks
Memory
Blocks
Memory
Blocks
Memory
Blocks
Memory
Blocks
Start
Address
Memory
Blocks
Memory
Blocks
Stop
Transmission
SINGLE BLOCK MODE
Memory
Blocks
Memory
Blocks
Start
Address
Memory
Blocks
Memory
Blocks
Start
Address
Memory
Blocks
Memory
Blocks
Memory
Blocks
Start
Address
AI13618
31/116
High speed MultiMediaCard operation
NAND08GAH0A, NAND16GAH0D
Figure 12. MultiMediaCard state diagram (Data Transfer mode)
CARD IDENTIFICATION
MODE
INTERRUPT MODE
CMD3
CMD15
DATA TRANSFER
MODE
CMD0
From all states in Data Transfer
mode
CMD13, 55
No state transition
in Data Transfer
Wait-IRQ State
(irq)
Sending data
State (data)
CMD40
CMD12,
'operation
complete'
CMD7
CMD8,17
18,30, 56 (r)
Any start bit
detected
on the bus
Stand-by State
(stby)
Transfer State
(tran)
CMD7
CMD4,
9,10, 39
operation
complete
CMD28,
29,38
CMD16,
23, 35, 36
CMD24, 25,
26, 27, 42, 56 (w)
operation
complete
Receive data
State (rcv)
CMD24,25
CMD19
Bus state test
State (btst)
CMD7
Disconnect
State (dis)
Programming
State (prg)
CMD12 or
'Transfer end'
CMD14
CMD7
AI13195
1. See Table 10: Bus modes overview for the definition of the abbreviated forms corresponding to the device state.
2. ‘r’ and ‘w’ stand for read and write.
3. If the device was previously selected and was in Transfer state, its connection with the host is released and it moves back
to the Standby state when a CMD7 command is issued along with any address different from the device own RCA.
4. Issuing the CMD7 command along with the reserved RCA 0x0000 returns to Standby state.
5. CMD7 commands issued along with the device RCA while the device is in Transfer state are ignored and may be treated as
illegal commands.
6. After the device is assigned an RCA it will not respond to identification commands, CMD1, CMD2, or CMD3.
7. The SET_DSR (CMD4) broadcast command configures the device driver stages. It programs its DSR register according to
the application bus length and the data transfer rate. The clock rate must then be switched from fOD to fPP.
8. The busy (Dat0=Low) is always active when the device is in Programming state. A host should not send CMD24/CMD25
while the device is in the Programming state and busy is active. However to ensure compatibility with previous
MultiMediaCard specification, the device treats CMD24 and CMD25 as legal or illegal commands when in Programming
state (while busy is active).
32/116
NAND08GAH0A, NAND16GAH0D
5.3.6
High speed MultiMediaCard operation
Data Read
The DAT0-DAT7 input/outputs are High when no data is transmitted.
Data Reads allow data to be transferred from the device to the host. All Data Read
commands can be aborted at any time by the STOP_TRANSMISSION command (CMD12),
which will terminate the data transfer and return the device to the Transfer state.
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 a non-embedded Error Correction is used). The
data stream ends with an end bit (High) (see Figure 19, Figure 20, and Figure 21). The data
transmission is synchronous to the clock signal.
The payload for block oriented data transfer is preserved by a CRC (Cyclic Redundancy
Check) check sum.
5.3.7
Single Block/Multiple Block Read
The command CMD17 starts a single Block Read at the address specified in the command.
After completion of the Single Block Read command, the device returns to the Transfer
state.
The command CMD18 starts a Multiple Block Read where several consecutive blocks of
data are read. The starting address is specified in the command. The blocks will be
continuously transferred until a STOP-TRANSMISSION command (CMD12) is issued. Note
that the host CMD12 command has an execution delay due to the serial command
transmission. The data transfer stops after the end bit of the CMD12 command.
The start address for a read operation can be any byte address in the valid address space of
the memory card.
During Single or Multiple Block Read operations, the basic unit of data transferred is a block
whose maximum size is defined in the CSD Register. If READ_BL_PARTIAL is set, smaller
blocks whose starting and ending address are contained within one physical block may also
be transmitted. A 16 bit CRC (Cyclic Redundancy Check) is appended to the end of each
block ensuring data transfer integrity.
Multiple Block Read operations can be of two types:
●
Open-ended Multiple Block Read operations
the number of blocks is not defined and the device keeps transferring data blocks until a
STOP_TRANSMISSION command is issued.
●
Multiple Block Read with pre-defined block count
The number of blocks to be transferred is pre-determined so the operation stops after
the pre-set number of blocks has been transmitted. When the block count is predefined, the STOP_TRANSMISSION command is not required unless an error occurs.
To issue the Multiple Block Read operation with pre-defined block count, the
READ_MULTIPLE_BLOCK command must be preceded by the SET_BLOCK_COUNT
(CMD23) command, failing which the initiated Multiple Block Read operation will be
open-ended.
If all the arguments of the CMD23 command are set to 0, the command is accepted.
However, a subsequent read will follow the open-ended READ_MULTIPLE_BLOCK
operation protocol (STOP_TRANSMISSION command is required)
If the host sends a STOP-TRANSMISSION command after the last block of a multiple
block operation with a pre-defined number of blocks is transmitted, it is regarded as an
illegal command, since the device is no longer in sending data state (Data).
33/116
High speed MultiMediaCard operation
NAND08GAH0A, NAND16GAH0D
If either one of the following errors is detected when the CMD17/CMD18 command is
received, the device rejects the CMD17/CMD18 command, remains in Transfer state and
sets the corresponding error bit:
●
●
●
The address provides by the host as an argument to either CMD17 or CMD18 is out of
range. ADDRESS_OUT_OF_RANGE is set.
The currently defined block length is illegal for a read operation. BLOCK_LEN_ERROR
is set.
The address/block-length combination positions the first data block is misaligned to the
device physical blocks. ADDRESS_MISALIGN is set.
If the device detects an error (e.g. address out of range, address misalignment, internal
error, etc.) during a Multiple Block Read operation, it stops data transmission and remains in
the sending data state (Data). The host must then abort the operation by sending the STOPTRANSMISSION command. The read error is reported in the response to the STOPTRANSMISSION command.
When the host uses partial blocks, if block misalignment is not allowed, the device returns a
block misalignment condition (ADDRESS_MISALIGN bit set to ‘1’) if the total length of the
partial blocks is not block aligned, and returns to Transfer state.
If the host sets the argument of the SET_BLOCK_COUNT command (CMD23) to 0, the
command is accepted; however, a subsequent read will follow the open-ended Multiple
Block Read protocol (STOP_TRANSMISSION command - CMD12 - is required).
5.3.8
Data Write
Data Writes allow data to be transferred from the host to the device. All data write
commands can be aborted any time by the CMD12 command. As soon as the data transfer
has completed, the device exits the Data Write state and switches either to the
Programming state (transfer successful) or Transfer state (transfer failed).
The Data Write format is similar to the Data Read format. For block oriented write data
transfer, the CRC check bits are added to each data block. The device performs a CRC
check for each data block received prior to a write operation. The polynomial is the same as
the one used for a read operation.
Read and Parameter Set commands are not allowed while the device is programming.
Moving another MultiMediaCard from Standby to Transfer state (using CMD7) does not
terminate a programming operation. The device switches to the Disconnect state and
releases the DAT line. The device can be reselected using CMD7. In this case it moves to
the Programming state and reactivates the busy indication.
The device provides buffering for Block Write. This means that the next block can be sent to
the device while the previous is being programmed. If all the write buffers are full, and the
device is in the Programming state, the DAT line will be kept Low.
There is no buffering option for Write CSD, Write CID and Erase. This means that while the
device is busy servicing any one of these commands, no other data transfer commands will
be accepted. The DAT line will be kept Low as long as the device is busy and in the
Programming state.
Note:
34/116
Care should be taken by the host not to reset a device (using CMD0 or CMD15) during any
pending or active programming operation. This will terminate the operation and may destroy
the data stored on the device.
NAND08GAH0A, NAND16GAH0D
5.3.9
High speed MultiMediaCard operation
Single Block/Multiple Block Write
Single or Multiple Block Write (CMD24-27) allows one or more blocks of data to be
transferred from the host to the device with a CRC bit appended to the end of each block by
the host. A device supporting Block Write must always be able to accept a block of data
defined by WRITE_BL_LEN. If the CRC fails, the device indicates the failure on the DAT
line; the transferred data will be discarded and all further transmitted blocks (Multiple Block
Write mode) will be ignored.
Multiple Block Write operations are initiated by issuing the WRITE_MULTIPLE_BLOCK
command (CMD25). There are two types of Multiple Block Write operations:
●
Open-ended Multiple Block Write
The number of blocks is not defined and the host terminates device programming by
sending a STOP-TRANSMISSION command.
●
Multiple Block Write with pre-defined block counts
The number of blocks to be programmed is pre-determined so the host does not need
to send a STOP-TRANSMISSION command to stop the operation. To issue the
Multiple Block Write operation with a pre-defined block count, the
WRITE_MULTIPLE_BLOCK command must be preceded by the
SET_BLOCK_COUNT (CMD23) command, failing which the initiated Multiple Block
Write operation will be open-ended.
If all the arguments of the CMD23 command are set to 0, the command is accepted.
However, a subsequent write will follow the open-ended WRITE_MULTIPLE_BLOCK
operation protocol (STOP_TRANSMISSION command is required).
If a Multiple Block Write with pre-defined block count is aborted by a STOPTRANSMISSION command, the data in the remaining blocks are invalid.
If the host sends a STOP-TRANSMISSION command after the last block of a Multiple
Block Write operation with a pre-defined number of blocks is programmed, it is
regarded as an illegal command, since the device is no longer in Receiving data state.
If either one of the following errors is detected when the CMD24-27 command is received,
the device rejects the command, remains in Transfer state and sets the corresponding error
bit:
●
●
●
The address provides by the host as an argument to either CMD24-27 is out of range.
ADDRESS_OUT_OF_RANGE is set.
The currently defined block length is illegal for a write operation. BLOCK_LEN_ERROR
is set.
The address/block-length combination positions the first data block is misaligned to the
device physical blocks. ADDRESS_MISALIGN is set.
If the device detects an error (e.g. write protect violation, address out of range, address
misalignment, internal error, etc.) during a Multiple Block Write operation, it stops data
transmission and remains in the Receiving data state. The host must then abort the
operation by sending the STOP-TRANSMISSION command. The write error is reported in
the response to the STOP-TRANSMISSION command.
When the host uses partial blocks and block misalignment is not allowed
(WRITE_BLK_MIS-ALIGN parameter not set in CSD Register), the total length of the partial
blocks must be block aligned otherwise the device detects the misalignment, return an error
data response, ignore subsequent incoming data blocks, and return to Transfer state.
The block length does not need to be set prior to programming the CID and CSD registers.
The Data transferred to the CID and CSD registers is also CRC protected. If a part of the
35/116
High speed MultiMediaCard operation
NAND08GAH0A, NAND16GAH0D
CSD or CID register is stored in ROM it will not be overwritten and the device does not
check the ROM data with the content of the received buffer.
Some devices may require a long time (1 s max) to write a block of data. After receiving a
block of data and completing the CRC check, the device begins writing and hold DAT Low if
its write buffer is full and unable to accept new data from a new Block Write command. The
host may poll the status of the device with a SEND_STATUS command at any time, and the
device responds with its status. The status bit READY_FOR_DATA indicates whether the
device can accept new data or whether the write process is still in progress. The host may
deselect the device by issuing CMD7 (to select a different device) which will place the device
in the Disconnect state and release the DAT line without interrupting the write operation.
When re-selecting the device, it will reactivate the busy indication by pulling DAT to Low if
programming is still in progress and the write buffer is unavailable. If a block write operation
is stopped and the block length and CRC of the last block are valid, the data will be
programmed.
5.3.10
Group Erase
The device supports Group Erase. The size of the Erase Group is defined in the CSD
register. To select an Erase Group, a first command with the starting address is followed by
a second command with the final address. After a range is selected, the erase operation is
performed by issuing an ERASE command (CMD38).
The address field in the CMD35/CMD36/CMD38 commands is the group address in units of
bytes. The device will ignore all LSBs below the group size.
The host must adhere to the following command sequence:
●
ERASE_GROUP_START (CMD35)
●
ERASE_GROUP_END (CMD36)
●
ERASE (CMD38)
If an CMD35/CMD36/CMD38 command is received out of sequence the device sets the
ERASE_SEQ_ERROR error bit in the Status Register and reset the whole sequence.
If the host provides an out of range address as an argument of the CMD35 or CMD36
command, the device rejects the command, returns the ADDRESS_OUT_OF_RANGE error
set, and resets the whole erase sequence.
If an non-erase command is received (different form CMD35, CMD36, CMD38 or CMD13),
the device returns the ERASE_RESET error, resets the erase sequence and executes the
last command.
Commands not addressed to the selected card do not abort the erase sequence.
If the erase group includes write protected blocks, only unprotected blocks are erased. In
this case, the WP_ERASE_SKIP status bit of the Status Register is set.
The device indicates that an erase operation is in progress by holding DAT to Low.
36/116
NAND08GAH0A, NAND16GAH0D
5.4
High speed MultiMediaCard operation
Write protection
The device supports two levels of write protection commands to protect data against erase
or write operations:
●
The entire memory array may be write protected by setting the permanent or temporary
write protect bits of the CSD register.
●
Specific segments of the memory may be write protected. The segment size is defined
in units of WP_GRP_SIZE erase groups as specified in the CSD register. The
SET_WRITE_PROT (CMD28) command sets the write protection of the addressed
write-protect group, and the CLR_WRITE_PROT (CMD29) command clears the write
protection of the addressed write-protect group.
The SEND_WRITE_PROT (CMD30) command is similar to a single block read command.
The device sends a data block containing 32 write protection bits (representing 32 write
protect groups starting at the specified address) followed by 16 CRC bits. The address field
in the write protect commands is a group address in byte units. The device will ignore all
LSBs below the group size.
If the host provides an out of range address as an argument to CMD28, CMD29 or CMD30,
the device rejects the command, returns the ADDRESS_OUT_OF_RANGE error and
remains in the Transfer state.
5.5
Device locking/unlocking (password protection)
The password protection feature enables the host to lock the device by providing a
password, which later will be used for unlocking the device. The password and its size is
kept in an 128-bit PWD and 8-bit PWD_LEN registers, respectively. These registers are
non-volatile so that a power-up cycle will not erase them.
The host is allowed to reset, initialize, select, query for status, etc., but not to access data on
the device. If the password has been previously set (PWD_LEN value is not ‘0’), the device
is automatically locked after power-up.
A locked device answers and executes all commands belonging to the basic class (class 0)
and to the Lock Card class (class 7). The host can consequently reset, initialize, select,
query for status, etc., but cannot access the data stored in the device.
As for the CSD and CID register write commands, the Lock/Unlock commands are available
in Transfer state only. This means that they do not require any address argument and that
the device has to be selected before issuing any of these commands.
The device Lock/Unlock commands have the same structure and comply with the same
command/response transaction as single block write commands. The transferred data block
37/116
High speed MultiMediaCard operation
NAND08GAH0A, NAND16GAH0D
includes all the required information of the command (password setting mode, password,
Lock/Unlock etc.) (see Table 15):
●
ERASE bit: this bit must be set to ‘1’ (all other bits shall be ‘0’) to perform a Forced
Erase operation, and only the Cmd byte is sent.
●
LOCK/UNLOCK bit: The device is locked and unlocked by setting the Lock/Unlock bit
to ‘1’ or ‘0’, respectively. Setting this bit together with the SET_PWD bit is allowed, while
setting it together with CLR_PWD bit is forbidden.
●
CLR_PWD bit: this bit must be set to ‘1’ to clear the password.
●
SET_PWD bit: this bit must be set to ‘1’ to set a new password.
●
PWD_LEN: this byte contains the password length expressed in bytes. Valid password
length ranges from 1 to 16 bytes. PWD_LEN indicates if a password is currently set. If
its value is equal to zero, no password is set, if it is different from zero, the device is
locked after power-up.
●
Password (PWD): these bytes contain the new or current password (depending on the
command). The data block size is defined by the host before sending the device
Lock/Unlock command. Different password sizes are allowed.
The Lock/Unlock command sequences are described in the following paragraphs.
Table 15.
Lock/Unlock data block
Byte
0
1
Bit 7
Bit 6
Bit 5
Reserved
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
ERASE
LOCK_UNLOCK
CLR_PWD
SET_PWD
PWD_LEN
2
...
PWD_LEN + 1
38/116
Password data (PWD)
NAND08GAH0A, NAND16GAH0D
5.5.1
High speed MultiMediaCard operation
Setting the password
The following steps are required to set the password:
1.
Select the device if it has not been not previously selected. This is performed by issuing
a CMD7 command.
2.
Configure the block length by issuing a CMD16 command. The block length is given by
the 8-bit Lock/Unlock mode, the 8-bit password size (in bytes), and the number of bytes
of the new password. In case of password replacement, the block size must take into
account the fact that both the old and the new passwords are sent with the command.
3.
Send a Lock/Unlock command on the data line, along with the data block of the
appropriate size and 16-bit CRC. The data block must contain the mode (SET_PWD),
the length (PWD_LEN) and the password itself. If a password replacement is
performed, the length value (PWD_LEN) must take into account both old and the new
password length, and the PWD field must be composed of the current password
followed by the new password.
If a password replacement is attempted with PWD_LEN set to the length of the current
password only, or the current password is not correct (different size and content), then the
LOCK_UNLOCK_FAILED error bit will be set in the Status Register and the current
password is not changed.
In case that PWD matches the sent old password then the given new password and its size
will be saved in the PWD and PWD_LEN fields, respectively.
Note:
The device can be locked immediately after setting the password by programming the
Lock/Unlock bit to ‘1’ while setting the password or by sending an additional Lock command.
5.5.2
Resetting the password
The following steps are required to reset the password:
1.
Select the device if it has not been not previously selected. This is performed by issuing
a CMD7 command.
2.
Configure the block length by issuing a CMD16 command. The block length is given by
the 8-bit Lock/Unlock mode, the 8-bit password size (in bytes), and the number of bytes
of the current password.
3.
Send the Lock/Unlock command on the data line, along with the data block of the
appropriate size and 16- bit CRC. The data block must contain the mode (CLR_PWD),
the length (PWD_LEN) and the password itself. (PWD). If the PWD and PWD_LEN
content match the password and its size, then the content of the PWD register is
cleared and PWD_LEN is set to 0. If the password is not correct then the
LOCK_UNLOCK_FAILED error bit is set in the Status Register.
39/116
High speed MultiMediaCard operation
5.5.3
NAND08GAH0A, NAND16GAH0D
Locking the device
The following steps are required to lock the device:
1.
Select the device if it has not been not previously selected. This is performed by issuing
a CMD7 command.
2.
Configure the block length by issuing a CMD16 command. The block length is given by
the 8-bit Lock/Unlock mode, the 8-bit password size (in bytes), and the number of bytes
of the current password.
3.
Send the Lock/Unlock command on the data line, along with the data block of the
appropriate size and 16- bit CRC. The data block must indicate the Lock mode, the
length (PWD_LEN) and the password (PWD) itself. If the PWD content is identical to
the device password, the device is locked and the locked status bit set in the Status
Register. If the password is not correct, the LOCK_UNLOCK_FAILED error bit is set in
the Status Register.
If the password was previously set (PWD_LEN is not ‘0’), the device is automatically locked
after power-up.
An attempt to lock a locked device or to lock a device that does with no password defined
will fail and the LOCK_UNLOCK_FAILED error bit will be set in the Status Register.
Note:
It is possible to set the password and to lock the device in the same sequence. In this case
the host must go through all the steps required to set the password (see Section 5.5.1:
Setting the password) and set the Lock bit while the new password command is issued.
5.5.4
Unlocking the device
The following steps are required to lock the device:
1.
Configure the block length by issuing a CMD16 command. The block length is given by
the 8-bit Lock/Unlock mode, the 8-bit password size (in bytes), and the number of bytes
of the current password.
2.
Send the Lock/Unlock command on the data line, along with the data block of the
appropriate size and 16- bit CRC. The data block indicates the Unlock mode, the length
(PWD_LEN) and the password (PWD) itself. If the PWD content is identical to the
device password, the device is unlocked and the locked status bit is cleared in the
Status Register. If the password is incorrect, the LOCK_UNLOCK_FAILED error bit is
set in the Status Register.
An attempt to unlock an unlocked device will fail and LOCK_UNLOCK_FAILED error bit will
be set in the Status Register.
Note:
40/116
The device is unlocked for the current power session only. As long as the PWD is not
cleared, the device will be automatically locked after the next power-up. The only way to
unlock the device is to clear the password.
NAND08GAH0A, NAND16GAH0D
5.5.5
High speed MultiMediaCard operation
Performing a Forced Erase
If the user forgets the password, it is possible to erase all the device data along with the
PWD content. This operation is called a Forced Erase.
The following steps are required to perform a Forced Erase operation on the device:
1.
Select the device if it has not been not previously selected. This is performed by issuing
a CMD7 command.
2.
Configure the block length to 1 byte (8-bit Lock/unlock command) by issuing a CMD16
command.
3.
Send the Lock/Unlock command on the data line, along with the data block of the
appropriate size and 16- bit CRC. The data block indicates the ERASE mode (the
ERASE bit must be the only bit set to ‘1’). The whole memory content is then erased
including the password (PWD) and PWD_LEN register, and the locked device is
unlocked. In addition, if the device was temporary write protected, it is unprotected
(write enabled), and the CSD temporary-write-protect bit and all Write-Protect-Groups
are cleared. If other bits than the ERASE bit are set to ‘1’, the
LOCK_UNLOCK_FAILED error bit is set and the Forced Erase operation fails.
An attempt to force erase on an unlocked device will fail and LOCK_UNLOCK_FAILED error
bit will be set in the Status Register.
Issuing a Forced Erase command on a permanently-write-protected device will fail, the
device will remain locked, and the LOCK_UNLOCK_FAILED error bit will be set.
The Forced Erase timeout is specified in Table 16.
5.5.6
Application specific commands
The NAND08GAH0A and NAND16GAH0D devices support two application specific
commands:
●
APP_CMD (CMD55)
●
GEN_CMD (CMD56)
APP_CMD command (CMD55)
Receiving a CMD55 command from the host causes the device to interpret the next
command as an application specific command, ACMD. The ACMD command has the same
structure as a regular MultiMediaCard standard commands and may have the same CMD
number. The device recognizes it as an application specific command because it follows the
APP_CMD command.
If the application specific version of the command that follows the APP_CMD command is
supported, the non standard version is used. If it is not supported, the standard version is
used.
Let us take the example of a device accepting ACMD13 but not ACMD7. When receiving the
APP_CMD command immediately followed by command 13, the device will interpret it as
the non standard command ACMD13. Whereas it will interpret command 7 as the standard
command CMD7.
41/116
High speed MultiMediaCard operation
NAND08GAH0A, NAND16GAH0D
To use one of the application specific ACMD commands, the host must follow the steps
described below:
●
Send the APP_CMD command. The device will respond with APP_CMD bit (new
status bit) of the response set to ‘1’ to signal to the host that ACMD is now expected.
●
Send the required ACMD command. The device will respond with APP_CMD bit set,
indicating that the accepted command was interpreted as an ACMD command.
–
If a non-ACMD command is sent, then the device will handle it as a normal
command, and the APP_CMD bit in the Card status will remain set to ‘0’.
–
If a non valid command is sent (neither ACMD nor CMD) then the device will
handle it as a standard MultiMediaCard illegal command.
GEN_CMD command (CMD56)
Bus operation during a GEN_CMD command is identical as Single Block Read or Write
commands (CMD24 or CMD17). The only difference is that the argument indicates the
direction of the data transfer (rather than the address) and the data block is not a memory
payload data but has a vendor specific format and meaning.
The card must be selected (Transfer state) before the host sends a CMD56 command. The
data block size is specified in the BLOCK_LEN defined with CMD16. The response to
CMD56 will be of R1 type.
5.6
Clock control
The device bus clock signal can be used by the host to set the device to energy saving mode
or to control the data flow on the bus. The host is allowed to lower the clock frequency or
shut it down.
There are a few restrictions the host must follow:
●
The bus frequency can be changed at any time, under the restrictions of maximum data
transfer frequency and the identification frequency
●
The clock must be running for the device to output data or response tokens
●
After the last bus transaction, the host is required to provide 8 clock cycles for the
device to complete before shutting down the clock.
The host is allowed to shut down the clock of a busy device. The device will complete the
programming operation regardless of the host clock. However, the host must provide a clock
edge for the device to turn off its busy flag. Without a clock edge the MultiMediaCard (unless
previously disconnected by a deselect command CMD7) will force the DAT line Low,
permanently.
42/116
NAND08GAH0A, NAND16GAH0D
High speed MultiMediaCard operation
5.7
Error conditions
5.7.1
CRC and illegal commands
All commands are protected by CRC (Cyclic Redundancy Check) bits. If the addressed
device CRC check fails, the device does not respond and the command is not executed. The
device does not change its state, and the COM_CRC_ERROR bit is set in the Status
Register.
Similarly, if an illegal command has been received, the device will not respond or change its
state and will set the ILLEGAL_COMMAND error bit in the Status Register. Error conditions
are not shown in the state diagrams (Figure 10 and Figure 12). Refer to Table 27 for a
complete state transition description.
There are different kinds of illegal commands:
5.7.2
●
Commands which belong to classes not supported by the device (e.g. write commands
in read only devices)
●
Commands not allowed in the current state (e.g. CMD2 in Transfer state)
●
Undefined commands (e.g. CMD44).
Read, Write and Erase timeout conditions
The times after which a timeout condition for read/write/erase operations occurs are 10
times longer than the typical access/program times for these operations. A device will
complete the command within this time, or give up and return an error message. If the host
does not get a response within the defined timeout it should assume the device is not going
to respond and reset the device.
Table 16 gives the formulae required to calculate typical access and program times.
Table 16.
Formulae to calculate typical access and program times(1)
Time
Unit
Formula
Description
These parameters define the
typical delay between the
end bit of the Read
command and the start bit of
the Data Block.
Read Access
time
clock
cycles
(TAAC + NSAC)
Block Write
time
clock
cycles
(Read Access time * R2W_FACTOR)
This applies to all
Write/Erase commands
Erase time
clock
cycles
Number of Erase groups * Block Write
time
This gives an approximate
value
Forced Erase
time
min
3
Duration of the Forced Erase
operation using CMD42
command
1. See Section 8.3: Card specific data register (CSD) for the definition of the parameters used to calculate the
maximum clock frequency.
43/116
Commands
6
NAND08GAH0A, NAND16GAH0D
Commands
There are four kinds of commands defined on the bus:
●
Broadcast commands (bc)—sent on CMD, no response
●
Broadcast commands with response (bcr)— sent on CMD, response (all devices
simultaneously) on CMD
●
Addressed (point-to-point) commands (ac)—sent on CMD, response on CMD
●
Addressed (point-to-point) data transfer commands (adtc)—sent on CMD, response on
CMD, data transfer on DAT.
All commands are 48 bits long, and are protected by a CRC. The command transmission
always starts with the MSB (see Table 17: MultiMediaCard command format).
6.1
Command classes
The command set of the device is divided into several classes (See Table 18 and Table 19).
Each class supports a set of MultiMediaCard functions.
Class 0 is mandatory and supported by all MultiMediaCards. The other classes are optional
and can be interpreted as a tool box. By using different classes, several configurations can
be chosen (e.g. a block writable device). The supported Card Command Classes (CCC) are
coded as a parameter in the Card Specific Data (CSD) register of each device, providing the
host with information on how to access the device.
Table 20, Table 21, Table 22, Table 23 and Table 24 define in detail the device bus
commands. Table 27 defines the device state transitions depending on the command
received.
Table 17.
Bit position
47
46
45...40
39...8
7...1
0
Width (bits)
1
1
6
32
7
1
Value
‘0’
‘1’
x
x
x
‘1’
Start bit
Host
Command
Argument
CRC7
End bit
Description
44/116
MultiMediaCard command format
NAND08GAH0A, NAND16GAH0D
Table 18.
Commands
Device command classes (CCCs) - supported commands 0 to 27
Device
command
class
(CCC)
Class
description
Class 0
Basic
Class 2
Block Read
+
Class 4
Block Write
+
Class 5
Erase
Class 6
Write
Protection
Class 7
Lock
Class 9
I/O mode
Table 19.
Supported commands, CMD
0 1 2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 23 24 25 26 27
+ + + + +
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Card command classes (CCCs) - supported commands 28 to 56
Supported commands, CMD
Card command
class (CCC)
Class description
Class 0
Basic
Class 2
Block Read
Class 4
Block Write
Class 5
Erase
Class 6
Write Protection
Class 7
Lock
Class 9
I/O mode
28
+
29
+
30
35
36
38
+
+
+
39
40
42
55
56
+
+
+
+
45/116
Commands
6.2
NAND08GAH0A, NAND16GAH0D
Detailed command description
The following tables provide a detailed description of MultiMediaCard commands. The
responses R1 to R4 are defined in Section 7: Responses.The registers CID, CSD,
EXT_CSD and DSR are described in Section 8: Device registers.
Table 20.
Basic commands for read-only devices (class 0)
Cmd
Index
Type
Argument
Response
Abbreviation
CMD0
bc
[31:0] stuff bits
-
GO_IDLE_STATE
Resets all devices to Idle state. All
devices in Idle state after power-up
CMD1
bcr
[31:0] OCR
without busy
R3
SEND_OP_COND
Asks all devices in Idle state to send
their OCR content in the response
on CMD line
CMD2
bcr
[31:0] stuff bits
R2
ALL_SEND_CID
Asks all devices in Ready state to
send their CID(1) numbers on CMD
line
CMD3
ac
[31:16] RCA
[15:0] stuff bits
R1
SET_RELATIVE_ADDR
CMD4
bc
[31:16] DSR
[15:0] stuff bits
-
SET_DSR
Programs the DSR of all devices in
Standby state
SWITCH
Switches the device operating mode
or modifies the EXT_CSD
register (see Section 8.4: Extended
CSD register)
CMD5
CMD6
Command description
Assigns relative address to the
device in identification state
Reserved
ac
[31:26] Set to
‘0’
[25:24] Access
[23:16] Index
[15:8] Value
[7:3] Set to ‘0’
[2:0] Cmd Set
R1b
CMD7
ac
[31:16] RCA
[15:0] stuff bits
R1/R1b(2)
SELECT/DESELECT_
CARD
Command toggles a device between
the Standby and Transfer states or
between the Programming and
Disconnect states. In both cases the
device is selected by its own relative
address and deselected by any
other address; address 0 deselects
all
CMD8
adtc
[31:0] stuff bits
R1
SEND_EXT_CSD
Ask the address device to send back
its EXT_CSD register as a data
block
CMD9
ac
[31:16] RCA
[15:0] stuff bits
R2
SEND_CSD
Asks the addressed device to send
its card specific data, CSD, on CMD
line.
CMD10
ac
[31:16] RCA
[15:0] stuff bits
R2
SEND_CID
Asks the addressed device to send
its card identification data, CID, on
CMD line.
CMD11
46/116
Reserved
NAND08GAH0A, NAND16GAH0D
Table 20.
Commands
Basic commands for read-only devices (class 0) (continued)
Cmd
Index
Type
Argument
Response
Abbreviation
CMD12
ac
[31:0] stuff bits
R1/R1b(3)
STOP_TRANSMISSION
CMD13
ac
[31:16] RCA
[15:0] stuff bits
R1
SEND_STAT
Asks the addressed device to send
its Status Register.
CMD14
adtc
[31:0] stuff bits
R1
BUSTEST_R
Reads the reversed bus test data
pattern from a device.
CMD15
ac
[31:16] RCA
[15:0] stuff bits
-
GO_INACTIVE_STATE
CMD19
adtc
[31:0] stuff bits
R1
BUSTEST_W
Command description
Forces the device to stop
transmission.
Sets the device to Inactive state to
prevent communication breakdowns
in the stack of devices.
Sends the bus test data pattern to
the device.
1. The addressing capability for 8-bit address resolution is 232 = 4 Gbytes.
2. The response is R1 when the selecting from Standby to Transfer state, and R1b when selecting from Disconnected state to
Programming state.
3. The response is R1 and R1b, for read and write operations, respectively.
Table 21.
Block oriented Read commands (class 2)
Cmd
index
Type
Argument
Response
Abbreviation
Command description
CMD16
ac
[31:0] block
length
R1
SET_BLOCKLEN
Selects 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 command.
1. The default block length is as specified in Section 8.3: Card specific data register (CSD).
2. The data transferred must not cross a physical block boundary unless RD_BLK_MISALIGN is set in the CSD.
47/116
Commands
Table 22.
Cmd
index
NAND08GAH0A, NAND16GAH0D
Block oriented Write commands (class 4)
Type
Argument
ac
[31:16] set to 0
[15:0] number
of blocks
CMD24
adtc
[31:0] data
address
R1
CMD25
adtc
[31:0] data
address
R1
CMD23
Response
R1
Abbreviation
Command description
SET_BLOCK_COUNT
Defines the number of blocks
which are going to be transferred
in the next Multiple Block Read or
Write command
WRITE_BLOCK
Writes a block of the size
selected
by the SET_BLOCKLEN
command
Continuously writes blocks of
WRITE_MULTIPLE_BLOCK data until interrupted by a Stop
command
CMD26
adtc
[31:0] stuff bits
R1
PROGRAM_CID
Programs the CID register - done
once per device and is normally
reserved for the manufacturer.
The device contains hardware to
prevent further programming
CMD27
adtc
[31:0] stuff bits
R1
PROGRAM_CSD
Programs the programmable bits
of the CSD
Table 23.
Cmd
index
CMD28
CMD29
CMD30
CMD31
Block oriented Write commands (class 6)
Type
Argument
ac
[31:0] data
address
ac
[31:0] data
address
adtc
[31:0] write
protect data
address
Response
R1b
R1b
R1
Abbreviation
Command description
SET_WRITE_PROT
If the device has write protection
features, 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)
CLR_WRITE_PROT
If the device provides write
protection features, this command
clears the write protection bit of
the addressed group
SEND_WRITE_ PROT
If the device provides write
protection features, this command
asks the device to send the status
of the write protection bits(1)
Reserved
1. 32 write protection bits (representing 32 write protect groups starting at the specified address) followed by 16 CRC bits are
transferred in a payload format via the data line. The last (least significant) bit of the protection bits corresponds to the first
addressed group. If the addresses of the last groups are outside the valid range, then the corresponding write protection
bits are set to zero.
48/116
NAND08GAH0A, NAND16GAH0D
Table 24.
Commands
Erase commands (class 5)
Cmd
index
Type
Argument
Response
Abbreviation
Command description
CMD35
ac
[31:0] data
address
R1
ERASE_GROUP_START
Sets the address of the first Erase
Group within a range to be
selected for erase.
CMD36
ac
[31:0] data
address
R1
ERASE_GROUP_END
Sets the address of the last Erase
Group within a continuous range to
be selected for erase.
CMD38
ac
[31:0] stuff
bits
R1b
ERASE
Table 25.
Cmd index
CMD39
Erases all previously selected
groups
I/O mode commands (class 9)
Type
Argument
ac
[31:16] RCA
[15:15] register
write flag
[14:8] register
address
[7:0] register
data
Response
R4
Abbreviation
Command description
FAST_IO
Used to write and read 8 bit
(register) data fields. The
command addresses a device and
a register and provides the data for
writing if the write flag is set. This
command accesses application
dependent registers which are not
defined in the MultiMediaCard
standard.
CMD40-41 Reserved
Table 26.
Cmd index
CMD42
Lock (class 7)
Type
Argument
adtc
[31:0] stuff
bits
Response
R1
CMD43...
CMD54
CMD55
CMD56
Abbreviation
Command description
LOCK_UNLOCK
Used to set/reset the password or
lock/unlock the device. The size of the
data block is set by the
SET_BLOCK_LEN command.
Reserved
ac
[31:16]
RCA
[15:0] stuff
bits
adtc
[31:1] stuff
bits
[0]
RD/WR(1)
R1
R1
APP_CMD
Indicates to the device that the next
command is an application specific
command rather than a standard
command
GEN_CMD
Used either to transfer a data block to
the device or to get a data block from
the device for general purpose /
application specific commands. The
size of the data block shall be set by
issuing a SET_BLOCK_LEN
command
1. RD/WR is set to ‘1’ if the host receives a data block from the device, and to ‘0’ if the host sends a data block to the device.
49/116
Commands
6.3
NAND08GAH0A, NAND16GAH0D
Device state transition
Table 27: Device state transition gives the device state transitions according to the
command received from the host.
Table 27.
Device state transition
Current state
Command
idle
ready ident
stby
tran
data
btst
rcv
prg
dis
ina
irq
changes to
Class independent
CRC error
–
–
–
–
–
–
–
–
–
–
–
stby
Command not
supported
–
–
–
–
–
–
–
–
–
–
–
stby
idle
idle
idle
idle
idle
idle
idle
idle
idle
idle
–
stby
CMD1, VCC range
compatible
ready
–
–
–
–
–
–
–
–
–
–
stby
CMD1, device busy
idle
–
–
–
–
–
–
–
–
–
–
stby
CMD1, VCC range not
compatible
ina
–
–
–
–
–
–
–
–
–
–
stby
CMD2, device wins
bus
–
ident
–
–
–
–
–
–
–
–
–
stby
CMD2, device loses
bus
–
ready
–
–
–
–
–
–
–
–
–
stby
CMD3
–
–
stby
–
–
–
–
–
–
–
–
stby
CMD4
–
–
–
stby
–
–
–
–
–
–
–
stby
CMD6
–
–
–
–
prg
–
–
–
–
–
–
stby
CMD7, device
addressed
–
–
–
tran
–
–
–
–
–
prg
–
stby
CMD7, device not
addressed
–
–
–
–
stby
stby
–
–
dis
–
–
stby
CMD8
–
–
–
–
data
–
–
–
–
–
–
stby
CMD9
–
–
–
stby
–
–
–
–
–
–
–
stby
CMD10
–
–
–
stby
–
–
–
–
–
–
–
stby
CMD12
–
–
–
–
–
tran
–
prg
–
–
–
stby
CMD13
–
–
–
stby
tran
data
btst
rcv
prg
dis
–
stby
CMD14
–
–
–
–
–
–
tran
–
–
–
–
stby
CMD15
–
–
–
ina
ina
ina
ina
ina
ina
ina
–
stby
CMD19
–
–
–
–
btst
–
–
–
–
–
–
stby
class 0
CMD0
50/116
NAND08GAH0A, NAND16GAH0D
Table 27.
Commands
Device state transition (continued)
Current state
Command
idle
ready ident
stby
tran
data
btst
rcv
prg
dis
ina
irq
changes to
class 2
CMD16
–
–
–
–
tran
–
–
–
–
–
–
stby
CMD17
–
–
–
–
data
–
–
–
–
–
–
stby
CMD18
–
–
–
–
data
–
–
–
–
–
–
stby
CMD23
–
–
–
–
tran
–
–
–
–
–
–
stby
class 4
CMD16
see class 2
CMD23
see class 2
CMD24
–
–
–
–
rcv
–
–
–
rcv
–
–
stby
CMD25
–
–
–
–
rcv
–
–
–
rcv
–
–
stby
CMD26
–
–
–
–
rcv
–
–
–
–
–
–
stby
CMD27
–
–
–
–
rcv
–
–
–
–
–
–
stby
CMD28
–
–
–
–
prg
–
–
–
–
–
–
stby
CMD29
–
–
–
–
prg
–
–
–
–
–
–
stby
CMD30
–
–
–
–
data
–
–
–
–
–
–
stby
CMD35
–
–
–
–
tran
–
–
–
–
–
–
stby
CMD36
–
–
–
–
tran
–
–
–
–
–
–
stby
CMD38
–
–
–
–
prg
–
–
–
–
–
–
stby
class 6
class 5
class 7
CMD16
CMD42
see class 2
–
–
–
–
rcv
–
–
–
–
–
–
stby
CMD55
–
–
–
stby
tran
rcv
btst
rcv
prg
dis
–
irq
CMD56, RD/WR = 0
–
–
–
–
rcv
–
–
–
–
–
–
stby
CMD56, RD/WR = 1
–
–
–
–
data
–
–
–
–
–
–
stby
–
–
–
stby
–
–
–
–
–
–
stby
class 8
class 9
CMD39
CMD60-CMD63
Reserved for manufacturer
51/116
Responses
7
NAND08GAH0A, NAND16GAH0D
Responses
All responses are sent via the CMD command line. The response transmission always starts
with the left bit of the bit string corresponding to the response code word. The code length
depends on the response type.
A response always starts with a start bit (always ‘0’), followed by the bit indicating the
direction of transmission (device = ‘0’). A value denoted by ‘x’ in the tables below indicates a
variable entry. All responses except for the R3 type (see Section 7.4) are protected by a
CRC. Every command code word is terminated by the end bit (always ‘1’).
There are five response types: R1, R1b, R2, R3, R4.
7.1
R1 response (normal response command)
R1 response code length is 48 bits. Bits 45 to 40 indicate the index of the command to be
responded to, this value being interpreted as a binary coded number (between 0 and 63).
The status of the device is coded in 32 bits. See Table 28 for a full description of R1
responses.
Table 28.
7.2
R1 response
Bit position
47
46
[45:40]
[39:8]
[7:1]
0
Width (bits)
1
1
6
32
7
1
Value
‘0’
‘0’
X
X
X
‘1’
Description
Start bit
Transmission
bit
Command
index
Device
status
CRC7
End bit
R1b response
R1b response is identical to R1, except that it has an additional busy flag sent via the DAT
line as defined in the MultiMediaCard specification.
7.3
R2 response (CID, CSD register)
R2 response code length is 136 bits. The content of the CID register is sent as a response
to CMD2, CMD9 and CMD10 commands. Only bits 127 to 1 of the CID and CSD registers
are transferred. The reserved bit (bit 0) of these registers is replaced by the end bit of the
response. See Table 29 for a full description of R2 responses.
Table 29.
52/116
R2 response
Bit position
135
134
[133:128]
[127:1]
0
Width (bits)
1
1
6
127
1
Value
‘0’
‘0’
‘111111’
x
‘1’
Description
Start bit
Transmission bit
Reserved
CRC7
End bit
NAND08GAH0A, NAND16GAH0D
7.4
Responses
R3 response (OCR register)
R3 response code length is 48 bits. The contents of the OCR register is sent as a response
to CMD1 commands.
See Table 30 for a full description of R3 responses.
Table 30.
7.5
R3 response
Bit position
47
46
[45:40]
[39:8]
[7:1]
0
Width (bits)
1
1
6
32
7
1
Value
‘0’
‘0’
‘111111’
x
‘1111111’
‘1’
Description
Start bit
Transmission
bit
Reserved
OCR
register
Reserved
End bit
R4 response (Fast I/O)
R4 response code length is 48 bits. The argument field contains the RCA of the addressed
device, the register address to be read out or written to, and its contents.
See Table 31 for a full description of R4 responses.
Table 31.
R4 response
[39:8]
Argument field
Bit position
47
46
[45:40]
[7:1]
0
Width (bits)
1
1
6
16
8
8
7
1
Value
‘0’
‘0’
‘100111’
x
x
x
x
‘1’
Description
Start
bit
Transmission
bit
CMD39
RCA
[31:16]
Register
addr.
[15:8]
Read
register
contents
CRC7 End bit
53/116
Device registers
8
NAND08GAH0A, NAND16GAH0D
Device registers
There are five different registers within the device interface:
●
Operation conditions register (OCR)
●
Card identification register (CID)
●
Card specific data register (CSD)
●
Relative card address register (RCA)
●
DSR (driver stage register)
●
Extended card specific data register (EXT_CSD)
These registers are used for the serial data communication. The device does not implement
the DSR register.
The MultiMediaCard has a status register to provide information about the device current
state and completion codes for the last host command.
8.1
Operation conditions register (OCR)
The 32-bit operation conditions register stores the VCCQ, the input/output voltage of the
Flash memory component. The device is capable of communicating (identification
procedure and data transfer) with any MultiMediaCard host using any operating voltage
within 1.65 V and 1.95 V (low-voltage range) or 2.7 V and 3.6 V (high-voltage range)
depending on the voltage range supported by the host. The 31 least significant bits are
constant. Bit 32 is the busy flag as defined in the MultiMediaCard specification document.
If the host tries to change the OCR values during an initialization procedure the changes in
the OCR content will be ignored.
The level coding of the OCR register is as follows:
●
Restricted voltage windows = Low
●
Device busy = Low
Table 32.
OCR register definition
OCR bit
Description
MultiMediaCard
6 to 0
Reserved
000 0000b
7
Low VCCQ
1b
14 to 8
2.0 - 2.6
23 to 15
30 to 24
31
2.7 - 3.6 (High VCCQ
000 0000b
range)(1)
1 1111 1111b
Reserved
Power-up status bit (busy) (2)
1. The voltage for internal Flash memories (VCCi) should be in the 2.7 V to 3.6 V range.
2. This bit is set to Low if the device has not finished the power-up routine.
54/116
000 0000b
NAND08GAH0A, NAND16GAH0D
8.2
Device registers
Card identification (CID) register
The CID register is 16 bytes long and contains a unique card identification number used
during the card identification procedure. It is a 128 bit wide register with the content as
defined in Table 33. It is programmed during device manufacturing and can not be changed
by MultiMediaCard hosts.
Table 33.
Card identification (CID) register
Name
Field
Width
CID - slice
CID - value
Manufacture ID
MID
8
[127:120]
0x33
OEM/application ID
OID
16
[119:104]
0x5354
Product name
PNM
48
[103:56]
eMMC01
Product revision
PRV
8
[55:48]
1.0
Product serial number
PSN
32
[47:16]
TBD
Manufacturing date
MDT
8
[15:8]
Manufacturing
date
CRC7 checksum
CRC
7
[7:1]
TBD
-
1
[0:0]
-
Not used, always ‘1’
8.3
Card specific data register (CSD)
All the configuration information required to access the device data is stored in the CSD
register. The MSB bytes of the register contain the manufacturer data and the two least
significant bytes contains the host controlled data (the device Copy, Write Protection and the
user ECC register).
The host can read the CSD register and alter the host controlled data bytes using the
SEND_CSD and PROGRAM_CSD commands.
In Table 34, the cell type column defines the CSD field as Read only (R), One Time
Programmable (R/W) or erasable (R/W/E). The programmable part of the register (entries
marked by W or E) can be changed by command CMD27.
The Copy bit in the CSD can be used to mark the device as an original or a copy. Once set it
cannot be cleared. The device can be purchased with the copy bit set (copy) or cleared,
indicating the device is a master.
The One Time Programmable (OTP) characteristic of the Copy bit is implemented in the
MultiMediaCard controller firmware and not with a physical OTP cell.
Table 35 to Table 47 describe the CSD fields and the relevant data types. If not otherwise
defined, all bit strings are interpreted as binary coded numbers starting with the left bit first.
55/116
Device registers
Table 34.
NAND08GAH0A, NAND16GAH0D
Card specific data register
Name
Field
Width
[bits]
Cell
type
CSDslice
CSD-value
CSD structure
CSD_STRUCTURE
2
R
[127:126]
0x3 (see Table 49:
Extended CSD)
MultiMediaCard protocol
version
SPEC_VERS
4
R
[125:122]
0x4
(version 4.0, 4.1, 4.2)
2
R
[121:120]
TBD(1)
8
R
[119:112]
Reserved
Data Read Access-time-1
TAAC
Data Read Access-time-2 in
NSAC
CLK cycles (NSAC*100)
8
R
[111:104]
0x5E (TAAC=5000 µs,
NSAC=0 cycles)
Max. Data Transfer rate
TRAN_SPEED
8
R
[103:96]
0x2A (20 Mbit/s)
Command classes
CCC
12
R
[95:84]
0x1F5 (classes 0, 2, 4, 5, 6,
7, 8)
Max. Read Data Block
Length
READ_BL_LEN
4
R
[83:80]
Partial Blocks for Read
allowed
READ_BL_PARTIAL
1
R
[79:79]
1 (Yes)
Write Block misalignment
WRITE_BLK_MISALIGN
1
R
[78:78]
0 (No)
Read Block misalignment
READ_BLK_MISALIGN
1
R
[77:77]
0 (No)
DSR implemented
DSR_IMP
1
R
[76:76]
0 (No)
2
R
[75:74]
0 (No)
NAND08GAH0A 512 bytes
NAND16GAH0D
Reserved
1024
bytes
Device size
C_SIZE
12
R
[73:62]
According to device density
Max. Read current at
VCC(min)
VDD_R_CURR_MIN
3
R
[61:59]
35 mA
Max. Read current at
VCC(max)
VDD_R_CURR_MAX
3
R
[58:56]
45 mA
Max. Write current at
VCC(min)
VDD_W_CURR_MIN
3
R
[55:53]
35 mA
Max. Write current at
VCC(max)
VDD_W_CURR_MAX
3
R
[52:50]
45 mA
Device size multiplier
C_SIZE_MULT
3
R
[49:47]
According to device density
Erase group size
ERASE_GRP_SIZE
5
R
[46:42]
32 Erase groups
Erase group size multiplier
ERASE_GRP_MULT
5
R
[41:37]
Write Protect group size
4
NAND16GAH0D
8
5
R
[36:32]
32
Write Protect Group Enable WP_GRP_ENABLE
1
R
[31:31]
1 (Yes)
Manufacturer Default ECC
DEFAULT_ECC
2
R
[30:29]
0 (None)
Write speed factor
R2W_FACTOR
3
R
[28:26]
32
56/116
WP_GRP_SIZE
NAND08GAH0A
NAND08GAH0A, NAND16GAH0D
Table 34.
Device registers
Card specific data register (continued)
Name
Field
Width
[bits]
Cell
type
CSDslice
CSD-value
NAND08GAH0A 512 bytes
Max. Write Data Block
Length
WRITE_BL_LEN
Partial Blocks for Write
Allowed
WRITE_BL_PARTIAL
4
R
[25:22]
NAND16GAH0D
1
R
[21:21]
Reserved
1024
bytes
0 (No)
[20:20]
Content protection
application
CONTENT_PROT_APP
1
R
[16:16]
0 (No)
FileFormatGroup
FILE_FORMAT_GROUP
1
R/W
[15:15]
0 (No)
Copy Flag (OTP)
COPY
1
R/W
[14:14]
0 (No)
Permanent Write Protection PERM_WRITE_PROTECT
1
R/W
[13:13]
0 (No)
Temporary Write Protection TMP_WRITE_PROTECT
1
R/W/
E
[12:12]
0 (No)
2
R/W
[11:10]
HD (Hard
disk-like
file
system
with
partition
table)
ECC Code 2 R/W/E None 0 ECC
2
R/W/
E
[9:8]
0 (None)
CRC
7
R/W/
E
[7:1]
0x10
1
-
[0:0]
1
FileFormat
FILE_FORMAT
CRC
Not used, always ‘1’
1. TBD stands for ‘to be defined’.
8.3.1
CSD_STRUCTURE
This field describes the version of the CSD structure.
Table 35.
CSD register structure
CSD_STRUCTURE
CSD structure version
Valid for system specification version
0
CSD version No. 1.0
Allocated by MMCA
1
CSD version No. 1.1
Allocated by MMCA
2
CSD version No. 1.2
version 4.1 - 4.2
3
Version is coded in the CSD_STRUCTURE byte in the EXT_CSD register
57/116
Device registers
8.3.2
NAND08GAH0A, NAND16GAH0D
SPEC_VERS
Defines the MultiMediaCard system specification version supported by the device.
Table 36.
System specification version
SPEC_VERS
0
Allocated by MMCA
1
Allocated by MMCA
2
Allocated by MMCA
3
Allocated by MMCA
4
Version 4.1 - 4.2
5 - 15
8.3.3
System specification version number
Reserved
TAAC
Defines the asynchronous part of the data access time.
Table 37.
TAAC access time definition
TAAC bit position
2:0
Time unit
0=1 ns, 1=10 ns, 2=100 ns, 3=1 µs, 4=10 µs, 5=100 µs, 6=1 ms, 7=10 ms
6:3
Multiplier factor
0=reserved, 1=1.0, 2=1.2, 3=1.3, 4=1.5, 5=2.0, 6=2.5, 7=3.0, 8=3.5, 9=4.0,
A=4.5, B=5.0, C=5.5, D=6.0, E=7.0, F=8.0
7
8.3.4
Code
Reserved
NSAC
Defines the typical case for the clock dependent factor of the data access time. The unit for
NSAC is 100 clock cycles. Therefore, the maximal value for the clock dependent part of the
data access time is 25.5k clock cycles.
The total access time NAC as expressed in the Table 61: Timing values is calculated based
on TAAC and NSAC. It has to be computed by the host for the actual clock rate. The read
access time should be interpreted as a typical delay for the first data bit of a data block.
58/116
NAND08GAH0A, NAND16GAH0D
8.3.5
Device registers
TRAN_SPEED
Table 38 defines the clock frequency when not in high speed mode. For devices supporting
version 4.0, and higher, of the specification, the value shall be 20 MHz (0x2A):
Table 38.
Maximum bus clock frequency definition
TRAN_SPEED bit
Code
2:0
Frequency unit
0=100 KHz, 1=1 MHz, 2=10 MHz, 3=100 MHz, 4...7=reserved
6:3
Multiplier factor
0=reserved, 1=1.0, 2=1.2, 3=1.3, 4=1.5, 5=2.0, 6=2.6, 7=3.0,
8=3.5, 9=4.0, A=4.5, B=5.2, C=5.5, D=6.0, E=7.0, F=8.0
7
8.3.6
Reserved
CCC
The MultiMediaCard command set is divided into subsets (command classes). The card
command class register CCC defines which command classes are supported by this device.
A value of ‘1’ in a CCC bit means that the corresponding command class is supported. For
command class definition refer to Table 18 and Table 19.
Table 39.
Supported card command classes
CCC bit
Supported card command class
0
class 0
.........
11
8.3.7
class 11
READ_BL_LEN
The purpose of this field is to indicate the maximum data block length that is supported by
the device when performing read operations.
The data block length is computed as 2READ_BL_LEN. The block length can therefore range
from one to 16 Kbytes.
After power-up or software reset, the device defaults to operate in 512-byte block length.
Table 40.
Data block length
READ_BL_LEN
Block length
0
20= 1 bytes
1
21= 2 bytes
...
...
10(1)
11- 15
Comment
...
210= 1024 bytes
‘00000’
1. This bit is only available for the NAND16GAH0D. It must be set to ‘0’ for the NAND08GAH0A.
59/116
Device registers
8.3.8
NAND08GAH0A, NAND16GAH0D
READ_BL_PARTIAL
Defines whether partial block sizes can be used in block read commands.
●
8.3.9
NAND08GAH0A and NAND16GAH0D (densities ≤2 Gbytes, byte access mode):
–
READ_BL_PARTIAL = ‘0’ means that only the 512-byte and the READ_BL_LEN
size can be used for block oriented data transfers.
–
READ_BL_PARTIAL = ‘1’ means that smaller blocks can be used as well. The
minimum block size will be equal to minimum addressable unit (one byte).
WRITE_BLK_MISALIGN
Defines if the data block to be written by one command can be spread over more than one
physical block of the memory device. The size of the memory block is defined in
WRITE_BL_LEN.
WRITE_BLK_MISALIGN=0 signals that cross physical block boundaries are invalid.
WRITE_BLK_MISALIGN=1 signals that cross physical block boundaries are allowed.
8.3.10
READ_BLK_MISALIGN
Defines if the data block to be read by one command can be spread over more than one
physical block of the memory device. The size of the memory block is defined in
READ_BL_LEN.
READ_BLK_MISALIGN=0 signals that cross physical block boundaries are invalid.
READ_BLK_MISALIGN=1 signals that cross physical block boundaries are allowed.
8.3.11
DSR_IMP
This parameter allows to select the configurable driver stage on the device. If set, a driver
stage register (DSR) must be implemented also.
Table 41.
DSR implementation code
DSR_IMP
8.3.12
DSR type
0
DSR is not implemented
1
DSR implemented
C_SIZE
This parameter is used to compute the NAND08GAH0A and NAND16GAH0D memory
density.
The memory capacity of the device is computed from the entries C_SIZE, C_SIZE_MULT
and READ_BL_LEN as follows:
Memory capacity = BLOCKNR * BLOCK_LEN, where:
●
BLOCKNR = (C_SIZE+1) * MULT
●
MULT = 2C_SIZE_MULT+2 (C_SIZE_MULT < 8)
●
BLOCK_LEN = 2READ_BL_LEN, (READ_BL_LEN < 12)
Therefore, the maximal capacity which can be coded is 4096*512*2048 = 4 Gbytes.
60/116
NAND08GAH0A, NAND16GAH0D
Device registers
Example: A 4 Mbyte device with BLOCK_LEN = 512 can be coded by C_SIZE_MULT = 0
and C_SIZE = 2047.
8.3.13
VDD_R_CURR_MIN, VDD_W_CURR_MIN
The minimum values for read and write currents at the minimum VCC power supply
(VCCmin) are coded as follows:
Table 42.
Current consumption at VCCmin
VDD_R_CURR_MIN
Code for current consumption at VCCmin
VDD_W_CURR_MIN
2:0
0 = 0.5 mA; 1 = 1 mA; 2 = 5 mA; 3 = 10 mA;
4 = 25 mA; 5 = 35 mA; 6 = 60 mA; 7 = 100 mA
The values in these fields are valid when the device is not in high speed mode. When the
device is in High Speed mode, the current consumption is chosen by the host, from the
power classes defined in the PWR_ff_vvv registers, in the EXT_CSD register.
8.3.14
VDD_R_CURR_MAX, VDD_W_CURR_MAX
The maximum values for read and write currents at the maximum VCC power supply
(VCCmax) are coded as follows:
Table 43.
Current consumption at VCCmax
VDD_R_CURR_MAX
Code for current consumption at VCCmax
VDD_W_CURR_MAX
2:0
0 = 1 mA; 1 = 5 mA; 2 = 10 mA; 3 = 25 mA;
4 = 35 mA; 5 = 45 mA; 6 = 80 mA; 7 = 200 mA
The values in these fields are valid when the device is not in High Speed mode. When the
device is in high speed mode, the current consumption is chosen by the host, from the
power classes defined in the PWR_ff_vvv registers, in the EXT_CSD register.
8.3.15
C_SIZE_MULT
This parameter is used for coding a factor MULT for computing the total device size (see
Section 8.3.12: C_SIZE). The factor MULT is defined as 2C_SIZE_MULT+2.
Table 44.
Multiply factor for the device size
C_SIZE_MULT
MULT
0
22 = 4
1
23 = 8
2
24 = 16
3
25 = 32
4
26 = 64
5
27 = 128
6
28 = 256
7
29 = 512
61/116
Device registers
8.3.16
NAND08GAH0A, NAND16GAH0D
ERASE_GRP_SIZE
The contents of this register is a 5 bit binary coded value used to calculate the size of the
erasable unit of the device. The size of the erase unit (also referred to as erase group) is
determined by the ERASE_GRP_SIZE and the ERASE_GRP_MULT entries of the CSD,
using the following equation:
size of erasable unit = (ERASE_GRP_SIZE+1) * (ERASE_GRP_MULT +1)
This size is given as the minimum number of write blocks that can be erased in a single
erase command.
8.3.17
ERASE_GRP_MULT
A 5 bit binary coded value used for calculating the size of the erasable unit of the device.
See Section 8.3.16: ERASE_GRP_SIZE for detailed description.
8.3.18
WP_GRP_SIZE
The size of a write protected group. The contents of this register is a 5 bit binary coded
value, defining the number of erase groups that can be write protected. The actual size is
computed by increasing this number by one. A value of zero means 1 erase group, 31
means 32 erase groups.
8.3.19
WP_GRP_ENABLE
A value of ‘0’ means no group write protection possible.
8.3.20
DEFAULT_ECC
Set by the device manufacturer. It defines the ECC code which is recommended for use.
The field definition is the same as for the ECC field described later.
8.3.21
R2W_FACTOR
Defines the typical block program time as a multiple of the read access time. The following
table defines the field format.
Table 45.
R2W_FACTOR
R2W_FACTOR
62/116
Multiples of read access time
0
1
1
2 (write half as fast as read)
2
4
3
8
4
16
5
32
6
64
7
128
NAND08GAH0A, NAND16GAH0D
8.3.22
Device registers
WRITE_BL_LEN
Block length for write operations. See READ_BL_LEN for field coding.
8.3.23
WRITE_BL_LEN
Block length for write operations. See Section 8.3.7: READ_BL_LEN for field coding.
Note that the support for 512 byte write access is mandatory for all cards. And that the cards
has to be in 512 byte block length mode by default after power-up, or software reset. The
purpose of this register is to indicate the maximum write data block length supported.
Defines whether partial block sizes can be used in block write commands.
●
8.3.24
NAND08GAH0A and NAND16GAH0D (densities ≤2 Gbytes, byte access mode):
–
WRITE_BL_PARTIAL=’0’ means that only the 512 bytes and the WRITE_BL_LEN
block size can be used for block oriented data write.
–
WRITE_BL_PARTIAL=’1’ means that smaller blocks can be used as well. The
minimum block size is one byte.
FILE_FORMAT_GRP
Indicates the selected group of file formats. This field is read-only for ROM. The usage of
this field is shown in Table 46: File formats.
8.3.25
COPY
Defines if the contents is original (= ‘0’) or has been copied (=‘1’). The COPY bit for OTP and
MTP devices, sold to end consumers, is set to ‘1’ which identifies the device contents as a
copy. The COPY bit is a one-time-programmable bit.
8.3.26
PERM_WRITE_PROTECT
Permanently protects the whole device content against overwriting or erasing (all write and
erase commands for this device are permanently disabled). The default value is ‘0’, i.e. not
permanently write protected.
8.3.27
TMP_WRITE_PROTECT
Temporarily protects the whole device content from being overwritten or erased (all write
and erase commands for this device are temporarily disabled). This bit can be set and reset.
The default value is ‘0’, i.e. not write protected.
8.3.28
CONTENT_PROT_APP
This field in the CSD indicates whether the content protection application is supported.
MultiMediaCards which implement the content protection application will have this bit set to
‘1’.
63/116
Device registers
8.3.29
NAND08GAH0A, NAND16GAH0D
FILE_FORMAT
Indicates the file format on the device. This field is read-only for ROM. The following formats
are defined:
Table 46.
8.3.30
File formats
FILE_FORMAT_GRP
FILE_FORMAT
Type
0
0
Hard disk-like file system with partition table.
0
1
DOS FAT (floppy-like) with boot block only (no
partition table).
0
2
Universal file format
0
3
Others/unknown
1
0,1,2,3
Reserved
ECC
Defines the ECC code that was used for storing data on the device. This field is used by the
host (or application) to decode the user data. The following table defines the field format:
Table 47.
8.3.31
ECC type
ECC
ECC type
Maximum number of correctable
bits per block
0
None (default)
none
1
BCH (542,512)
3
2-3
Reserved
-
CRC
The CRC field carries the check sum for the CSD contents. It is computed according to
Section 11: Error protection. The checksum has to be recalculated by the host for any CSD
modification. The default corresponds to the initial CSD contents.
The following table lists the correspondence between the CSD entries and the command
classes. A ‘+’ entry indicates that the CSD field affects the commands of the related
command class.
64/116
NAND08GAH0A, NAND16GAH0D
Table 48.
Device registers
CSD field command classes
Command classes
CSD field
0
1
2
3
4
5
6
7
8
9
CSD_STRUCTURE
+
+
+
+
+
+
+
+
+
+
SPEC_VERS
+
+
+
+
+
+
+
+
+
+
TAAC
+
+
+
+
+
+
+
+
NSAC
+
+
+
+
+
+
+
+
TRAN_SPEED
+
+
+
+
+
+
+
+
+
+
+
+
+
+
CCC
+
READ_BL_LEN
+
READ_BL_PARTIAL
+
WRITE_BLK_MISALIGN
+
READ_BLK_MISALIGN
DSR_IMP
+
+
+
+
+
+
+
+
+
+
C_SIZE_MANT
+
+
+
+
+
+
+
+
C_SIZE_EXP
+
+
+
+
+
+
+
+
VDD_R_CURR_MIN
+
+
VDD_R_CURR_MAX
+
+
VDD_W_CURR_MIN
+
+
+
+
+
+
VDD_W_CURR_MAX
+
+
+
+
+
+
+
+
+
+
WP_GRP_SIZE
+
+
+
WP_GRP_ENABLE
+
+
+
ERASE_GRP_SIZE
DEFAULT_ECC
+
+
+
+
+
+
+
+
R2W_FACTOR
+
+
+
+
+
+
WRITE_BL_LEN
+
+
+
+
+
+
WRITE_BL_PARTIAL
+
+
+
+
+
+
FILE_FORMAT_GRP
COPY
+
+
+
+
+
+
+
+
+
+
PERM_WRITE_PROTECT
+
+
+
+
+
+
+
+
+
+
TMP_WRITE_PROTECT
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
FILE_FORMAT
ECC
CRC
+
+
65/116
Device registers
8.4
NAND08GAH0A, NAND16GAH0D
Extended CSD register
The Extended CSD Register defines the device properties and selected modes. It is 512
bytes long. The 320 most significant bytes are the properties segment that defines the
device capabilities and cannot be modified by the host. The 192 lower bytes are the modes
segment that defines the configuration the device is working in.
These modes can be changed by the host by means of the SWITCH command.
Table 49.
Extended CSD(1)
Name
Field
Size (bytes)
Cell type
CSD-slice
CSDslice
value
Properties segment
Reserved(2)
Supported command
sets
7
S_CMD_SET
Reserved(2)
Reserved
66/116
(2)
[511:505]
TBD
[504]
00
288
[503:216]
TBD
1
[211]
TBD
1
R
Minimum Write
performance for 8 bit at MIN_PERF_W_8_52
52 MHz
1
R
[210]
0x08
Minimum Read
performance for 8 bit at MIN_PERF_R_8_52
52 MHz
1
R
[209]
0x08
Minimum Write
performance for 8 bit at MIN_PERF_W_8_26_
1
26 MHz / 4 bit at
4_52
52 MHz
R
[208]
0x08
Minimum Read
performance for 8 bit at MIN_PERF_R_8_26_
1
26 MHz / 4 bit at
4_52
52 MHz
R
[207]
0x08
Minimum Write
performance for 4 bit at MIN_PERF_W_4_26
26 MHz
1
R
[206]
0x08
Minimum Read
performance for 4 bit at MIN_PERF_R_4_26
26 MHz
1
R
[205]
0x08
Reserved(2)
1
[204]
TBD
Power class for
26 MHz at 3.6 V
PWR_CL_26_360
1
R
[203]
00
Power class for
52 MHz at 3.6 V
PWR_CL_52_360
1
R
[202]
00
Power class for
26 MHz at 1.95 V
PWR_CL_26_195
1
R
[201]
00
NAND08GAH0A, NAND16GAH0D
Table 49.
Device registers
Extended CSD(1) (continued)
Name
Field
Power class for
52 MHz at 1.95 V
PWR_CL_52_195
Reserved(2)
1
Cell type
R
3
Card type
Reserved
Size (bytes)
CARD_TYPE
(2)
1
R
1
CSD structure version
CSD_STRUCTURE
1
R
CSD-slice
CSDslice
value
[200]
00
[199:197]
TBD
[196]
01
[195]
TBD
[194]
02
[193]
TBD
Reserved(2)
1
Extended CSD revision EXT_CSD_REV
1
R
[192]
01
1
R/W
[191]
00
[190]
TBD
[189]
00
[188]
TBD
[187]
00
[186]
TBD
[185]
00
[184]
TBD
[183]
00
1
[182]
TBD
181
[180:0]
TBD
Modes segment
Command Set
CMD_SET
Reserved(2)
1
Command set revision
Reserved
CMD_SET_REV
(2)
RO
1
Power class
POWER_CLASS
Reserved(2)
1
R/W
1
High speed interface
timing
HS_TIMING
Reserved(2)
1
R/W
1
Bus Width mode
BUS_WIDTH
Reserved(2)
Reserved
1
(2)
1
WO
1. TBD stands for ‘to be defined’.
2. Reserved bits should read as ‘0’.
8.4.1
S_CMD_SET
This field defines which command sets are supported by the device.
Table 50.
Supported command sets
Bit
7-5
Command set
Reserved
4
Allocated by MMCA
3
Allocated by MMCA
2
Allocated by MMCA
1
Allocated by MMCA
0
Standard MMC
67/116
Device registers
8.4.2
NAND08GAH0A, NAND16GAH0D
MIN_PERF_a_b_ff
These fields defines the overall minimum performance value for the read and write access
with different bus width and maximum clock frequency modes. The value in the register is
coded as follows. Other than defined values are illegal.
Table 51.
Value
68/116
R/W access performance values
Performance
0x00
For devices not reaching the 2.4 Mbyte/s minimum value
0x08
Class A: 2.4 Mbyte/s and is the lowest allowed value for MMCplus and
MMCmobile(16 x 150 Kbyte/s)
0x0A
Class B: 3.0 Mbyte/s and is the next allowed value (20 x 150 Kbyte/s)
0x0F
Class C: 4.5 Mbyte/s and is the next allowed value (30 x 150 Kbyte/s)
0x14
Class D: 6.0 Mbyte/s and is the next allowed value (40 x 150 Kbyte/s)
0x1E
Class E: 9.0 Mbyte/s and is the next allowed value (60 x 150 Kbyte/s)
This is also the highest class which any MMCplus or MMC mobile card is needed to
support in low bus category operation mode (26 MHz with 4 bit data bus).
An MMCplus or MMCmobile card supporting any higher class than this has to support
this class also (in low category bus operation mode).
0x28
Class F: Equals 12.0 Mbyte/s and is the next allowed value (80 x 150 Kbyte/s)
0x32
Class G: Equals 15.0 Mbyte/s and is the next allowed value (100 x 150 Kbyte/s)
0x3C
Class H: Equals 18.0 Mbyte/s and is the next allowed value (120 x 150 Kbyte/s)
0x46
Class J: Equals 21.0 Mbyte/s and is the next allowed value (140 x 150 Kbyte/s)
This is also the highest class which any MMCplus or MMCmobile card is needed to
support in mid bus category operation mode (26 MHz with 8 bit data bus or 52 MHz with
4 bit data bus).
An MMCplus or MMCmobile card supporting any higher class than this has to support
this class (in mid category bus operation mode) and class E also (in low category bus
operation mode)
0x50
Class K: Equals 24.0 Mbyte/s and is the next allowed value (160 x 150 Kbyte/s)
0x64
Class M: Equals 30.0 Mbyte/s and is the next allowed value (200 x 150 Kbyte/s)
0x78
Class O: Equals 36.0 Mbyte/s and is the next allowed value (240 x 150 Kbyte/s)
0x8C
Class R: Equals 42.0 Mbyte/s and is the next allowed value (280 x 150 Kbyte/s)
0xA0
Class T: Equals 48.0 MByte/s and is the last defined value (320 x 150 Kbyte/s)
NAND08GAH0A, NAND16GAH0D
8.4.3
Device registers
PWR_CL_ff_vvv
These fields define the supported power classes by the device. By default, the device has to
operate at maximum frequency using 1 bit bus configuration, within the default maximum
current consumption, as stated in the table below. If 4 bit/8 bit bus configurations, require
increased current consumption, it has to be stated in these registers.
By reading these registers the host can determine the power consumption of the device in
different bus modes. Bits [7:4] code the current consumption for the 8 bit bus configuration.
Bits [3:0] code the current consumption for the 4 bit bus configuration
The PWR_52_vvv registers are not defined for 26 MHz MultiMediaCards.
Table 52.
Voltage
3.6 V
Power classes
Value
Max rms current
Max peak current
Comments
0
100 mA
200 mA
Default current consumption for
high voltage devices
1
120 mA
220 mA
2
150 mA
250 mA
3
180 mA
280 mA
4
200 mA
300 mA
5
220 mA
320 mA
6
250 mA
350 mA
7
300 mA
400 mA
8
350 mA
450 mA
9
400 mA
500 mA
10
450 mA
550 mA
11-15
1.95 V
Reserved for future use
0
65 mA
130 mA
1
70 mA
140 mA
2
80 mA
160 mA
3
90 mA
180 mA
4
100 mA
200 mA
5
120 mA
220 mA
6
140 mA
240 mA
7
160 mA
260 mA
8
180 mA
280 mA
9
200 mA
300 mA
10
250 mA
350 mA
11-15
Default current consumption for
dual voltage devices
Reserved for future use
69/116
Device registers
NAND08GAH0A, NAND16GAH0D
The measurement for maximum rms current is the average of rms current consumption over
a period of 100 ms.
The maximum peak current is defined as the absolute maximum value not to be exceeded.
The conditions under which the power classes are defined are:
●
Maximum bus frequency
●
Maximum operating voltage
●
Worst case functional operation
●
Worst case environmental parameters (temperature,...)
These registers define the maximum power consumption for any protocol operation in data
transfer mode, Ready state and Identification state.
8.4.4
CARD_TYPE
This field defines the type of the device. The only currently valid values for this field are 0x01
and 0x03.
Table 53.
Card type
Bit
Card type
7:2
8.4.5
Reserved
1
High speed MultiMediaCard at 52 MHz
0
High speed MultiMediaCard at 26 MHz
CSD_STRUCTURE
This field is a continuation of the CSD_STRUCTURE field in the CSD Register.
Table 54.
CSD Register structure
CSD_STRUCTURE
CSD structure version
0
CSD version No. 1.0
Allocated by MMCA
1
CSD version No. 1.1
Allocated by MMCA
2
CSD version No. 1.2
Version 4.1 - 4.2
3-255
8.4.6
Valid for system specification version
Reserved for future use
EXT_CSD_REV
Defines the fixed parameters. related to the EXT_CSD, according to its revision.
Table 55.
Extended CSD revision
EXT_CSD_REV
255-3
70/116
Extended CSD revision
Reserved
2
Revision 1.2
1
Revision 1.1
0
Revision 1.0
NAND08GAH0A, NAND16GAH0D
8.4.7
Device registers
CMD_SET
Contains the binary code of the command set that is currently active in the device. It is set to
‘0’ (Standard MMC) after power up and can be changed by a SWITCH command. Note that
while changing the command set with the switch command, values according to the
S_CMD_SET Register should be used, for example, bit0 set=0x01 for standard MMC.
8.4.8
CMD_SET_REV
Contains a binary number reflecting the revision of the currently active command set. For
standard MMC the command set it is:
Table 56.
Standard MMC command set revisions
Code
255-1
0
MMC revision
Reserved
v4.0
This field, though in the modes segment of the EXT_CSD, is read only.
8.4.9
POWER_CLASS
This field contains the 4-bit value of the selected power class for the device. The power
classes are defined in Table 57. The host should be responsible of properly writing this field
with the maximum power class it allows the device to use. The device uses this information
to, internally, manage the power budget and deliver an optimized performance.
This field is 0 after power-up or software reset.
Table 57.
Power class code
Bits
8.4.10
Description
[7:4]
Reserved
[3:0]
Device power class code (See Table 47)
HS_TIMING
This field is 0 after power-up, or software reset, thus selecting the backwards compatibility
interface timing for the device. If the host writes 1 to this field, the device changes its timing
to high speed interface timing (see Table 9).
8.4.11
BUS_WIDTH
It is set to ‘0’ (1 bit data bus) after power-up and can be changed by a SWITCH command.
Table 58.
Bus mode values
Value
255-3
Bus mode
Reserved
2
8 bit data bus
1
4 bit data bus
0
1 bit data bus
71/116
Device registers
8.5
NAND08GAH0A, NAND16GAH0D
RCA (relative card address) register
The writable 16-bit relative card address (RCA) register carries the device address assigned
by the host during the device identification. This address is used for the addressed host-card
communication after the device identification procedure. The default value of the RCA
register is 0x0001. The value 0x0000 is reserved to set all cards into the Standby state with
CMD7.
8.6
DSR (driver stage register) register
The 16-bit driver stage register (DSR) can be optionally used to improve the bus
performance for extended operating conditions (depending on parameters like bus length,
transfer rate or number of devices on the bus).
The CSD register contains the information concerning the DSR register usage.
The default value of the DSR register is ‘0x404’.
8.7
Status register
The Status register provides information about the device current state and completion
codes for the last host command. The device status can be explicitly read (polled) with the
SEND_STATUS command. The MultiMediaCard Status register structure is defined in
Section 8.7: Status register.
Each of the Status register bit has three attributes:
●
●
72/116
Type
There are two types of Status register bits:
–
Error bit (E): it signals an error condition detected by the device. Error bits are
cleared as soon as the response reporting the error is sent back.
–
Status bit (S): it provides information on the device status and do not alter the
execution of the command being responded to. Status bits are non-volatile. They
are set and cleared according to the device status.
Detection mode
Exceptions can be detected by the device either during the command interpretation
and validation phase (Response mode) or during command execution phase
(Execution mode).
–
Response mode (R) exceptions are reported in the response to the command that
raised the exception. The command is not executed and the associated state
transition does not take place.
–
Execution mode (X) exceptions are reported in the response to a
STOP_TRANSMISSION command used to terminate the operation or in the
response to a GET_STATUS command issued while the operation is being carried
out or after the operation is completed. When an error is detected in X mode, the
error will be reported in the response to the next command. Note that
ADDRESS_OUT_OF_RANGE and ADDRESS_MISALIGN exceptions may be
detected both in Response and Execution modes. The conditions for each one of
the modes are explicitly defined in Table 59.
NAND08GAH0A, NAND16GAH0D
●
Table 59.
Bits
Device registers
Clear condition
Status Register bits clear condition can be of three types:
–
The bit is cleared according to the device current state (A).
–
The bit value is always related to the previous command (B). The bit is cleared at
reception of a valid command (with a delay of one command).
–
The bit is cleared by read operation (C).
Status register
Identifier
Type
Detection
mode
Value
R
31
ADDRESS_OUT_OF_
RANGE
E
X
‘0’= no error
‘1’= error
R
30
ADDRESS_MISALIGN
‘0’= no error
‘1’= error
E
X
Description
Clear
condition
Command argument not allowed
B
Single/multiple block operation
attempting to read or write beyond
the device address space
B
Command using misaligned
address, not matching the block
length.
Multiple block read/write operation
attempting to read or write data
block which does not align with the
device memory blocks.
B
29
BLOCK_LEN_ERROR
E
R
‘0’= no error
‘1’= error
Transferred block length not allowed,
or number of bytes transferred not
matching the block length.
B
28
ERASE_SEQ_ERROR
E
R
‘0’= no error
‘1’= error
An error occurred in the erase
command sequence.
B
27
ERASE_PARAM
E
X
‘0’= no error
‘1’= error
Invalid selection of erase groups
during erase operation
B
26
WP_VIOLATION
E
X
‘0’= not
Attempt to write to a write protected
protected
block.
‘1’= protected
B
25
CARD_IS_LOCKED
S
R
‘0’ = unlocked This bit is set when the device is
‘1’ = locked locked by the host
A
This bit is set when a sequence or
password error has been detected
during a Lock/Unlock command or if
there was an attempt to access a
locked device
B
24
LOCK_UNLOCK_
FAILED
E
X
‘0’= no error
‘1’= error
23
COM_CRC_ERROR
E
R
‘0’= no error
‘1’= error
CRC check of the previous
command failed.
B
22
ILLEGAL_COMMAND
E
R
‘0’= no error
‘1’= error
Illegal command not legal for the
current state
B
21
CARD_ECC_FAILED
E
X
‘0’= success Card internal ECC performed but
‘1’= failure failed to correct the data
B
20
CC_ERROR
E
R
‘0’= no error
‘1’= error
B
Internal device controller error
73/116
Device registers
Table 59.
NAND08GAH0A, NAND16GAH0D
Status register (continued)
Bits
Identifier
Type
Detection
mode
Value
Description
Clear
condition
19
ERROR
E
X
‘0’= no error
‘1’= error
General or unknown error occurred
during operation
B
18
UNDERRUN
E
X
‘0’
B
17
OVERRUN
E
X
‘0’
B
16
CID/
CSD_OVERWRITE
E
X
15
WP_ERASE_SKIP
E
X
14
13
Can be one of the following errors:
- The CID register has been
already written and cannot be
overwritten
- The read only section of the CSD
does not match the device
content.
- An attempt to reverse the copy
(set as original) or permanent WP
(unprotected) bits was made.
B
‘0’=not
Partial address space erased due to
protected
existing write protected blocks
‘1’= protected
B
‘0’= no error
‘1’= error
Reserved (must be set to 0)
ERASE_RESET
E
R
‘0’= cleared
‘1’= set
Erase sequence cleared before
executing because an out of erase
sequence command was received
B
0 = idle
1 = ready
2 = ident
3 = stby
4 = tran
5 = data
6 = rcv
7 = prg
8 = dis
9 = btst
10-15 =
reserved
The state of the device when
receiving the command. If the
command execution causes a state
change, it will be visible to the host
in the response to the next
command. The four bits are
interpreted as a binary coded
number between 0 and 15.
A
12-9
CURRENT_STATE
S
R
8
READY_FOR_DATA
S
R
‘0’= not ready Corresponds to buffer empty
signaling on the bus
‘1’= read
A
7
SWITCH_ERROR
E
X
‘0’= not error If set, the device did not switch to
the expected mode as requested by
‘1’= error
the SWITCH command
B
6-4
Reserved
5
3, 2 Reserved for application specific commands
1, 0 Reserved for manufacturer test mode
74/116
‘1’
NAND08GAH0A, NAND16GAH0D
9
Timings
Timings
All timing diagrams use the abbreviations shown in Table 60.
Bit P is actively driven High by the device respective to the host output driver, while bit Z is
driven High by the pull-up resistors RCMD and RDAT. Actively driven P bits are less sensitive
to noise superposition.
All timing values are shown in Table 61.
Table 60.
Timing symbols
S
Start bit (= 0)
T
Transmitter bit (Host = 1, Device = 0)
P
One-cycle Pull-up (= 1)
E
End bit (=1)
Z
High Impedance state
D
Data bits
*
Repeater
CRC
Cyclic Redundancy Check bits (7 bits)
Table 61.
Timing values
Timing
Min
Max
Unit
NCR
2
64
Clock cycles
NID
5
5
Clock cycles
NAC
2
10(TAAC fOP + 100NSAC)
Clock cycles
NRC
8
-
Clock cycles
NCC
8
-
Clock cycles
NWR
2
-
Clock cycles
NST
2
2
Clock cycles
75/116
Timings
9.1
NAND08GAH0A, NAND16GAH0D
Command and response timings
Both host command and device response are clocked out with the rising edge of the host
clock.
9.1.1
Card identification and card operation conditions
The Card Identification (CMD2) and Card Operation Conditions (CMD1) commands are
processed in the open-drain mode. The minimum delay between the host command and
device response is NID clock cycles.
Figure 13 shows the identification timing diagram.
Figure 13. Identification timing diagram (Card Identification mode)
Host Command
CMD
S T
Content
NID Cycles
CRC E Z * * * * * * Z S T
CID or OCR
Content
ZZ Z
AI13196
9.1.2
Assignment of relative card address
The SET_RCA command (CMD 3) is also processed in open-drain mode. The minimum
delay between the host command and device response is NCR clock cycles.
Figure 14 shows the SET_RCA timing diagram.
Figure 14. SET_RCA timing diagram (Card Identification mode)
Host Command
CMD
S T
NID Cycles
CRC E Z * * * * * * Z S T
Content
Response
Content
CRC E Z Z Z
AI04333
9.1.3
Data Transfer mode
After an RCA has been assigned to the device, it switches to Data Transfer mode. In this
mode the CMD line is driven with push-pull drivers.
The command is followed by a two Z-bit period to allow direction switching on the bus, and
by P bits pushed up by the responding device.
This timing diagram shown on Figure 15 applies to all host command responses except for
CMD1, CMD2, and CMD3.
Figure 15. Command response timing diagram (Data Transfer mode)
Host Command
CMD
S T
Content
NCRCycles
CRC E Z Z P * * * * * P S T
Response
Content
CRC E Z Z Z
AI04334
76/116
NAND08GAH0A, NAND16GAH0D
9.1.4
Timings
R1b responses
Some commands, like CMD6, may assert the busy flag and send back a R1 response. If the
busy flag is asserted, this is done two clock cycles after the end bit of the command.
The DAT0 line is driven Low, DAT1-DAT7 lines are driven by the device though their values
are not relevant.
Figure 16. R1b response timing diagram
Host Command
CMD
S T
Content
CRC E Z Z Z Z Z
NST
DAT0
Z Z Z Z Z Z Z Z Z Z Z ZS L
DAT1-7 Z Z Z Z Z Z Z Z Z Z Z Z X
*****************
Card busy
Z Z Z Z Z Z
E Z Z Z
X Z Z Z
*****************
*****************
AI13197
9.1.5
Last device response to Next Host command
After receiving the last device response, the host can start the next command transmission
after a minimum delay of is NCR clock cycles.
The timing diagram shown on Figure 17 applies to all host commands.
Figure 17. Last device response to Next Host command timing diagram
Response
CMD
S T
Content
NRCCycles
Host Command
CRC E Z * * * * * * * * Z S T
Content
CRC E Z Z
AI13198
9.1.6
Last Host command to Next Host command
After the last command has been sent, the host can continue issuing the next command. A
minimum delay of NCC clock periods must be respected between the two commands.
If the device has not responded to the ALL_SEND_CID command after NID+1 clock
periods, the host can conclude that no devices are present on the bus.
See Figure 18 for a description of the timing diagram.
Figure 18. Command n end to CMD n+1 start timing diagram (all modes)
Host Command
CMD
S T
Content
NCCCycles
CRC E Z * * * * * * * * Z S T
Host Command
Content
CRC E Z Z
AI13199
77/116
Timings
NAND08GAH0A, NAND16GAH0D
9.2
Data Read timings
9.2.1
Single Block Read
The host selects one device for data read operation by issuing a CMD7 command. It then
sends a CMD16 command to set the valid block length for block oriented data transfer.
Figure 19 shows the timing diagram for a Single Block Read operation. The sequence starts
with a single block read command (CMD17) which specifies the start address in the
argument field. The response is sent on the CMD line as usual. Data transmission starts
NAC clock cycles after the end bit of the host command. After the last data bit, the CRC
check bits are suffixed to allow the host to check for transmission errors.
Figure 19. Single Block Read command timing diagram
Host Command
CMD S T
Content
NCR
Cycles
Card Response
CRC E Z Z P * * * P S T
NAC Cycles
DAT
Content
CRC E
Read Data
Z ZZ **** Z Z Z Z Z Z P ********* P S DD D***
AI04330
9.2.2
Multiple Block Read
In Multiple Block Read mode, the device sends a continuous flow of data blocks following
the initial host read command. The data flow is terminated by a STOP_TRANSMISSION
command (CMD12).
Figure 20 describes the timing of the data blocks and Figure 21 the response to a
STOP_TRANSMISSION command. The data transmission stops two clock cycles after the
end bit of the STOP_TRANSMISSION command.
Figure 20. Multiple Block Read command timing diagram
Host Command
CMD S T
Content
NCR
Cycles
CRC E Z Z P * P S T
NAC Cycles
DAT
Card Response
Content
CRC E Z Z P P P P P P P P P P P P P
Read Data
NAC Cycles
Read Data
Z ZZ **** Z Z Z Z Z Z P ******** P S DD D *** * D E P ****** P S D DD D D
AI04331
78/116
NAND08GAH0A, NAND16GAH0D
Timings
Figure 21. STOP_TRANSMISSION command timing diagram (CMD12, Data Transfer mode)
Host Command
CMD S T
DAT
Content
NCR
Cycles
CRC E Z Z P * * * P S T
Card Response
Content
CRC E
D DD ******** D D D E Z Z *******************
AI04329
9.3
Data Write timings
9.3.1
Single Block Write
Before performing a data write operation, the host must select the device by issuing a CMD7
command, and set the valid block length for block oriented data transfer by issuing a CMD16
command.
The timing diagram for Single Block Write operation is given on Figure 22. The sequence
starts with a single block write command (CMD24) which determines the start address. The
data transfer from the host starts NWR clock cycles after the device response was received.
The data is suffixed with CRC check bits to allow the device to check it for transmission
errors. The device sends back the CRC check result as a CRC status token on the data line.
In the case of transmission error the device sends a negative CRC status (‘101’). In the case
of non erroneous transmission the device sends a positive CRC status (‘010’) and starts the
data programming procedure.
During the write operation, the device notifies the host that it is busy by holding DAT0 Low.
The data line goes High as soon as at least one receive buffer becomes free.
Figure 22. Single Block Write command timing diagram
Host Cmd
CMD
DAT0
NCR
Cycles
Card Response
E Z Z P * P S T Content CRC E Z Z P * * * * * * * * * * * * * * * * * P P P P P P P P
CRC
Write Data
Busy
NWR
Status
Z Z ****** Z Z Z
* * * Z Z P*P S Content CRC E Z Z S Status E S L*L E Z
DAT1-7 Z Z * * * * * * Z Z Z
***
Z Z P*P S Content CRC E Z Z X
***
X Z
AI13600
79/116
Timings
9.3.2
NAND08GAH0A, NAND16GAH0D
Multiple Block Write
In Multiple Block Write mode, the device is sent a continuous flow of data blocks following
the initial host write command. The data flow is terminated by a STOP_TRANSMISSION
command (CMD12).
See Figure 23 for a description of Multiple Block Write timing diagrams with and without
device busy flag.
The STOP_TRANSMISSION command works in the same way as for Read operations. The
device considers a data block as successfully received and ready for programming only if
the CRC data of the block was validated and the CRC status token sent back to the host.
Figure 25 is an example of an interrupted attempt to transmit the CRC status block. The end
bit of the host command is followed, on the data line, with one more data bit, an end bit and
two Z clock for switching the bus direction. In this case the received data block is considered
incomplete and will not be programmed.
In an open-ended Multiple Block Write case the busy flag between the data blocks should
be considered as buffer busy flag. As long as there is no free data buffer available the device
should indicate this by pulling down the Dat0 line. The device stops pulling down DAT0 as
soon as at least one receive buffer for the defined data transfer block length becomes free.
After the device receives the stop command (CMD12), the following busy indication should
be considered as programming busy and being directly related to the Programming state. As
soon as the device completes the programming, it stops pulling down the Dat0 line.
In pre-defined Multiple Block Write case the busy flag between the data blocks should be
considered as buffer busy flag similar to the open-ended multiple block case. After the
device receives the last data block the following busy indication should be considered as
programming busy and being directly related to the Programming state. The meaning of
busy flag (from buffer busy to programming busy) changes at the same time with the state
change (from rcv to prg). The busy flag remains “low” all the time during the process and is
not released by the device between the state change from rcv to prg. As soon as the device
completes the programming, it stops pulling down the Dat0 line.
See Figure 24 and Figure 25 show examples of timing diagrams corresponding to host
stopping the data transmission during an active data transfer, while Figure 26 and Figure 27
describe scenarios of STOP_TRANSMISSION command received between data blocks
transmission. In Figure 26 the device is busy programming the last block while in Figure 27
the device is idle. Unprogrammed data blocks remain in the input buffers and will be
programmed as soon as the STOP_TRANSMISSION command is received and the device
activates the busy flag.
Figure 23. Multiple Block Write command timing diagram
Card
Rsp.
CMD
E Z Z P ***************** P P P P P ***************** P P PP P P P P P
CRC
CRC
NWR
Busy
NWR
NWR
Write Data
Write Data
Status
Status
DAT0
Z Z P*P S Data+CRC E Z Z S Status E Z P*P S Data+CRC E Z Z S Status E S L*L E Z P*P
DAT1-7 Z Z P*P S Data+CRC E Z Z X * * * * * X Z P*P S Data+CRC E Z Z X * * * * * * * * X Z P*P
AI13601
80/116
NAND08GAH0A, NAND16GAH0D
Timings
Figure 24. STOP_TRANSMISSION during data transfer from the host timing diagram
Host Command
CMD
NCRCycles
Host Cmd
Card response
S T Content CRC E Z Z P P * * * * * *P S T
Content
CRC E Z Z P P S T Content
Card is programming
NST
DAT0
D DD DD DD DD DE Z ZS L ********************* E Z Z Z Z Z Z Z Z
DAT1-7 D D D D D D D D D D E Z Z S L * * * * * * * * * * * * * * * * * * * * * X Z Z Z Z Z Z Z Z
AI13602
Figure 25. STOP_TRANSMISSION during CRC status transfer from the device timing diagram
Host Command
NCRCycles
Host Cmd
Card response
CMD
S T Content CRC E Z Z P P * * * * * *P S T Content CRC E Z Z P P S T Content
CRC
Card is programming
Data Block
Status(1)
DAT0 Data+CRC E Z Z S CRC E Z Z S L * * * * * * * * * * * * * * * * * * * * * E Z Z Z Z Z Z Z Z
DAT1-7 Data+CRC E Z Z X ***** X Z Z X * * * * * * * * * * * * * * * * * * * * * X Z Z Z Z Z Z Z Z
AI13603
1. The device CRC status response is interrupted by the host.
Figure 26. STOP_TRANSMISSION received after last data block (device busy)
Host Command
CMD
NCRCycles
Card response
S T Content CRC E Z Z P * * * P S T
Content
Host Cmd
CRC E Z Z P P P P S T Content
Card is programming
DAT0
L L
DAT1-7
X X ****************************************
****************************************
L E Z Z Z Z Z Z Z Z
XX Z Z Z Z Z Z Z Z
AI13604
Figure 27. STOP_TRANSMISSION received after last data block (device becomes busy)
Host Command
CMD
NCRCycles
Card response
S T Content CRC E Z Z P * * * P S T
Content
Host Cmd
CRC E Z Z P P P P S T Content
Card is programming
DAT0
Z Z Z Z Z Z Z Z Z Z Z S L
*********************
DAT1-7 Z Z Z Z Z Z Z Z Z Z Z X X
*********************
L E Z Z Z Z Z Z Z Z
XE Z Z Z Z Z Z Z Z
AI13605
81/116
Timings
9.3.3
NAND08GAH0A, NAND16GAH0D
Erase, Set and Clear Write Protect
The host must first select the groups to be erased using the ERASE_GROUP_START and
ERASE_GROUP_END commands (CMD35, CMD36). Once the ERASE command
(CMD38) is issued, all the selected erase groups are erased.
Similarly, SET_WRITE_PROT and CLR_WRITE_PROT commands start a write operation
as well. The device signals that it is busy by pulling the DAT0 line low for the duration of the
erase or program operation. The timing diagrams are identical to the
STOP_TRANSMISSION diagrams described in Figure 27.
9.3.4
Reselecting a busy device
When a busy device which is currently in the disable state is reselected, it reinstate its busy
signalling on the data line DAT0. The timing diagram for the command/response/busy
transaction is given in Figure 27.
9.4
Bus test procedure timing
When in transfer state, the host can initiate a bus test procedure. This is done by issuing
CMD19 command to the device. If there is no response to the CMD19, the host may
assume that this function is not supported by the device and should read the status from the
device by sending a CMD13 command.
Figure 28. 4-bit system bus test procedure
CMD
CMD19 RSP19
DAT0
Z Z
DAT1
Z Z
DAT2
Z Z
DAT3
Z Z
CMD14 RSP14
NWR
DAT4-7 Z Z
NRC
CMD6 RSP6
NAC
NAC
* * * * * * Z Z Z S 10 XXX
* * * * * * Z Z Z S 01 XXX
EZ Z
EZ Z
******
* * * * * * Z Z Z S 10 XXX
* * * * * * Z Z Z S 01 XXX
EZ Z
******
EZ Z
******
Z Z Z S 01 000000 CRC16 E Z Z * * * * * * Z Z Z
Z Z Z S 10 000000 CRC16 E Z Z * * * * * * Z Z Z
* * * * * * Z Z Z Z Z *** Z Z Z Z Z
******
Z Z Z S 01 000000 CRC16 E Z Z * * * * * * Z Z Z
******
Z Z Z S 01 000000 CRC16 E Z Z * * * * * * Z Z Z
Z Z Z S 10 000000 CRC16 E Z Z * * * * * * Z Z Z
AI13606
82/116
NAND08GAH0A, NAND16GAH0D
10
Serial peripheral interface (SPI) mode
Serial peripheral interface (SPI) mode
The SPI mode is an optional communications protocol in Flash based MultiMediaCards. It is
used to communicate with a microcontroller (host) through an SPI channel.
On power-up the MultiMediaCard defaults to the MultiMediaCard mode. The SPI mode is
selected by asserting the CS signal during a reset command (CMD0). This may be after
power-up but also anytime a reset command is issued. On entering the SPI mode, the
device returns the SPI mode R1 response. Once the MultiMediaCard enters SPI mode it
remains in this mode until the next power-up.
To run, the SPI mode implements a subset of the MultiMediaCard protocol and commands.
This mode is intended for systems which require multiple devices, generally one, to operate,
and have lower data transfer rates compared to MultiMediaCard protocol based systems.
The serial peripheral interface is a general purpose, synchronous interface designed to
communicate with SPI hosts through four lines:
10.1
●
CS: host to device Chip Select line
●
CLK: host to device clock line
●
DataIn, DI: unidirectional host to device data line
●
DataOut, DO: unidirectional device to host data line.
SPI bus topology
The host (master) selects a device (slave) by driving its CS pin Low. The CS pin must then
be kept Low during the entire SPI communication process (command, response and data).
During device programming, however, the host can de-assert the CS signal without affecting
the programming operation.
Single block and multiple read and write operations are supported by the SPI channel as
DataIn and DataOut are unidirectional.
Table 62 shows the MultiMediaCard pin assignment in SPI mode.
In SPI mode only the OCR, CSD and CID registers are accessible (see Table 63).
10.2
SPI electrical interface
The electrical interface in SPI mode is the same as the MultiMediaCard mode, except for the
programmable device output drivers option which is not available in SPI mode.
83/116
Serial peripheral interface (SPI) mode
10.3
NAND08GAH0A, NAND16GAH0D
SPI bus operating conditions
The SPI bus operating conditions are the same as for the MultiMediaCard mode.
Table 62.
SPI interface pin configuration
MultiMediaCard mode
Type(1)
Name
SPI mode
Description
Name
Type
Description
DAT3
I/O/PP
Data
CS
I
Chip Select
(active Low)
CMD
I/O/PP/ OD
Command/response
DI
I/PP
Data In
VSS1
S
Supply voltage
ground
VSS
S
Supply voltage
ground
VCC, VCCQ
S
Supply voltage
VCC
S
Supply voltage
CLK
I
Clock
SCLK
I
Clock
VSS2
S
Supply voltage
ground
VSS2
S
Supply voltage
ground
DAT0
I/O/PP
Data
DO
O/PP
Data Out
DAT1
I/O/PP
Data
Not used
DAT2
I/O/PP
Data
Not used
DAT4
I/O/PP
Data
Not used
DAT5
I/O/PP
Data
Not used
DAT6
I/O/PP
Data
Not used
DAT7
I/O/PP
Data
Not used
1. S = power supply; I = input; O = output; PP = push-pull; OD = open drain; NC = Not connected (or logical
High).
Table 63.
84/116
MultiMediaCard registers in SPI mode
Name
Available
Width (in bytes)
Description
CID
Yes
16
Card identification data (serial number,
manufacturer code, etc.)
RCA
No
DSR
No
CSD
Yes
16
Card specific data, card operation conditions
OCR
Yes
4
Operation condition register
NAND08GAH0A, NAND16GAH0D
10.4
Serial peripheral interface (SPI) mode
SPI bus protocol
While the MultiMediaCard channel is based on command and data bit streams which are
initiated by a start bit and terminated by a stop bit, the SPI channel is byte oriented. Every
command or data block consists of 8-bit bytes and is byte aligned to the CS signal (i.e. the
length is a multiple of 8 clock cycles).
Like in the MultiMediaCard protocol, the SPI messages consist of command, response and
data-block tokens (see Section 4). All communication between host and device is controlled
by the host (master). The host starts every bus transaction by asserting the CS signal Low.
The response behavior in the SPI mode differs from that in the MultiMediaCard mode in the
three following aspects:
●
The selected device always responds to the command
●
Additional (8, 16 & 40 bit) response structures are used
●
When the device encounters a data retrieval problem, it responds with an error
response (which replaces the expected data block) instead of a timeout in the
MultiMediaCard mode.
Only Single and Multiple Block Read/Write operations are supported in SPI mode
(sequential mode is not supported).
In addition to the command response, a special data response token is returned for every
data block sent to the device during write operations. A data block may be as big as one
device write block and as small as a single byte. Partial block read/write operations are
enabled by device options specified in the CSD Register.
10.4.1
Mode selection
The MultiMediaCard wakes up in the MultiMediaCard mode. It enters the SPI mode if the
CS signal is asserted (negative) during the reception of the reset command (CMD0). The
SPI mode can also be selected from other states than the Idle state (the state the device
enters after power-up). Every time the device receives CMD0, even while the device is in the
Inactive state, the CS signal is sampled.
If the device recognizes that the MultiMediaCard mode is required (CS signal is High), it
does not respond to the command and remains in the MultiMediaCard mode. If the SPI
mode is required (CS signal is Low), the device switches to the SPI mode and responds with
the SPI mode R1 response.
The only way to return to the MultiMediaCard mode is by a power-down cycle (turn the
power off an on). In SPI mode, the MultiMediaCard protocol state machine is not observed.
All the MultiMediaCard commands supported in the SPI mode are always available.
85/116
Serial peripheral interface (SPI) mode
10.4.2
NAND08GAH0A, NAND16GAH0D
Bus transfer protection
Every MultiMediaCard token transferred on the bus is protected by CRC (Cyclic
Redundancy Check) 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 device to SPI mode, is received by the device while in
MultiMediaCard mode and, therefore, must 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
The host can turn the CRC option on and off using the CRC_ON_OFF command (CMD59).
10.4.3
Data Read
The SPI mode supports Single and Multiple Block Read operations. 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 29 and Figure 30). Therefore
the device response to the STOP_COMMAND may cut-short and replace the last data
block.
Figure 29. SPI Single Block Read operation
from host
to card
Data in
Data out
from card
to host
data from card
to host
command
next
command
command
response
data block CRC
ai08345
86/116
NAND08GAH0A, NAND16GAH0D
Serial peripheral interface (SPI) mode
Figure 30. SPI Multiple Block Read operation
from host
to card
Data in
Data out
from card
to host
data from card
to host
command
next
command
STOP command
response
data block
CRC
data block
CRC
data b.
response
ai08346
The basic unit of data transfer is the block whose maximum size is defined in the CSD
(READ_BL_LEN).If READ_BL_PARTIAL is set, smaller blocks whose start and end
addresses are entirely contained within one physical block (as defined by READ_BL_LEN)
may also be transmitted. A CRC is appended to the end of each block to ensure data
transfer integrity. CMD17 (READ_SINGLE_BLOCK) initiates a single block read. CMD18
(READ_MULTIPLE_BLOCK) starts a transfer of several consecutive blocks. Two types of
Multiple Block Read transactions are defined (the host can use either of them at any time):
Open-ended Multiple Block Read
The number of blocks for the Multiple Block Read operation is not defined. The device
continuously transfers data blocks until a stop transmission command is received.
Multiple Block Read with pre-defined block count
The device transfers the requested number of data blocks and terminates the transaction. A
Stop command is not required at the end of this type of Multiple Block Read, unless it is
terminated with an error.
In order to start a Multiple Block Read with pre-defined block count the host must use the
SET_BLOCK_COUNT command (CMD23) just before issuing the
READ_MULTIPLE_BLOCK (CMD18) command. Otherwise the device starts an openended Multiple Block Read that can be stopped using the STOP_TRANSMISION command.
The host can abort reading at any time, within a multiple block operation, regardless of the
its type. Transaction abort is done by sending the STOP_TRANSMISION command.
If the host provides an out-of-range address as an argument to either CMD17 or CMD18, or
if the currently defined block length is illegal for a read operation, the device rejects the
command and responds with the ADDRESS_OUT_OF_RANGE or BLOCK_LEN_ERROR
bit set, respectively.
If the host sets the argument of the SET_BLOCK_COUNT command (CMD23) to all 0’s,
then the command is accepted, however, a subsequent read follows the open-ended
Multiple Block Read protocol (STOP_TRANSMISSION command - CMD12 - is required).
In case of a data retrieval error (such as out of range, address misalignment or internal
error) detected during data transfer, the device does not transmit any data. Instead (as
opposed to MultiMediaCard mode where the device times out), a special data error token is
sent to the host. Figure 31 shows a single block read operation terminated with an error
token and not a data block.
Multiple Block Read operation can be terminated in the same way, with the error token
replacing a data block anywhere in the sequence. The host must then abort the operation by
sending the STOP_TRANSMISSION command.
87/116
Serial peripheral interface (SPI) mode
NAND08GAH0A, NAND16GAH0D
If the host sends a STOP_TRANSMISSION command after the device transmitted the last
block of a Multiple Block Read with a pre-defined number of blocks, it is responded to as for
an illegal command.
If the host uses partial blocks whose accumulated length is not block aligned, and block
misalignment is not allowed, the device detects a block misalignment error condition during
the transmission of the first misaligned block and the content of the further transferred bits is
undefined. As the host sends CMD12, the device responds with the ADDRESS_MISALIGN
bit set.
Figure 31. SPI Read operation – data error
from host
to card
Data in
Data out
from card
to host
data error token
from card to host
command
next
command
command
response
data error
ai08347b
88/116
NAND08GAH0A, NAND16GAH0D
10.4.4
Serial peripheral interface (SPI) mode
Data Write
The SPI mode supports single block and Multiple Block Write commands. Upon reception of
a valid write command (CMD24 or CMD25), the device responds with a response token and
waits for the host to send a data block. The CRC suffix, block length and start address
restrictions are (with the exception of the CSD parameter WRITE_BL_PARTIAL controlling
the partial block write option) identical to the read operation (see Figure 29). If a CRC error
is detected it is reported in the data-response token and the data block is programmed.
Figure 32. SPI Single Block Write operation
from host
to card
Data in
from card
to host
Start
block
token
command
data from host
to card
command
data block
response
Data out
data response new command
and busy from
from host
card to host
data response busy
ai08354b
Figure 33. SPI Multiple Block Write operation
from host
to card
Data in
Data out
from
card
to host
command
Start
Block
token
data from
host
to card
data
response
and busy
from card
data from
host
to card
Stop Tran
token to card
data block
data block
response
Start
Block
token
data response busy
data response busy
busy
ai08355b
Every data block has a ‘Start block’ token prefix of one byte.
After receiving a data block, the device responds with a data-response token. If the data
block has been received without errors, it is programmed. As long as the device is busy
programming, a continuous stream of busy tokens is sent to the host (effectively holding the
DataOut line Low).
In Multiple Block Write operations the host stops the transmission by sending the ‘Stop tran’
token instead of the ‘Start block’ token at the beginning of the next block.
Two types of Multiple Block Write transactions, identical to the Multiple Block Read, are
defined (the host can use either of them at any time):
Open-ended Multiple Block Write
The number of blocks for the Multiple Block Write operation is not defined. The device
accepts and programs all received data blocks until it receives a ‘Stop tran’ token.
Multiple Block Write with pre-defined block count
The device accepts the requested number of data blocks and then terminates the
transaction. The ‘Stop tran’ token is not required at the end of this type of Multiple Block
Write operation, unless the operation is terminated with an error. In order to start a Multiple
89/116
Serial peripheral interface (SPI) mode
NAND08GAH0A, NAND16GAH0D
Block Write operation with pre-defined block count the host must issue the
SET_BLOCK_COUNT command (CMD23) just before sending the
WRITE_MULTIPLE_BLOCK (CMD25) command. Otherwise the device starts an openended Multiple Block Write operation that can be stopped using the ‘Stop tran’ token.
The host can abort writing at any time, within a Multiple Block Write operation, regardless of
its type. Transaction abort is done by sending the ‘Stop tran’ token. If a Multiple Block Write
operation with pre-defined block count is aborted, the data in the remaining blocks is not
defined.
If the host provides an out-of-range address as an argument to either CMD17 or CMD18, or
if the currently defined block length is illegal for a read operation, the device rejects the
command, remains in Tran state and responds with the ADDRESS_OUT_OF_RANGE or
BLOCK_LEN_ERROR bit set, respectively.
If the host sets the argument of the SET_BLOCK_COUNT command (CMD23) to all 0’s,
then the command is accepted, however, a subsequent write follows the open-ended
Multiple Block Write protocol (STOP_TRANSMISSION command - CMD12 - is required).
If the device detects a CRC error or a programming error (such as write protect violation, out
of range, address misalignment or internal error) during a Multiple Block Write operation
(both types) it reports the failure in the data-response token and ignores any further
incoming data blocks. The host must than abort the operation by sending the ‘Stop tran’
token.
If the host uses partial blocks whose accumulated length is not block aligned, and block
misalignment is not allowed (CSD parameter WRITE_BLK_MISALIGN is not set), the
device detects the block misalignment error upon reception of the first misaligned block,
aborts the write operation, and ignores all further incoming data. The host must abort the
operation by sending the ‘Stop tran’ token. The devices then responds by setting the
ADDRESS_MISALIGN bit.
Once the programming operation has completed (either successfully or with an error), the
host must check the results of the programming (or the cause of the error if already reported
in the data-response token) using the SEND_STATUS command (CMD13).
If the host sends a ‘Stop tran’ token after the device received the last data block of a multiple
block operation with pre-defined number of blocks, it is interpreted as the beginning of an
illegal command and the device responds accordingly.
When the device is busy, resetting the CS signal does not terminate the programming
process. The device simply releases the DataOut line (tri-state) and continues with the
programming. If the device is reselected before the programming is finished, the DataOut
line is forced back to Low and all commands are rejected.
Resetting a device (using CMD0) terminates any pending or active programming operations.
This may destroy the data formats on the device. It is the responsibility of the host to prevent
this.
90/116
NAND08GAH0A, NAND16GAH0D
10.4.5
Serial peripheral interface (SPI) mode
Erase and Write Protect management
The Erase and Write Protect management procedures in the SPI mode are identical to
those of the MultiMediaCard mode. While the device is erasing or changing the write
protection bits of the predefined erase groups list, it is in a busy state and holds the DataOut
line Low. Figure 34 illustrates a ‘no data’ bus transaction with and without busy signalling.
Figure 34. Erase and Write Protect operations
from host
to card
Data in
from card
to host
command
Data out
from host
to card
from card
to host
command
response
response busy
a
10.4.6
Read the CID and CSD registers
Unlike the MultiMediaCard protocol (where the register contents is sent as a command
response), reading the contents of the CSD and CID registers in SPI mode is a simple readblock transaction. The device responds with a standard response token (see Figure 31)
followed by a data block of 16 bytes suffixed with a 16 bit CRC.
The data time out for the CSD command cannot be set to the device TAAC since this value
is stored in the CSD.
Refer to Table 71 for timing values. For consistency, read CID transaction is identical to read
CSD.
10.4.7
Reset sequence
The MultiMediaCard requires a defined reset sequence. After power-up reset or CMD0
(software reset) the device enters an idle state. In this state the only legal host commands
are CMD1 (SEND_OP_COND) and CMD58 (READ_OCR).
The host must poll the device (by repeatedly sending CMD1) until the ‘in-idle-state’ bit in the
device response indicates (by being cleared to 0) that the device has completed its
initialization processes and is ready for the next command.
In SPI mode, as opposed to MultiMediaCard mode, CMD1 has no operands and does not
return the contents of the OCR register. Instead, the host may use CMD58 (available in SPI
mode only) to read the OCR register.
Furthermore, it is of the responsibility of the host to refrain from gaining access to a device
that does not support its voltage range.
The usage of CMD58 is not restricted to the initializing phase, the command can be issued
at any time. The host must poll the device (by repeatedly sending CMD1) until the ‘in-idlestate’ bit in the device response indicates (by being cleared to 0) that the device has
completed its initialization processes and is ready for the next command.
91/116
Serial peripheral interface (SPI) mode
10.4.8
NAND08GAH0A, NAND16GAH0D
Clock control
The SPI bus clock signal can be used by the SPI host to put the device into energy saving
mode or to control the data flow (to avoid under-run or over-run conditions) on the bus. The
host is allowed to change the clock frequency or shut it down.
There are a few restrictions the SPI host must follow:
●
The bus frequency can be changed at any time (under the restrictions of maximum
data transfer frequency, defined by the MultiMediaCards)
●
The clock must be running for the MultiMediaCard to output data or response tokens.
After the last SPI bus transaction, the host must provide 8 (eight) clock cycles for the
device to complete the operation before shutting down the clock. Throughout this 8clock period the state of the CS signal is irrelevant, it can be asserted or de-asserted.
The various SPI bus transactions are listed below:
10.4.9
●
A command / response sequence, 8 clocks after the device response end bit. The CS
signal can be asserted or de-asserted during these 8 clocks
●
A read data transaction, 8 clocks after the end bit of the last data block
●
A write data transaction, 8 clocks after the CRC status token
●
The host is allowed to shut down the clock of a “busy” device. The MultiMediaCard
completes the programming operation regardless of the host clock. However, the host
must provide a clock edge for the device to turn off its busy flag. Without a clock edge
the MultiMediaCard (unless previously disconnected by de-asserting the CS signal) will
force the DataOut line Low, permanently.
Error conditions
CRC and illegal command
All commands are (optionally) protected by CRC (cyclic redundancy check) bits. If the
addressed MultiMediaCard's CRC check fails, the COM_CRC_ERROR bit is set in the
device response. Similarly, if an illegal command has been received the
ILLEGAL_COMMAND bit is set in the device response.
There are different kinds of illegal commands:
92/116
●
Commands that belong to classes not supported by the MultiMediaCard (like interrupt
and I/O commands)
●
Commands not allowed in SPI mode
●
Commands that are not defined (like CMD47).
NAND08GAH0A, NAND16GAH0D
10.4.10
Serial peripheral interface (SPI) mode
Read, Write, Erase and Forced Erase timeout conditions
The time period after which a timeout condition for read/write/erase operations occurs are
(device independent) 10 times longer than the typical access/program times for the
operations listed below. A device must complete the command within this time period, or
give up and return an error message. If the host does not get a response within the defined
timeout time it must assume that the device is not going to respond and try to recover (e.g.
reset the device, power cycle, reject).
The typical access and program times are defined as follows:
●
Read
The read access time is defined as the sum of the two times given by the CSD
parameters TAAC and NSAC. These device parameters define the typical delay
between the end bit of the read command and the start bit of the data block. This
number is device dependent.
●
Write
The R2W_FACTOR field in the CSD is used to calculate the typical block program time
obtained by multiplying the read access time by this factor. It applies to all write/erase
commands (e.g. SET(CLEAR)_WRITE_PROTECT, PROGRAM_CSD(CID) and the
block write commands).
●
Erase
The duration of an erase command is (in order of magnitude) the number of write
blocks to be erased multiplied by the block write delay.
●
Forced Erase
The Forced Erase timeout is specified in Table 16.
●
Read ahead in Multiple Block Read operation
In Multiple Block Read operations, in order to improve the read performance, the device
may fetch data from the memory array, ahead of the host. In this case, when the host is
reading the last addresses of the memory, the device attempts to fetch data beyond the
last physical memory address and generates an ADDRESS_OUT_OF_RANGE error.
Therefore, even if the host times the stop transmission command to stop the device
immediately after the last byte of data was read, the device may already have
generated the error, and it will show in the response to the stop transmission command.
The host should ignore this error.
10.4.11
Memory array partitioning
It is the same as in the MultiMediaCard mode (see Section 3).
10.4.12
Lock/Unlock commands
In SPI mode the Lock and Unlock commands are the same as in MultiMediaCard mode (see
Section 5.5.3 and Section 5.5.4).
10.4.13
Application specific commands
The only difference between the MultiMediaCard and SPI modes is the APP_CMD status bit
which is not available in SPI mode.
93/116
Serial peripheral interface (SPI) mode
10.5
NAND08GAH0A, NAND16GAH0D
SPI mode commands
All the SPI commands are 6 bytes long. The command always starts with the left bit of the
string, which corresponds to the command code. See Table 64 for details of the command
format.
The commands in SPI mode are divided into several classes as in MultiMediaCard mode.
However, the supported and available classes are different for each mode. See Table 65 for
details.
Table 66 gives a detailed description of the commands supported in SPI mode. If no
argument is required in the command, the value of the field should be set to ‘0’. Reserved
commands are reserved in both MultiMediaCard and SPI modes. The contents of the
command index field is binary: for example it is ‘000000’ for CMD0 and ‘100111’ for CMD39.
Table 64.
Command format
Bit position
47
46
[45:40]
[39:8]
[7:1]
0
Width (bits)
1
1
6
32
7
1
Value
0
1
x
x
x
1
Descriptions
Start bit
Argument
CRC
End bit
Table 65.
Transmission bit Command index
Command classes in SPI mode
Card
Supported commands
CMD
Class
class description
0 1 6 8 9 10 12 13 16 17 18 23 24 25 27 28 29 30 35 36 38 42 55 56 58 59
(CCC)
class 0
Basic
+ + + + + +
+
+
Not
class 1 supported in
SPI mode
class 2 Block Read
+
+
+
+
+
Not
class 3 supported in
SPI mode
class 4 Block Write
class 5
Erase
class 6
Write
protection
class 7
Lock
class 8
Application
specific
Not
class 9 supported in
SPI mode
class
10-11
94/116
Reserved
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
NAND08GAH0A, NAND16GAH0D
Table 66.
Serial peripheral interface (SPI) mode
Commands and arguments
CMD
SPI
INDEX mode
Argument
Response
Abbreviation
Command description
CMD0
Yes
None
R1
GO_IDLE_STATE
Resets the device
CMD1
Yes
None
R1
SEND_OP_COND
Activates the device
Initialization process
CMD2
No
CMD3
No
CMD4
No
CMD5
Reserved
[31:26] Set to ‘0’
[25:24] Access
[23:16] Index
[15:8] Value
[7:3] Set to ‘0’
[2:0] Cmd Set
R1b
SWITCH
Switches the device
operating mode or modifies
the EXT_CSD
register
CMD6
Yes
CMD7
No
CMD8
Yes
[31:0] stuff bits
R1
SEND_EXT_CSD
CMD9
Yes
None
R1
SEND_CSD
Asks the selected device to
send its Card Specific Data
(CSD)
CMD10
Yes
None
R1
SEND_CID
Asks the selected device to
send its Card Identification
Data (CID)
CMD12
Yes
None
R1
CMD13
Yes
None
R2
Ask the address device to
send back its EXT_CSD
register as a data block
STOP_TRANSMISSIO Stops transmission on
N
Multiple Block Read
SEND_STATUS
Asks the selected device to
send its Status Register
SET_BLOCKLEN
Selects a block length (in
Bytes) for all following block
commands (read and
write)(1)
CMD14 Illegal command
CMD15
CMD16
CMD17
No
Yes
Yes
[31:0] block length
[31:0] data address
(2)
R1
R1
Reads a block of the size
READ_SINGLE_BLOC selected by the
K
SET_BLOCKLEN
command(3)
95/116
Serial peripheral interface (SPI) mode
Table 66.
Commands and arguments (continued)
CMD
SPI
INDEX mode
CMD18
NAND08GAH0A, NAND16GAH0D
Yes
Argument
[31:0] data address
Response
Abbreviation
Command description
R1
Continuously transfers data
blocks from device to host
READ_MULTIPLE_BLO until interrupted by a stop
CK
command or the requested
number of data blocks have
been transmitted
R1
Defines the number of
blocks which are going to be
transferred in the next
Multiple Block Read or Write
command
CMD19 Illegal command
CMD20
No
CMD21
Reserved
CMD22
CMD23
CMD24
Yes
Yes
CMD25
Yes
CMD26
No
CMD27
Yes
CMD28
CMD29
CMD30
96/116
Yes
Yes
Yes
[31:16] set to 0
[15:0] number of blocks
[31:0] data address
R1
SET_BLOCK_COUNT
WRITE_BLOCK
Writes a block of the size
selected by the
SET_BLOCKEN
command(4)
[31:0] data address
R1
WRITE_MULTIPLE_
BLOCK
Continuously writes blocks
of data until a Stop tran
prefix or the requested
number of blocks have been
received
None
R1
PROGRAM_CSD
Programs the programmable
bits of the CSD
SET_WRITE_PROT
If the device has write
protection features, this
command sets the write
protection bit of the
addressed group. The
properties of write protection
are coded in the card
specific data register
(WP_GRP_SIZE)
CLR_WRITE_PROT
If the device has write
protection features, this
command clears the write
protection bit of the
addressed group
[31:0] data address
[31:0] data address
[31:0] write protect data
address
R1b(5)
R1b
R1
SEND_WRITE_PROT
if the device has the write
protection features, this
command asks the device to
send the status of the write
protection bits(6)
NAND08GAH0A, NAND16GAH0D
Table 66.
Serial peripheral interface (SPI) mode
Commands and arguments (continued)
CMD
SPI
INDEX mode
Argument
Response
Abbreviation
Command description
CMD31 Reserved
CMD32 Reserved
...
These command indexes cannot be used for reasons of backward compatibility with older versions of the
CMD34 MultiMediaCard
CMD35
CMD36
Yes
Yes
[31:0] data address
[31:0] data address
R1
ERASE_GROUP_
START
Sets the address of the first
erase group within a range
to be selected for erase
R1
ERASE_GROUP_
END
Sets the address of the last
erase group within a
continuous range to be
selected for erase
Reserved
CMD37 These command indexes cannot be used for reasons of backward compatibility with older versions of the
MultiMediaCard
CMD38
Yes
CMD39
No
CMD40
No
[31:0] stuff bits
R1b
ERASE
Erases all previously
selected erase groups
CMD41 Reserved
CMD42
Yes
[31:0] stuff bits
R1b
LOCK_UNLOCK
Used to set/reset the
password or Lock/Unlock
the device. The size of the
data block is defined by the
SET_BLOCK_LEN
command
APP_CMD
Notifies the device that the
next command is an
application specific
command
rather than a standard
command
GEN_CMD
Used either to transfer a
data block to the device or to
read a data block from the
device for general
purpose/application specific
commands. The size of the
data block is defined by the
SET_BLOCK_LEN
command.
CMD43
...
Reserved
CMD54
CMD55
CMD56
Yes
Yes
[31:0] stuff bits
[31:1] stuff bits
[0] RD/WR(7)
R1
R1
CMD57 Reserved
97/116
Serial peripheral interface (SPI) mode
Table 66.
Commands and arguments (continued)
CMD
SPI
INDEX mode
CMD58
NAND08GAH0A, NAND16GAH0D
Yes
CMD59
Yes
CMD60
-63
No
Argument
NAND08GAH0A
NAND16GAH0D
None
[31:1]
stuff
bits
[0]
CRC
option
Response
Abbreviation
Command description
R3
READ_OCR
Reads the OCR register of a
device
CRC_ON_OFF
Turns the CRC option on or
off
CRC option bit = ‘1’ on
CRC option bit = ‘0’ off
R1
1. See Section 8.3: Card specific data register (CSD) for the value of the default block length.
2.
Data address on the NAND08GAH0A and the NAND16GAH0D is a 32-bit byte address.
3. The data transferred must not cross a physical block boundary unless READ_BLK_MISALIGN is set in the CSD register.
4. The data transferred must not cross a physical block boundary unless WRITE_BLK_MISALIGN is set in the CSD register.
5. R1b: R1 response with an optional busy flag (see Section 10.6.2).
6. 32 write protection bits (representing 32 write protect groups starting at the specified address) followed by 16 CRC bits are
transferred in a payload format via the data line. The last (least significant) bit of the protection bits corresponds to the first
addressed group. If the addresses of the last groups are outside the valid range, then the corresponding write protection
bits are set to zero.
7. RD/WR is set to ‘1’ if the host receives a data block from the device, and to ‘0’ if the host sends a data block to the device.
98/116
NAND08GAH0A, NAND16GAH0D
10.6
Serial peripheral interface (SPI) mode
SPI mode responses
In SPI mode like in MultiMediaCard mode, responses are transmitted most significant bit
(MSB) first.
There are different types of responses:
10.6.1
R1 format
This is the format of the response sent by the device to any command received except for
the SEND_STATUS and READ_OCR commands (See R2 and R3, respectively).
R1 format responses are one byte long. Their most significant bit is always ‘0’ and the other
bits are error bits. Any one of the error bits going High, (set to ‘1’) indicates an error.
Refer to Figure 35 for the structure of the R1 response format and to Table 68 for the
meaning of the bits.
Figure 35. R1 response format
7 (MSB)
0
0
In Idle State
Erase Reset
Illegal Command/Switch error
Communication CRC Error
Erase Sequence Error
Address misaligned
Address out of range/block length error
Ai13610
10.6.2
R1b format
It consists of the R1 response plus an optional busy flag.
The busy flag does not have a fixed number of bytes. When its value is zero, the device is
busy. When its value is different from zero, the device is ready.
Figure 36. R1b response format
7 (MSB)
0
0
R1
Busy flag
AI13609
99/116
Serial peripheral interface (SPI) mode
10.6.3
NAND08GAH0A, NAND16GAH0D
R2 format
This is the format of the response sent by the device to the SEND_STATUS command. R2
format responses are two bytes long. The first byte is identical to the R1 response byte. All
the bits in the second byte are error bits; any one of them going High, (set to ‘1’) indicates an
error.
Refer to Figure 37 for the structure of the R2 response format and to Table 68 for the
meaning of the bits.
Figure 37. R2 response format
7
(MSB)
Byte 1
0
7
Byte 2
0
0
Card is Locked
WP Erase Skip
Lock/Unlock cmd failed
R1
Execution Error
Card Error
Card ECC failed
Write Protect Violation
Erase Param
Out of Range/ CSD_Overwrite
AI13612
10.6.4
R3 format
This is the format of the response sent by the device to the READ_OCR command. R3
format responses are five bytes long. The first byte is identical to the R1 response byte. The
other four bytes contain the OCR Register. Figure 38 shows the structure of the R3
response format.
Figure 38. R3 response format
39
(MSB)
Byte 1
32
31
Bytes 2, 3, 4 and 5
0
0
R1
OCR
AI08369
100/116
NAND08GAH0A, NAND16GAH0D
10.6.5
Serial peripheral interface (SPI) mode
Data response format
This is the format of the acknowledgement sent by the device for each data block written to
it. The data response is one byte long and contains three Status bits. If the Status bits in the
data response are:
●
‘010’, it means that the data is accepted
●
‘101’, it means that a CRC error occurred and the data is rejected
●
‘110’, it means that a Write Error occurred and the data is rejected.
If the CRC or Write error occurs during a Write Multiple Block operation, the host must abort
the operation by sending a Stop tran prefix. Figure 39 shows the structure of the Data
response format.
Figure 39. Data response format
7
6
5
4
x
x
x
0
0
Status bits
1
AI08370
10.6.6
Data messages
Data is transferred in the form of data messages during Read and Write transactions. Data
bytes are always transmitted most significant bit (MSB) first. The data messages are 4 to
N+3 bytes long, where N is the data block length set using the SET_BLOCK_LENGTH
command. The first byte indicates the type of transaction (see Table 67 for details), the bytes
2 to N+1 contain user data and the last two bytes consist of the 16 CRC bits.
Table 67.
Data message first byte
Bit position
Message type
Transaction type
7
6
5
4
3
2
1
0
Start Block
Single Block Read
1
1
1
1
1
1
1
0
Start Block
Multiple Block Read
1
1
1
1
1
1
1
0
Start Block
Single Block Write
1
1
1
1
1
1
1
0
Start Block
Multiple Block Write
1
1
1
1
1
1
0
0
Stop tran
Multiple Block Write
1
1
1
1
1
1
0
1
101/116
Serial peripheral interface (SPI) mode
10.6.7
NAND08GAH0A, NAND16GAH0D
Data error messages
If a read operation fails, a data error message is returned to the host instead of the
requested data. Data Error Messages are one byte long.
Refer to Figure 40 for the structure of the data error message format and to Table 68 for the
meaning of the bits.
Figure 40. Data error message format
7
0
0
0
0
Execution Error
Card Error
Card ECC failed
Address Out of Range
Address misaligned
AI13611
10.7
Clearing Status Register bits
In SPI mode, Error and Status bits are reported to the host in three different formats:
Note:
●
Response R1
●
Response R2
●
Data error message
The same bits may exist in multiple response types (for example Address out of range).
All Error bits defined in MultiMediaCard mode, with the exception of Underrun and Overrun,
have the same meaning and usage in SPI mode. There are some differences in the Status
bits due to the different protocol (for example Current state is not defined in SPI mode).
The detection mode and clear condition of Error and Status bits are identical to
MultiMediaCard mode, except for Error bits which are cleared when read by the host,
regardless of the response format.
Not all status bits are meaningful all the time. The relevant bits depend on the classes
supported by the device. If all the classes that affect a status/error, are not supported by the
device, the bit is not relevant and can be ignored by the host.
See Table 68 for details of how the status and error bits are set and cleared in SPI mode,
and Table 69 for a description of relevant bits according to classes and commands.
102/116
NAND08GAH0A, NAND16GAH0D
Table 68.
Serial peripheral interface (SPI) mode
Status bits definition in SPI mode(1)
Identifier
Response Type
Detection
mode
Value
R
Address out of range
R1 R2
DataErr
E
X
Command argument not allowed
‘0’= no error A Multiple Block Read/Write operation
‘1’= error attempted to read or write beyond the device
capacity (although it started at a valid
address)
Command using misaligned address, not
matching the block length
R
R1 R2
DataErr
E
Erase sequence error
R1 R2
Erase param
Block length error
Address misaligned
Description
X
‘0’= no error
‘1’= error Multiple block Read/Write operation
attempting to read or write data block which
does not align with the device memory blocks
E
R
‘0’= no error An error occurred in the Erase command
‘1’= error sequence
R2
E
X
‘0’= no error Invalid selection of erase groups during erase
‘1’= error operation
R1 R2
E
R
‘0’= no error Transferred block length not allowed, or
number of bytes transferred not matching the
‘1’= error block length
‘0’= not
protected
‘1’=
protected
WP violation
R2
E
X
Communication CRC
error
R1 R2
E
R
‘0’= no error
CRC check of the previous command failed
‘1’= error
Illegal command
R1 R2
E
R
‘0’= no error
Illegal command not legal for the current state
‘1’= error
Switch error
R1 R2
E
X
‘0’= not
error
‘1’= error
If set, the device did not switch to the
expected mode as requested by the SWITCH
command
Card ECC failed
R2 DataErr
E
X
‘0’=
success
‘1’= failure
Internal ECC performed but failed to correct
the data
Card error
R2 DataErr
E
R
‘0’= no error
Internal device controller error
‘1’= error
Execution error
R2 DataErr
E
X
‘0’= no error General or unknown error occurred during
‘1’= error operation
WP Erase skip
Lock/Unlock failed
R2
R2
S
E
X
X
‘0’=not
protected
‘1’=
protected
Attempt to write to a write protected block
Partial address space erased due to existing
Write protected blocks
This bit is set when a sequence or password
‘0’= no error error has been detected during a Lock/Unlock
‘1’= error command or if there was an attempt to
access a locked device
103/116
Serial peripheral interface (SPI) mode
Table 68.
NAND08GAH0A, NAND16GAH0D
Status bits definition in SPI mode(1) (continued)
Identifier
Response Type
Detection
mode
Value
Description
Card locked
R2
S
-
‘0’ =
This bit is set when the device is locked by
unlocked
the host
‘1’ = locked
Erase reset
R1 R2
E
R
Erase sequence cleared before executing
‘0’= cleared
because an out of erase sequence command
‘1’= set
was received
-
The device enters idle state after power-up or
‘0’= Ready reset command. It exits this state and
‘1’= Idle
become ready upon completion of the
initialization sequence
X
Can be one of the following errors:
- The CID register has been already written
and cannot be overwritten
‘0’= no error
- The read only section of the CSD does
‘1’= error
not match the device content.
- An attempt to reverse the copy (set as
original) or permanent WP (unprotected)
bits was made.
In idle state
CSD overwrite
R1 R2
R2
S
E
1. ‘R’ or ‘X’ mean the Error/Status bit may be affected by the respective command (using R or X detection mechanism
respectively). ‘S’ indicates Status bits.
104/116
NAND08GAH0A, NAND16GAH0D
Table 69.
Serial peripheral interface (SPI) mode
Status bits versus commands and classes (SPI mode)
R2 response bits
Data Error bit
Comd/
classes
R1 response bits
7
Bit is
valid for
classes
6
5
4
3
2
1
0
7
6
5
4
1,
2,
3,
4,
5,
6
2,
4
5
All
All
All All All
5
3,
4
1,
3,
All All
All
2
4
S
3
R
2
1
X
0
CMD0
R
CMD1
R
R
S
CMD6
R
R/
X
S
R
X
S
CMD8
R
R
S
R
X
S
CMD9
R
R
R
S
R
X
S
CMD10
R
R
R
S
R
X
S
CMD10
R
R
R
S
R
X
S
CMD12
R
R
S
R
X
S
CMD13
R
R
S
R
X
S
CMD16
R
R
R
S
R
X
S
7
6
5
4
3
2
1
0
All All
1,
2
All All
S
X
CMD17
R
R
R
R
R
S
X
R
X
S
X
X
X
R
X
CMD18
R
R
R
R
R
S
X
R
X
S
X
X
X
R
X
R
R
R
S
R
X
S
CMD23
CMD24
R
R
R
R
R
S
X
R
X
S
CMD25
R
R
R
R
R
S
X
R
X
S
R
R
R
S
R
X
S
CMD27
X
CMD28
R
R
R
R
S
R
X
S
CMD29
R
R
R
R
S
R
X
S
CMD30
R
R
R
R
S
R
X
S
CMD35
R
R
R
R
S
X
R
X
S
CMD36
R
R
R
R
S
X
R
X
S
R
R
R
S
R
X
X
S
CMD42
R
R
R
S
R
X
X
S
CMD55
R
R
R
S
R
X
S
CMD56
R
R
R
S
R
X
S
CMD58
R
R
R
S
R
X
S
CMD59
R
R
R
S
R
X
S
CMD38
105/116
Serial peripheral interface (SPI) mode
10.8
NAND08GAH0A, NAND16GAH0D
Device registers
In SPI mode, only the OCR, CSD and CID registers are accessible. Their format is identical
to the format in MultiMediaCard mode. However, a few fields are irrelevant in SPI mode.
10.9
SPI bus timings
Figure 41 illustrates the basic command/response transaction in SPI mode (that is, when
the device is ready). Figure 42 describes a command/response transaction when the device
is busy (R1b response format). Refer to Table 71 for the timing values.
Table 70.
SPI timing symbols
S
Start bit (= 0)
T
Transmitter bit (Host = 1, Device = 0)
P
One-cycle Pull-up (= 1)
E
End bit (=1)
Z
High Impedance state
D
Data bits
*
Repeater
Table 71.
SPI timing values
Timing
Min
Max
NCS
0
NCR
1
8
8 clock cycles
NCX
0
8
8 clock cycles
NRC
1
NAC
1
NWR
1
8 clock cycles
NEC
0
8 clock cycles
NDS
0
8 clock cycles
NBR
1
8 clock cycles
8 clock cycles
10/8(TAAC fOP +
100NSAC)(1)
1
1. fOP is the device clock frequency the host is using for the read operation.
106/116
Unit
8 clock cycles
8 clock cycles
NAND08GAH0A, NAND16GAH0D
10.9.1
Serial peripheral interface (SPI) mode
Command/response timings
Figure 41. Host command to device response timing diagram (device ready)
CS
DataIn
H HL L L
NCS
X X H**H
DataOut Z Z Z H H H H
L L L LHH H
NEC
*********************
6 Byte Command
*********
H**H X X X
H HHHH *********
NCR
H H * * H 1or 2 Byte Response H H H H H Z Z
ai08372
Figure 42. Host command to device response timing diagram (device busy)
CS
H L L L
NCS
DataIn
X H**H
DataOut
Z Z H HH H
*********************
6 Byte Command
*********
L L L L HHHL L L L L L HH
NEC
NDS
NEC
H H H H H H H HH H**H X*X HH H H*H X X
NCR
Busy L Z Z Z Busy H H H H Z
H * * H Response
ai08373
Figure 43. Device response to Host command timing diagram
CS
L L L L L
DataIn
HHH HHH
*********************
*********
DataOut H H H H H 1 or 2 Byte Response
L LHHH
H HH H
NRC
6 Byte Command
HHHHX X X
H**H
*********
HHHHH Z Z
ai08374
107/116
Serial peripheral interface (SPI) mode
10.9.2
NAND08GAH0A, NAND16GAH0D
Data Read timings
The timing diagram for deselecting the device (by de-asserting CS after the last device
response) corresponds to a standard command-to-response timing diagram as illustrated in
Figure 41.
During open-ended Multiple Block Read operations, the STOP_TRANSMISSION command
may be sent while the device is transmitting data to the host. In this case, the device stops
transmitting the data block within two clock cycles (the bits in the first byte may not all be set
to ‘1’) and returns the response message after a time measured in numbers of clock cycles
(NCR).
Refer to Table 71 for timing values and to Figure 44, Figure 45, Figure 46, and Figure 47 for
a description of Data Read timing diagrams.
Figure 44. Single Block Read timing diagram
CS
H L L L
NCS
DataIn
X H**H
*********************
L L LHHHH
NEC
H*H X XX X
Read Command H H H H H
************
NCR
NAC
H
*
*
H
Card
Response
H
* * H Data Block H H H H Z Z Z
DataOut Z Z H H H H
*******
ai08375
Figure 45. STOP_TRANSMISSION between blocks in Multiple Block Read timing diagram
CS
DataIn
H L L
NCS
X H*H
*********************
Read Cmd
DataOut Z Z H H H
****
L L L L L
H H Stop Cmd H H H H H H H
H H H H
***********
NAC
NAC
NCR
NCR
H * H Card Resp H * H Data Block H * H Data Block H H * H Card Resp
ai08376
Figure 46. STOP_TRANSMISSION within a block in Multiple Block Read timing diagram
CS
H L L
NCS
DataIn
X H*H
DataOut
Z ZHHH
*********************
Read Cmd
****
L L L L L
H H H Stop Cmd H H H H H H H H H H
NCR
NAC
H * H Card Resp H * H Data Block H * H Data X X H * * H Card Resp
H H HH
NCR
********
NAC
ai08377
108/116
NAND08GAH0A, NAND16GAH0D
Serial peripheral interface (SPI) mode
Figure 47. CSD and CID register Read timing diagram
CS
DataIn
H L L L
NCS
X H**H
*********************
Read Command
DataOut Z Z H H H H
******
L L L HHHH
NEC
HHHH H
H*H XX X X
**********
NCX
NCR
H * * H Card Response H * * H Data Block H H H H Z Z Z
ai08377
1. The timeout between the device response and the data block is NCX as NAC is not known yet.
10.9.3
Data Write timings
The host may deselect a device at any moment during single and Multiple Block Write
operations. The device will release the DataOut line one clock cycle after it is deselected
(CS High). To check whether the device is still busy, the host must reselect it by reasserting
CS Low. The device will then take control of the DataOut line one clock cycle after being
reselected.
In Multiple Block Write operations, the timings from the command being issued to the first
data block being transmitted by the device are the same as for single block Write operations
(see Figure 48 and Figure 49 for details). The timing of STOP TRANSMISSION prefixes is
the same as that of data blocks. After the Stop tran is received by the device, the data on the
DataOut line is undefined for one byte (NBR), then a Busy message may be sent by the
device.
Refer to Table 71 for timing values.
Figure 48. Single Block Write timing diagram
CS
H L
*****************
NCS
NWR
DataIn
X H * H Write Command
DataOut
Z ZHHH
****
L L L L L L L L LHHH L L L L
NDS
NEC
H H H H H H H H * H Data Block H H H H H * H X * X H H H H
NCR
H * H Card Resp H H H H H H H Data Resp Busy L Z Z Z Busy H
ai08379
Figure 49. Multiple Block Write timing diagram
CS
L
************
NWR
L L L L L L L L L L L L L L L L L L L L
NWR
H Data Block H H H H H H H H * H Data Block H H H H H H H H * H StopTran H H H H H
NBR
DataOut H H H H H Data Resp Busy H H H H H H H Data Resp Busy H H H H H H X * X Busy
DataIn
ai08380
109/116
Error protection
11
NAND08GAH0A, NAND16GAH0D
Error protection
All commands, responses and data transfers are protected against transmission errors by
CRC (cyclic redundancy check) codes.
One CRC is generated for each command and checked for each response transferred
through the CMD line. For data blocks, one CRC per transferred block and per data line is
generated.
If the addressed device CRC check fails, the device does not respond, and the command is
not executed.
11.1
CRC7
The CRC7 check is used for all commands, all responses except responses of R3 type, and
for the CSD and CID registers. The CRC7 code is a 7-bit value.
It is computed as follows:
7
3
The generator polynomial is G ( x ) = x + x + 1
n
M ( x ) = firstbit × x + sec ondb it × x
n–1
+ …+ lastbit × x
0
7
CRC [ 6…0 ] = Remainder [ ( M ( ( x ) × x ) ) ⁄ ( G ( x ) ) ]
All CRC registers are initialized to zero.
The first bit is the outmost left bit of the corresponding bit string of the command, response,
CID or CSD).
The degree n of the polynomial is the number of CRC protected bits decreased by one.
The number of bits to be protected is 40 for commands and responses (n = 39), and 120 for
the CSD and CID (n = 119).
Figure 50. CRC7 generator/checker
data out
data in
AI13107
110/116
NAND08GAH0A, NAND16GAH0D
11.2
Error protection
CRC16
The CRC16 is used for payload protection in block transfer mode. The CRC check sum is a
16-bit value.
It is computed as follows:
The generator polynomial is
G( x) = x
16
+x
12
5
+x +1
n
M ( x ) = firstbit × x + sec ondb it × x
n–1
+ …+ lastbit × x
0
16
CRC [ 15…0 ] = Remainder [ ( M ( ( x ) × x ) ) ⁄ ( G ( x ) )
All CRC registers are initialized to zero.
The first bit is the first data bit of the corresponding block.
The degree n of the polynomial is the number of bits of the data block decreased by one
(e.g. n = 4095 for a block length of 512 bytes).
The generator polynomial is a standard CCITT polynomial.
The code has a minimal distance d set to 4 and is used for a payload length of up to 2048
bytes (n <= 16383).
The same CRC16 calculation is used for all bus width. In 4-bit and 8-bit bus width, the
CRC16 is calculated for each line separately. Sending the CRC is synchronized so the CRC
code is transferred at the same time in all lines.
Figure 51. CRC16 generator/checker
data out
data in
AI13108
111/116
Package mechanical
12
NAND08GAH0A, NAND16GAH0D
Package mechanical
Figure 52. LFBGA169 12 x 16 x 1.4 mm 132+21+16 3R14 0.50 mm, package outline
D
D1
FD
SD
e
SE
E
E4
E3 E2
E1
ddd
FE
FE1
FE2
FE3
e
A
b
A2
A1
LFBGA-DB
1. Drawing is not to scale.
Table 72.
LFBGA169 12 x 16 x 1.4 mm 132+21+16 3R14 0.50 mm, package mechanical data
millimeters
inches
Symbol
Typ
Min
A
Max
Typ
Min
1.40
A1
Max
0.055
0.15
0.006
A2
1.00
0.039
b
0.30
0.25
0.35
0.012
0.010
0.014
D
12.00
11.90
12.10
0.472
0.469
0.476
D1
6.50
0.256
ddd
0.08
E
16.00
E1
6.50
0.256
E2
10.50
0.413
E3
12.50
0.492
E4
13.50
e
0.50
FD
2.75
0.108
FD1
3.25
0.128
FD2
4.25
0.167
FD3
5.25
0.207
112/116
15.90
16.10
0.003
0.630
0.626
0.634
–
–
0.531
–
–
0.020
NAND08GAH0A, NAND16GAH0D
Table 72.
Package mechanical
LFBGA169 12 x 16 x 1.4 mm 132+21+16 3R14 0.50 mm, package mechanical data (continued)
millimeters
inches
Symbol
Typ
Min
Max
Typ
Min
Max
FE
4.75
0.187
FE1
2.75
0.108
FE2
1.75
0.069
FE3
1.25
0.049
SD
0.25
–
–
0.010
–
–
SE
0.25
–
–
0.010
–
–
113/116
Part numbering
13
NAND08GAH0A, NAND16GAH0D
Part numbering
Table 73.
Ordering information scheme
Example:
NAND 08GAH
0
A
ZA
5
F
Device Type
NAND Flash memory
Density
08G = 8 Gbits (1Gbyte)
16G = 16 Gbits (2 Gbytes)
Operating voltage
A = VCC= 3 V, VCCQ = 1.8 V or 3 V
Memory type
H = eMMC
Device options
0 = No option
Device composition
A = Version A (1 Gbyte)
D = Version D (2 Gbytes)
Package
ZA = LFBGA169 12 x 16 x 1.4 mm
Temperature range
5 = −25 to 85 °C
Packing
E = ECOPACK package, standard packing
F = ECOPACK package, tape & reel packing
Note:
Other digits may be added to the ordering code for preprogrammed parts or other options.
Devices are shipped from the factory with the memory content bits erased to ’1’. For further
information on any aspect of the device, please contact your nearest Numonyx Sales Office.
114/116
NAND08GAH0A, NAND16GAH0D
14
Revision history
Revision history
Table 74.
Document revision history
Date
Revision
07-Dec-2006
0.1
Changes
Initial release.
20-Aug-2007
1
Document status promoted from Target Specification to Preliminary
Data.
Change of names from NAND08GAH to NAND08GAH0A, and from
NAND16GAH to NAND16GAH0D.
Removed the 4 Gbyte density, the LFBGA169 (ZB) and LFBGA153
(ZC) packages.
Section 8.4.2: SEC_COUNT, section 5.2.3: Access mode validation,
and section 8.4.13: ERASED_MEM_CONT removed.
Section 8.1: Operation conditions register (OCR), Table 1: System
performance, Table 2: Current consumption, andTable 3: System
reliability and maintenance updated.
Removed the Erased Memory Content from Table 49: Extended
CSD.
Removed note 1 below Table 61: Timing values.
Small text changes.
10-Dec-2007
2
Applied Numonyx branding.
115/116
NAND08GAH0A, NAND16GAH0D
Please Read Carefully:
INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH NUMONYX™ PRODUCTS. NO LICENSE, EXPRESS OR
IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT. EXCEPT
AS PROVIDED IN NUMONYX'S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, NUMONYX ASSUMES NO LIABILITY
WHATSOEVER, AND NUMONYX DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY, RELATING TO SALE AND/OR USE OF
NUMONYX PRODUCTS INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT.
Numonyx products are not intended for use in medical, life saving, life sustaining, critical control or safety systems, or in nuclear facility
applications.
Numonyx may make changes to specifications and product descriptions at any time, without notice.
Numonyx, B.V. may have patents or pending patent applications, trademarks, copyrights, or other intellectual property rights that relate to the
presented subject matter. The furnishing of documents and other materials and information does not provide any license, express or implied,
by estoppel or otherwise, to any such patents, trademarks, copyrights, or other intellectual property rights.
Designers must not rely on the absence or characteristics of any features or instructions marked “reserved” or “undefined.” Numonyx reserves
these for future definition and shall have no responsibility whatsoever for conflicts or incompatibilities arising from future changes to them.
Contact your local Numonyx sales office or your distributor to obtain the latest specifications and before placing your product order.
Copies of documents which have an order number and are referenced in this document, or other Numonyx literature may be obtained by
visiting Numonyx's website at http://www.numonyx.com.
Numonyx StrataFlash is a trademark or registered trademark of Numonyx or its subsidiaries in the United States and other countries.
*Other names and brands may be claimed as the property of others.
Copyright © 11/5/7, Numonyx, B.V., All Rights Reserved.
116/116
Similar pages