SWRU626 December 2025 CC3501E , CC3551E
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:
Since the SDMMC 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 SDMMC includes two features which make a transfer stop more convenient andeasier to manage:
This feature is enabled by setting the SD_CMD[2] ACEN bit to 1 (this setting is relevant for a SD transfer with a known number of blocks to transfer). When the Auto CMD12 feature is enabled, the SDMMC will automatically issue a CMD12 command when the expected number of blocks has been exchanged.
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.
Table 20-10 shows the common ways to stop a transfer, indicating command to send and features to enable.
| WRITE Transfer | READ Transfer | ||
|---|---|---|---|
| Single block |
Transfer ends automatically Wait TC |
Transfer ends automatically Wait TC |
|
| Multi blocks (finite or infinite) | Before the programmed block boundary |
Send CMD12 Wait TC |
Send CMD12 Wait TC |
| Stop at the end of the transfer (finite transfer only) |
Auto CMD12 active Transfer ends automatically Wait TC |
Auto CMD12 active Transfer ends automatically Wait TC |
|
The SDMMC will send the stop command to the card on a block boundary, regardless the moment the command was written to the controller registers.