MMC FLASH Cards

MMC defined the SPI and one-bit MMC/SD protocols. The underlying SPI protocol has existed for years as a standard feature on many microcontrollers.

A new incompatible SD/MMC protocol used open collector signalling to allow multiple cards on the same bus but this actually causes problems at higher clock rate. While SPI used three shared lines plus a separate chip select to each card, the new protocol allows up to 30 cards to be connected to the same three wires (with no chip select) at the expense of a much more complicated card initialization and the requirement that each card have a unique serial number for plug and play operation; this feature is rarely used and its use is actively discouraged in new standards (which recommend a completely separate channel to each card) because of speed and power consumption issues.

The quasi-proprietary one-bit protocol was extended to support four bit wide (SD and MMC) and eight bit (MMC only) transfers for more speed while much of the rest of the computer industry is moving to higher speed narrower channels; standard SPI could simply have been clocked at higher data rates (such as 133 MHz) for higher performance than offered by four-bit SD — embedded CPUs that did not already have higher clock rates available would not have been fast enough to handle the higher data rates anyway. The SD card association dropped support for some of the old one-bit MMC protocol commands and added support for additional commands related to copy protection.

MMC has also evolved faster versions (MMCplus) that support transfer widths of 1, 4, or 8 bits (13 pins), at up to 416 megabits per second.

Accessing MMC from a PC parallel port with Delphi Source code

See also:

Comments: