
Functional Example of MMC/SD Communication
MOTOROLA
Multimedia Card/Secure Digital Host Controller
17-17
card’s request for service. Supporting MMC/SD interrupt mode is an option, both for the host and the
cards.
The host must ensure that all cards (including those cards that do not support interrupt mode) are in
the Stand-by State before issuing the GO_IRQ_STATE (CMD40) command. When waiting for an
interrupt response from a card, the host must keep the clock signal active. The clock rate can be
changed according to the required response time.
The host sets the cards into interrupt mode using the GO_IRQ_STATE (CMD40) command.
All cards in the Wait-IRQ-State are waiting for an internal interrupt trigger event. Once the event
occurs, the card starts to send its response to the host. This response is sent in the open-drain mode.
When waiting for the internal interrupt event, the cards are also waiting for a start bit on the
command line. On reception of a start bit (generated by either another card or the host), the card
aborts interrupt mode and switches to the Stand-by State.
Because the interrupt request message (response to command 40) is being sent in open-drain mode,
the host receives a single valid response even when multiple cards respond simultaneously. (This
can happen in the rare event that an interrupt event occurs in multiple cards that are synchronizing
their start bit, preventing the cards from detecting each other’s start bit.)
Regardless of winning or losing bus control during the CMD40 response, all cards switch to the
Stand-by State (as opposed to CMD2).
After the interrupt response is received by the host, the host returns to the standard data
communication procedure.
If the host wants to terminate the interrupt mode before an interrupt response is received, it can
generate the CMD40 response by itself (with card bit = 0) using the reserved RCA address 0x000.
This brings all cards from Wait-IRQ-State back into Stand-by-State. Now the host resumes the
standard communication procedure.
17.5.6 Application-Specific Command Handling
The MMC/SD system is designed to provide a standard interface for a variety of application types,
including customer-specific application features. To enable a common way of implementing these
features, two types of generic commands are defined in the MMC standard: Application-Specific
Command, ACMD, and General Command, GEN_CMD.
When received by the card, APP_CMD causes the card to interpret the following command as an
application-specific command, ACMD. The ACMD has the same structure as regular MMC-standard
commands, and it can have the same CMD number. The card recognizes it as an ACMD by the fact that it
appears after APP_CMD.
The only effect of the APP_CMD is that if the command index of the immediately following command has
an ACMD overloading, the non-standard version is used. For example, if a card has a definition for
ACMD13 but not for ACMD7, and if each of these commands is received immediately after the
APP_CMD command, command 13 is interpreted as the non-standard ACMD13 but command 7 is
interpreted as the standard CMD7.
In order to use one of the manufacturer-specific ACMDs, the host:
1. Sends APP_CMD. The response will have the APP_CMD bit (new status bit) set, signaling
to the host that an ACMD is now expected.
2. Sends the required ACMD. The response will have the APP_CMD bit set, indicating that
the accepted command was interpreted as an ACMD. If a non-ACMD is sent, then it will
be treated by the card as a normal MMC command, and the APP_CMD bit in the Card
Status stays clear.