Functional Description
18.3.11 Transfer Stop
Whenever a transfer is initiated, the transmission may be willed to stop whereas it is still not finished.
Several cases can be faced depending on the transfer type:
•
Multiple blocks oriented transfers (for which transfer length is known)
•
Continuous stream transfers (which have an infinite length)
NOTE:
Since the MMC/SD/SDIO controller manages transfers based on a block granularity, the
buffer will accept a block only if there is enough space to completely store it. Consequently, if
a block is pending in the buffer, no command will be sent to the card because the card clock
will be shut off by the controller.
The MMC/SD/SDIO controller includes two features which make a transfer stop more convenient and
easier to manage:
•
Auto CMD12 (for MMC and SD only).
This feature is enabled by setting the SD_CMD[2] ACEN bit to 1 (this setting is relevant for a MMC/SD
transfer with a known number of blocks to transfer). When the Auto CMD12 feature is enabled, the
MMC/SD/SDIO controller will automatically issue a CMD12 command when the expected number of
blocks has been exchanged.
•
Stop at block gap
This feature is enabled by setting the SD_HCTL[16] SBGR bit to 1. When enabled, this capability holds
the transfer on until the end of a block boundary. If a stop transmission is needed, software can use
this pause to send a CMD12 to the card.
shows the common ways to stop a transfer, indicating command to send and features to
enable.
Table 18-15. MMC/SD/SDIO Controller Transfer Stop Command Summary
WRITE Transfer
READ Transfer
MMC/SD
SDIO
MMC/SD
SDIO
Single block
Transfer ends
Transfer ends
Transfer ends
Transfer ends
automatically
automatically
automatically
automatically
Wait TC
Wait TC
Wait TC
Wait TC
Multi blocks
Before the
Send CMD12
Send CMD52
Send CMD12
Send CMD52
(finite or infinite)
programmed block
Wait TC
Wait TC
Wait TC
Wait TC
boundary
Stop at the end of
Auto CMD12 active
Set SD_HCTL[16]
Auto CMD12 active
If READ_WAIT
the transfer
Transfer ends
SBGR bit to 1.
Transfer ends
supported
(finite transfer only)
automatically
Send CMD52
automatically
Stop at block gap
Wait TC
Wait TC
Wait TC
Wait TC
If READ_WAIT not
supported
Send CMD52
Wait TC
NOTE:
The MMC/SD/SDIO controller will send the stop command to the card on a block boundary,
regardless the moment the command was written to the controller registers.
3377
SPRUH73H – October 2011 – Revised April 2013
Multimedia Card (MMC)
Copyright © 2011–2013, Texas Instruments Incorporated