The MultiMediaCard specification defines a set of MultiMediaCard commands. The host uses the commands to retrieve information about a card and its status, to send control information to a card, and to read and write data in the storage media. An SPI host can use most of the MultiMediaCard commands. Chapter 4 and Chapter 5 have more about MultiMediaCard programming.
MultiMediaCard hosts have no licensing fees, but the MMCA charges to download the specifications. At this writing, the cost is $500 for version 3.1 of the specification and $1000 for version 4.1, which adds the MMCmobile and MMCplus variants. Those who join the MMCA at $2500/year get the specifications for no additional charge plus other benefits.
SD Memory Card
Secure Digital (SD) Memory Cards, or SD Cards for short, are similar in capability, size, and pinout to MultiMediaCards. An SD-Card host can communicate with both MultiMediaCards and SD Cards.
Compared to MultiMediaCards, SD Cards have these differences:
• In the original form factors, SD Cards are thicker than MultiMediaCards (2.1 mm versus 1.4 mm). Card connectors that accommodate both types are available. With adapters, you can use any form factor of either card type in a full-size SD-card connector.
• Some SD Cards have a manual write-protect switch.
• SD cards have additional registers with configuration and status information.
• SD Cards support additional commands, including a command that enables the host to specify a power-supply voltage.
• Unlike MultiMediaCards, SD Cards don’t need to be clocked at 400 kHz or less until the card is initialized (but doing so causes no harm).
The SD-Card technology was developed by Matsushita Electric Industrial Co., Ltd., SanDisk Corporation, and Toshiba Corporation.
The form factors are similar to the options available for MultiMediaCards. A card that performs I/O functions such as modem, GPS device,
or network interface is called an SDIO Card.
Figure 1-7: SD Cards are available in three form factors. From left to right:
original SD Card, miniSD Card, and microSD Card.
ure 1-7). The form factors are similar to the options available for MultiMediaCards. A card that performs I/O functions such as modem, GPS device, or network interface is called an SDIO Card.
The optional write-protect switch is a sliding tab on the side of the card. If the tab is in the lock position, the host must write-protect the contents. The switch by itself doesn’t offer protection. The firmware accessing the card is responsible for reading the state of the switch and protecting the contents when appropriate. SD-Card connectors include a pin that enables reading the switch state. The miniSD and microSD Cards don’t have write-protect switches but can be inserted in an SD-Card adapter that contains a switch.
An SD Card can use SPI or the SD-Card bus. The SD-Card bus can use a bus width of one or four bits. The SD-Card bus can have shorter timeout values and doesn’t require a clock frequency of 400 kHz or less on power up. A typical SD Card uses 65 mA to read and 75 mA to write and has a low-power sleep mode when the card isn’t being accessed.
SD Cards use the same commands and protocols defined by the MultiMediaCard specification. SD Cards also support a series of commands that are specific to SD Cards. These commands support security functions and enable reading additional status information and controlling a pull-up on the Card Detect pin.
Implementing an SD-Card host isn’t practical for developers of inexpensive products that sell in modest quantities. Every device that contains an SD-Card host must be licensed. At this writing, it costs $1000/year to join the SD Card Association and another $1000/year for a member to license a host. Membership includes access to the SD Card specifications.
If you don’t need the additional capabilities of SD Cards, a MultiMediaCard host is a less expensive option. If you use a connector wide enough to accept SD Cards, the host can communicate with both MultiMediaCards and SD Cards operated as MultiMediaCard-compatible devices.
Another option for flash memory is the CompactFlash card (Figure 1-8).
Like MultiMediaCards and SD Cards, CompactFlash cards contain mem-ory, registers, and an intelligent controller. CompactFlash was introduced by SanDisk Corporation. These cards are a solution if you need to store a lot of data in a small package or need very fast transfers.