MultiMediaCardTM
MultiMediaCard Specification
Version : Ver. 0.9
Date 4 June - 2004
Samsung Electronics Co., LTD
Semiconductor Flash Memory Product Planning & Applications
1
MultiMediaCardTM
Revision History
Revision History Draft Date Remark
No. Preliminary
0.0 1. Initial Draft November 29th 2001 Preliminary
0.1
1. Changed CSD filed March 15th 2002 Preliminary
0.2 Preliminary
0.3 2. Added Command Response Timing
Advanced
0.4 3. Added SPI Bus Timing
0.5 1. Added Ordering Information (page 6) June 21st 2002
0.6 2. Added Power Consumption (page 13)
0.7
1. Changed CSD field (page 22) November 23rd 2002
0.8
0.9 2. Changed command class (page 30)
3. Added operating characteristics (page 14)
1. Changed ordering information (page 6) April 7th 2003
2. Changed memory array structure (page 9)
3. Change C_SIZE and C_SIZE_MULT(page 26)
1. Changed CSD information (page 22,23) April 26th 2003
2. Deleted paragraphs regarding stream read and
partial read/write
1. Added dimensions of RS-MMC November 12th 2003
2. Added product code of RS-MMC
1. Added product code of MMC using December 2nd 2003
S3C49M8X01 controller
2. Added product code of programmable CID
MMC using S3C49M8X01 controller
1. Changed controller type for all kinds of MMC February 16th 2004
1. Changed product model June 4th 2004
- Changed from "no lead free" to "lead free" for
NAND Flash PKG (page 5,6)
2. Changed CSD Field (page23)
3. Changed ERASE_GRP_SIZE (page27)
2
MultiMediaCardTM
1 Introduction to the MultiMediaCard ----------------------------------------------------------- 5
1.1 System Features ----------------------------------------------------------------------------------------- 5
1.2 Product Model -------------------------------------------------------------------------------------- 5
2 Function Description ------------------------------------------------------------------------------- 7
2.1 Flash Technology Independence ------------------------------------------------------------------ 7
2.2 Defect and Error Management --------------------------------------------------------------------- 7
2.3 Endurance ----------------------------------------------------------------------------------------------- 7
2.4 Automatic Sleep Mode ------------------------------------------------------------------------------- 7
2.5 Hot Insertion -------------------------------------------------------------------------------------------- 8
2.6 MultiMediaCard Mode -------------------------------------------------------------------------------- 8
2.6.1 MultiMediaCard Standard Compliance ----------------------------------------------------------- 8
2.6.2 Negotiation Operation Conditions ----------------------------------------------------------------- 8
2.6.3 Card Acquisition and Identification ---------------------------------------------------------------- 8
2.6.4 Card Status ---------------------------------------------------------------------------------------------- 8
2.6.5 Memory Array Partitioning --------------------------------------------------------------------------- 9
2.6.6 Read and Write Operations ------------------------------------------------------------------------- 9
2.6.7 Data Transfer Rate ------------------------------------------------------------------------------------10
2.6.8 Data Protection in the Flash Card -----------------------------------------------------------------10
2.6.9 Erase -----------------------------------------------------------------------------------------------------10
2.6.10 Write Protection ----------------------------------------------------------------------------------------10
2.6.11 Copy Bit ------------------------------------------------------------------------------------------------- 10
2.6.12 The CSD Register ------------------------------------------------------------------------------------ 11
2.7 SPI Mode ----------------------------------------------------------------------------------------------- 11
2.7.1 Negotiating Operation Conditions ---------------------------------------------------------------- 11
2.7.2 Card Acquisition and Identification --------------------------------------------------------------- 11
2.7.3 Card Status --------------------------------------------------------------------------------------------- 11
2.7.4 Memory Array Partitioning -------------------------------------------------------------------------- 11
2.7.5 Read and Write Operations ------------------------------------------------------------------------- 11
2.7.6 Data Transfer Rate ------------------------------------------------------------------------------------ 11
2.7.7 Data Protection in the MultiMediaCard ----------------------------------------------------------- 12
2.7.8 Erase ----------------------------------------------------------------------------------------------------- 12
2.7.9 Write Protection ---------------------------------------------------------------------------------------- 12
3 Product Specifications ----------------------------------------------------------------------------- 13
3.1 Recommended Operating Conditions ------------------------------------------------------------------------- 13
3.2 Operating Characteristis ----------------------------------------------------------------- 14
3.3 System Environmental Specifications ----------------------------------------------------------------- 15
3.4 System Reliability and Maintenance -------------------------------------------------------------- 15
3.5 Physical Specifications ------------------------------------------------------------------------------- 16
4 MultiMediaCard Interface Description --------------------------------------------------------- 17
4.1 Pin Assignments in MultiMediaCard Mode ------------------------------------------------------- 17
4.2 Pin Assignments in SPI Mode ---------------------------------------------------------------------- 18
4.3 MultiMediaCard Bus Topology ---------------------------------------------------------------------- 18
4.4 SPI Bus Topology -------------------------------------------------------------------------------------------------- 19
4.4.1 SPI Interface Concept ------------------------------------------------------------------------------------------- 19
4.4.2 SPI Bus Topology ------------------------------------------------------------------------------------------------ 19
4.5 Registers ------------------------------------------------------------------------------------------------- 20
4.5.1 Operation Condition Register (OCR) ---------------------------------------------------------------------------20
4.5.2 Card Identification (CID) ------------------------------------------------------------------------------21
3
MultiMediaCardTM
4.5.3 Relative Card Address (RCA) ----------------------------------------------------------------------- 21
4.5.4 Card Specific Data (CSD) ---------------------------------------------------------------------------- 22
4.6 MultiMediaCard Communication -------------------------------------------------------------------- 30
4.6.1 Commands ----------------------------------------------------------------------------------------------- 30
4.7 Read, Write and Erase Time-out Conditions ----------------------------------------------------- 33
4.8 Card Identification Mode ------------------------------------------------------------------------------ 34
4.8.1 Operating Voltage Range Validation --------------------------------------------------------------- 35
4.9 Data Transfer Mode ------------------------------------------------------------------------------------ 35
4.9.1 Block Read ----------------------------------------------------------------------------------------------- 37
4.9.2 Block Write ----------------------------------------------------------------------------------------------- 37
4.9.3 Erase ------------------------------------------------------------------------------------------------------ 38
4.9.4 Write Protect Management -------------------------------------------------------------------------- 38
4.9.5 Card Lock/Unlock Operation ------------------------------------------------------------------------ 38
4.9.6 Responses ----------------------------------------------------------------------------------------------- 41
4.9.7 Status ------------------------------------------------------------------------------------------------------ 42
4.9.8 Command Response Timing ------------------------------------------------------------------------ 44
4.9.9 Reset ------------------------------------------------------------------------------------------------------ 48
4.10 SPI Communication ----------------------------------------------------------------------------------- 49
4.10.1 Mode Selection ----------------------------------------------------------------------------------------- 49
4.10.2 Bus Transfer Protection ------------------------------------------------------------------------------ 49
4.10.3 Data Read Overview ---------------------------------------------------------------------------------- 50
4.10.4 Data Write Overview ---------------------------------------------------------------------------------- 51
4.10.5 Erase and Write Protect Management ----------------------------------------------------------- 52
4.10.6 Reading CID/CSD Registers ------------------------------------------------------------------------ 53
4.10.7 Reset Sequence --------------------------------------------------------------------------------------- 53
4.10.8 Error Conditions ---------------------------------------------------------------------------------------- 53
4.10.9 Memory Array Partitioning --------------------------------------------------------------------------- 53
4.10.10 Card Lock/Unlock -------------------------------------------------------------------------------------- 53
4.10.11 Commands ----------------------------------------------------------------------------------------------- 54
4.10.12 Responses ----------------------------------------------------------------------------------------------- 56
4.10.13 Data Tokens --------------------------------------------------------------------------------------------- 58
4.10.14 Data Error Token --------------------------------------------------------------------------------------- 59
4.10.15 Clearing Status Bits ------------------------------------------------------------------------------------ 60
4.11 SPI Bus Timing ----------------------------------------------------------------------------------------- 61
4.12 Error Handling ------------------------------------------------------------------------------------------ 64
4.12.1 Error Correction Code (ECC) ----------------------------------------------------------------------- 64
4.12.2 Cyclic Redundancy Check (CRC) ----------------------------------------------------------------- 64
4
MultiMediaCardTM
1 Introduction to the MultiMediaCard
The MultiMediaCard is a universal low cost data storage and communication media. It is designed to
cover a wide area of applications as cellula phone, electronic toys, organizers, PDAs, cameras, smart
phones, digital recorders, MP3 players, pagers, etc. Targeted features are high mobility and high
performance at a low cost price. It might also be expressed in terms of low power consumption and
high data throughput at the memory card interface
The MultiMediaCard communication is based on an advanced 7-pin serial bus designed to operate in a
low voltage range. The communication protocol is defined as a part of this standard and referred to as
MultiMediaCard mode. For compatibility to existing controllers the cards may offer, in addition to the
MultiMediaCard mode, an alternate communication protocol which is based on the SPI standard
1.1 System Features
- MultiMediaCard System Specification Ver.3.31 compatible
- Supports Standard MultiMediaCard bus
- Supports SPI Mode (single and multiple block read and write operations)
- Supports block read/write
- Targeted for portable and stationary applications
- Maximum data rate with up to 10 cards
- Correction of memory field errors
- Built-in write protection features (permanent and temporary)
- Comfortable erase mechanism
- 2.7 to 3.6 volts operation
1.2 Product Model
Table 1-1 MultiMediaCard Capacities (Packing Type:Bulk Type I)
Model Number Capacities Remarks
MC56U032NCFA-0QC00 32MB
MC12U064NBFA-0QC00 64MB . Full Size MMC
MC1GU128NAFA-0QC00 128MB . S3F49DAX Controller
MC2DU256NAFA-0QC00 256MB
MC2GU512NMCA-0QC00 512MB . Reduced-Size MMC
MC2GU01GNMCA-0QC00 1GB (RS-MMC)
MC56U032HCCA-0QC00 32MB
MC12U064HACA-0QC00 64MB . S3F49DAX Controller
MC1GU128HACA-0QC00 128MB
MC1GU256HACA-0QC00 256MB
5
MultiMediaCardTM
Table 1-2 Ordering Information
M(1) C(2) X(3) X(4) X(5) X(6) X(7) X(8) X(9) X(10) X(11) X(12) (13) X(14) X(15) X(16) X(17) X(18)
(1) Module : M (11) Flash Package
(2) Card : C
(3) ~(4) : Flash Density C : CHIP
28 : 128Mb
56 : 256Mb Y : TSOP 1
12 : 512Mb V : WSOP
1G : 1Gb
1D : 1Gb DDP F : WSOP(Lead Free)
2D : 2Gb DDP
(5) Feature (12) PCB Revision
U : MultimediaCard
(6) ~ (8) Card Density A : None
016 : 16MB B : 1st Rev.
032 : 32MB C : 2nd Rev.
064 : 64MB (13) " "
128 : 128MB
256 : 256MB (14) Packing Type
512 : 512MB
(9) Card Type 0 : Bulk Type I
N : Standard MultiMediaCard
H : Reduced-Size MultiMediaCard 1 : Bulk Type II (By White Case)
(10) Flash Generation
M : 1st Generation 2 : Bulk Type I (No Label)
A : 2nd Generation
B : 3rd Generation 3 : Bulk Type II (No Label)
C : 4th Generation 4 : Bulk Type I (Only Back Label)
D : 5th Generation
5 : Bulk Type II (Only Back Label)
(15) Controller
Q : S3F49DAX
(16) Controller Firmware Revision
A : None
B : 1st Rev.
C : 2nd Rev.
D : 3rd Rev.
E : 4th Rev.
(17) ~ (18) Customer Grade
"Customer List Reference"
The performance of the communication channel is described in the table below
MultiMediaCard Mode SPI Mode
Three-wire serial data bus (clock, command, Three-wire serial data bus (clock, dataIn,
data) dataOut) + card specific CS signal
Up to 64k cards addressable by the bus Card selection via a hardware CS signal
protocol
Up to 30 cards stackable on a single physical Card stacks require a "per card" CS signal
bus
Easy identification and assignment of session Not available. Card selection via a hardware
address to individual cards in a card stack CS signal
Error-protected data transfer Optional. A non protected data transfer mode is
available
single/multiple block read/write command Single/multiple block read/write commands
6
MultiMediaCardTM
2 Function Description
2.1 Flash Technology Independence
The 512 byte sector size of the MultiMediaCard is the same as that in an IDE magnetic disk drive. To
write or read a sector (or multiple sectors), the host computer software simply issues a Read or Write
command to the MultiMediaCard. This command contains the address and the number of sectors to
write/read. The host software then waits for the command to complete. The host software does not get
involved in the details of how the flash memory is erased, programmed or read. This is extremely
important as flash devices are expected to get more and more complex in the future. Because the
MultiMediaCard uses an intelligent on-board controller, the host system software will not require
changing as new flash memory evolves. In other words, systems that support the MultiMediaCard
today will be able to access future MultiMediaCards built with new flash technology without having to
update or change host software.
2.2 Defect and Error Management
MultiMediaCards contain a sophisticated defect and error management system. This system is
analogous to the systems found in magnetic disk drives and in many cases offers enhancements. For
instance, disk drives do not typically perform a read after write to confirm the data is written correctly
because of the performance penalty that would be incurred. MultiMediaCards do a read after write
under margin conditions to verify that the data is written correctly (except in the case of a Write without
Erase Command). In the rare case that a bit is found to be defective, MultiMediaCards replace this bad
bit with a spare bit within the sector header. If necessary, MultiMediaCards will even replace the entire
sector with a spare sector. This is completely transparent to the host and does not consume any user
data space.
The MultiMediaCards soft error rate specification is much better than the magnetic disk drive
specification. In the extremely rare case a read error does occur, MultiMediaCards have innovative
algorithms to recover the data. This is similar to using retries on a disk drive but is much more
sophisticated. The last line of defense is to employ powerful ECC to correct the data. If ECC is used to
recover data, defective bits are replaced with spare bits to ensure they do not cause any future
problems.
These defect and error management systems coupled with the solid-state construction give
MultiMediaCards unparalleled reliability
2.3 Endurance
MultiMediaCards have an endurance specification for each sector of 1,000,000 writes (reading a
logical sector is unlimited). This is far beyond what is needed in nearly all applications of
MultiMediaCards. Even very heavy use of the MultiMediaCard in cellular phones, personal
communicators, pagers and voice recorders will use only a fraction of the total endurance over the
typical device's five year lifetime. For instance, it would take over 100 years to wear out an area on the
MultiMediaCard on which a files of any size (from 512 bytes to capacity) was rewritten 3 times per hour,
8 hours a day, 365 days per year.
With typical applications the endurance limit is not of any practical concern to the vast majority of users.
2.4 Automatic Sleep Mode
7
MultiMediaCardTM
An important feature of the MultiMediaCard is automatic entrance and exit from sleep mode. Upon
completion of an operation, the MultiMediaCard will enter the sleep mode to conserve power if no
further commands are received within 5 msec The host does not have to take any action for this to
occur. In most systems, the MultiMediaCard is in sleep mode except when the host is accessing it,
thus conserving power. When the host is ready to access the MultiMediaCard and it is in sleep mode,
any command issued to the MultiMediaCard will cause it to exit sleep and respond. The host does not
have to issue a reset first. It may do this if desired, but it is not needed. By not issuing the reset,
performance is improved through the reduction of overhead.
2.5 Hot Insertion
Support for hot insertion will be required on the host but will be supported through the connector.
Connector manufacturers will provide connectors that have power pins long enough to be powered
before contact is made with the other pins. Please see connector data sheets for more details. This
approach is similar to that used in PCMCIA to allow for hot insertion. This applies to both
MultiMediaCard and SPI modes.
2.6 MultiMediaCard Mode
2.6.1 MultiMediaCard Standard Compliance
The MultiMediaCard is fully compliant with MultiMediaCard standard specification V3.31.
The structure of the Card Specific Data (CSD) register is compliant with CSD structure V1.2.
2.6.2 Negotiating Operation Conditions
The MultiMediaCard supports the operation condition verification sequence defined in the
MultiMediaCard standard specifications. The MultiMediaCard host should define an operating voltage
range that is not supported by the MultiMediaCard. It will put itself in an inactive state and ignore any
bus communication. The only way to get the card out of the inactive state is by powering it down and
up again. In addition the host can explicitly send the card to the inactive state by using the
GO_INACTIVE_STATE command.
2.6.3 Card Acquisition and Identification
The MultiMediaCard bus is a single master (MultiMediaCard host) and multi-slaves (cards) bus. The
host can query the bus and find out how many cards of which type are currently connected. The
MultiMediaCard's CID register is pre-programmed with a unique card identification number which is
used during the acquisition and identification procedure
In addition, the MultiMediaCard host can read the card's CID register using the READ_CID
MultiMediaCard command. The CID register is programmed during the MultiMediaCard testing and
formatting procedure, on the manufacturing floor. The MultiMediaCard host can only read this register
and not write to it.
2.6.4 Card Status
MultiMediaCard status is stored in a 32 bit status register which is sent as the data field in the card
respond to host commands. Status register provides information about the card's current state and
completion codes for the last host command. The card status can be explicitly read (polled) with the
SEND_STATUS command.
8
MultiMediaCardTM
2.6.5 Memory Array Partitioning
Although the MultiMediaCard memory space is byte addressable with addresses ranging from 0 to the
last byte, it is not a simple byte array but divided into several structures. Memory bytes are grouped
into 512 byte blocks called sectors. Every block can be read, written individually.
Erase group is a number of sectors. Its size is the number of consecutive sectors. Any combination of
erase groups can be erased in a single erase command. A write command implicitly erases the
memory before writing new data into it. Explicit erase command can be used for pre-erasing of memory
to speed up the next write operation.
Write Protect Groups (WPG) is the minimal units that may have individual write protection. Its size is
the number of erase units that will be write protected by on bit. The write/erase access to each WPG
can be limited individually. The number of various memory structures, for the different MultiMediaCards
are summarized in Table 2-1
Table 2-1 Memory Array Structure
Bytes 32MB 64MB 128MB 256MB 512MB 1GB
62,720 125,440 250,880 501,760 1,003,520 2,007,040
Sectors 1,960 3,920 980 1,960 3,920 7,840
Erase
Group 490 980 245 490 980 1,960
WPG
Read and Write Operations
The MultiMediaCard supports two read/write modes.
Single Block Mode
In this mode the host reads or writes one data block in a pre-specified length block transmission is
protected with 16 bit CRC which is generated by the sending unit and checked by the receiving unit.
Misalignment is not allowed. Every data block must be contained in a single memory sector. The block
length for write operations must be identical to the sector size and the start address aligned to a sector
boundary.
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 starting at the
address specified in the command.
The operation is terminated with a stop transmission command. Misalignment and block length
restrictions apply to multiple blocks as well and are identical to the single block read/write operations.
Multiple block read with pre-defined block is supported.
2.6.6 Data Transfer Rate
The average data transfer rate for the MultiMediaCard is 1 Mbyte/sec for read and 300 Kbyte/Sec for
write (erase time is included) at 3.3 Volts. In block mode, where time gaps can be inserted between
data blocks, the maximum clock frequency is 20MHz. The typical access time (latency) for each data
block, in read operation, is 1.5ms. The write block operation is done in handshake mode. The card will
keep data line DAT low as long as the write operation is in progress and there are no write buffers
available
9
MultiMediaCardTM
2.6.7 Data Protection in the Flash Card
Every sector is protected with an Error Correction Code (ECC). The ECC is generated (in the memory
card) when the sectors are written and validated when the data is read. If defects are found, the data is
corrected prior to transmission to the host.
The MultiMediaCard can be considered error free and no additional data protection is needed.
However, if an application uses additional, external, ECC protection, the data organization is defined in
the user writeable section of the CSD register
2.6.8 Erase
The smallest erasable unit in the MultiMediaCard is a erase group. In order to speed up the erase
procedure, multiple erase groups can be erased in the same time. The erase operation is divided into
two stages.
Tagging - Selecting the Sectors for Erasing
To facilitate selection, a first command with the starting address is followed by a second command with
the final address, and all erase groups within this range will be selected for erase.
Erasing - Starting the Erase Process
Tagging can address erase groups. An arbitrary selection of erase groups may be erased at one time.
Tagging and erasing must follow a strict command sequence (refer to the MultiMediaCard standard
specification for details).
2.6.9 Write Protection
The MultiMediaCard erase groups are grouped into write protection groups. Commands are provided
for limiting and enabling write and erase privileges for each group individually. The current write protect
map can be read using SEND_WRITE_PROT command.
In addition two, permanent and temporary, card levels write protection options are available.
Both can be set using the PROGRAM_CSD command (see below). The permanent write protect bit,
once set, cannot be cleared.
The One Time Programmable (OTP) characteristic of the permanent write protect bit is implemented in
the MultiMediaCard controller firmware and not with a physical OTP cell.
2.6.10 Copy Bit
The content of an MultiMediaCard can be marked as an original or a copy using the copy bit in the
CSD register. Once the Copy bit is set (marked as a copy) it cannot be cleared.
The Copy bit of the MultiMediaCard is programmed (during test and formatting on the manufacturing
floor) as a copy. The MultiMediaCard can be purchased with the copy bit set (copy) or cleared,
indicating the card 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.
2.6.11 The CSD Register
All the configuration information of the MultiMediaCard is stored in the CSD register. The MSB bytes of
the register contain manufacturer data and the two least significant bytes contains the host controlled
data - the card Copy and write protection and the user ECC register.
10
MultiMediaCardTM
The host can read the CSD register and alter the host controlled data bytes using the SEND_CSD and
PROGRAM_CSD commands.
2.7 SPI Mode
The SPI mode is a secondary (optional) communication protocol offered for MultiMediaCard. This
mode is a subset of the MultiMediaCard protocol, designed to communicate with an SPI channel,
commonly found in Motorola's (and lately a few other vendors') microcontrollers.
2.7.1 Negotiating Operation Conditions
The operating condition negotiation function of the MultiMediaCard bus is not supported in SPI mode.
The host must work within the valid voltage range (2.7 to 3.6 volts) of the card.
2.7.2 Card Acquisition and Identification
The card acquisition and identification function of the MultiMediaCard bus is not supported in SPI mode.
The host must know the number of cards currently connected on the bus. Specific card selection is
done via the CS signal.
2.7.3 Card Status
In SPI mode only 16 bits (containing the errors relevant to SPI mode) can be read out of the
MultiMediaCard status register.
2.7.4 Memory Array Partitioning
Memory partitioning in SPI mode is equivalent to MultiMediaCard mode. All read and write commands
are byte addressable.
2.7.5 Read and Write Operations
In SPI mode, only single block read/write mode is supported.
2.7.6 Data Transfer Rate
In SPI mode only block mode is supported. The typical access time (latency) for each data block, in
read operation, is 1.5mS. The write typical access time (latency) for each data block, in read operation,
is 1.5mS. The write block operation is done in handshake mode. The card will keep DataOut line low
as long as the write operation is in progress and there are no write buffers available.
2.7.7 Data Protection in the MultiMediaCard
Same as for the MultiMediaCard mode.
2.7.8 Erase
Same as in MultiMediaCard mode
11
MultiMediaCardTM
2.7.9 Write Protection
Same as in MultiMediaCard mode
12
MultiMediaCardTM
3 Product Specifications
3.1 Recommended Operating Conditions
The recommended operating conditions define the parameter ranges for optimal performance and
durability of MultiMediaCard.
Parameter Symbol Min Typ Max Unit Remark
Supply Voltage Vcc 2.7 3.0 3.6 V CL