Table 11-31: Card Read Threshold Guidelines
†
Card Read Threshold Required?
Is Stopping of Card
Clock Allowed?
Round Trip Delay (Delay_R)
(34)
Bus Speed Modes
Yes
No
No
Yes
Delay_R > 0.5 * (
sdmmc_clk
/4)
Delay_R < 0.5 * (
sdmmc_clk
/4)
SDR25
Yes
No
No
Yes
Delay_R > 0.5 * (
sdmmc_clk
/4)
Delay_R < 0.5 * (
sdmmc_clk
/4)
SDR12
Related Information
Recommended Usage Guidelines for Card Read Threshold
1. The
cardthrctl
register must be set before setting the
cmd
register for a data read command.
†
2. The
cardthrctl
register must not be set while a data transfer command is in progress.
†
3. The
cardrdthreshold
field of the
cardthrctl
register must be set to at the least the block size
of a single or multiblock transfer. A
cardrdthreshold
field setting greater than or equal to the block
size of the read transfer ensures that the card clock does not stop in the middle of a block of data.
†
4. If the round trip delay is greater than half of the card clock period, card read threshold must be enabled
and the card threshold must be set as per guideline 3 to guarantee that the card clock does not stop in
the middle of a block of data.
†
5. If the
cardrdthreshold
field is set to less than the block size of the transfer, the host must ensure
that the receive FIFO buffer never overflows during the read transfer. Overflow can cause the card clock
from the controller to stop. The controller is not able to guarantee that the card clock does not stop during
a read transfer.
†
If the
cardrdthreshold
field of the
cardthrctl
register, and the
rx_wmark
and
dw_dma_multiple_transaction_size
fields of the
fifoth
register are set incorrectly,
the card clock might stop indefinitely, with no interrupts generated by the controller.
†
Note:
Card Read Threshold Programming Sequence
Most cards, such as SDHC or SDXC, support block sizes that are either specified in the card or are fixed to
512 bytes. For SDIO, MMC, and standard capacity SD cards that support partial block read
(READ_BL_PARTIAL set to 1 in the CSD register of the card device), the block size is variable and can be
chosen by the application.
†
(34)
Delay_R = D tODLY + Delay_I
†
Where:
†
Delay_O =
sdmmc_clk
to
sdmmc_cclk_out
delay (including I/O pin delay)
†
Delay_I = Input I/O pin delay + routing delay to the input register
†
tODLY =
sdmmc_cclk_out
to card output delay (varies across card manufactures and speed modes)
†
For the delay numbers needed for above calculation, refer to Arria 10 Datasheet.
†
SD/MMC Controller
Altera Corporation
cv_54011
Recommended Usage Guidelines for Card Read Threshold
11-58
2013.12.30