
Interfacing with the MMC/SD Module
Setup and Use of the Multimedia Card/Secure Digital Host Controller Application Note, Rev. 0
6
Freescale Semiconductor
4.1.2
Reset
When the i.MX is powered up, all cards (including the cards having been in inactive state) are in idle
state. Sending the command GO_IDLE_STATE (CMD0) also sets all cards into idle state. After the cards
are reset through the hardware or software (CMD0):
•
All cards’ output bus drivers are in high-impedance state
•
The cards are initialized with a relative card address (RCA) of 0x0001
•
The cards are configured with a default driver stage register setting (lowest speed, highest driving
current capability).
In identification mode, low frequency is required for MMC cards (0 – 400 kHz).
4.1.3
Voltage Validation
All valid cards should be able to establish communication with the processor. If the card is not compatible
with the valid V
DD
range, the card will not be able to complete the identification mode.
SD_APP_OP_COND (ACMD41) is a special command for the SD cards to identify and reject cards that
are not within the V
DD
range. Because SD_APP_OP_COND is an application command, APP_CMD
(CMD55) must precede ACMD41.
MMC cards do not respond to CMD55. To recognize the MMC card, first send CMD55 and confirm
whether a time-out has occurred. If a time-out has occurred, then check for the MMC card by sending the
SEND_OP_COND (CMD1) command and check again for a time-out. If a time-out occurs after CMD1
then the following possibilities may have occurred:
1. No card present or incorrectly installed
2. Card does not meet the valid V
DD
range
3. Frequency is greater than 400 kHz
4.1.4
Card Registry
After validating the voltage for the card(s) and activating the bus, the module requests the card(s) to send
their operation conditions before going to the identification state. To request the operation conditions for
the card(s), the user must send the commands CMD55 followed by ACMD41 for the SD cards. For the
MMC cards the user must send the command CMD1. Afterwards the user must send CMD2 to each card
to get its unique card identification (CID) number. The last step is to send the SEND_RELATIVE_ADDR
(CMD3) command to publish a new relative card address. After the new RCA has been published the
state changes to standby state and the output switches from open-drain to push-pull. The RCA is used in
the data transfer mode.
4.2
System Clock Controller
Two clock stages are used in the MMC/SD module to maximize the power-saving capabilities. The input
clock operates around 20–100 MHz and passes through a prescaler that adjusts the inner clock under
20 MHz, which is the maximum operation frequency of the module. This clock is then passed through a
user-programmable clock divider. The divider is used to program the final MMC/SD bus clock for