Figure 11-11: SD/MMC Controller Initialization Sequence
†
Assert Active-Low Reset
Enable Power to Card
Set Interrupt Masks
Enumerate Card Stack
Set the Clock Source Assignments
Set Other Controller Registers
Power-On Reset Sequence
Software must perform the following steps after the power-on-reset:
1. Before enabling power to the card, confirm that the voltage setting to the voltage regulator is correct.
†
2. Enable power to the card by setting the power enable bit (
power_enable)
in the power enable register
(
pwren
) to 1. Wait for the power ramp-up time before proceeding to the next step.
†
3. Set the interrupt masks by resetting the appropriate bits to 0 in the
intmask
register.
†
4. Set the
int_enable
bit of the
ctrl
register to 1.
†
Altera recommends that you write 0xFFFFFFFF to the
rintsts
register to clear any pending
interrupts before setting the
int_enable
bit to 1.
†
Note:
5. Discover the card stack according to the card type. For discovery, you must restrict the clock frequency
to 400 kHz in accordance with SD/MMC/CE-ATA standards. For more information, refer to
Enumerated
Card Stack
.
†
6. Set the clock source assignments. Set the card frequency using the
clkdiv
and
clksrc
registers of the
controller. For more information, refer to
Clock Setup
.
†
7. The following common registers and fields can be set during initialization process:
†
SD/MMC Controller
Altera Corporation
cv_54011
Power-On Reset Sequence
11-30
2013.12.30