
GD32F403xx User Manual
542
Read Wait operation
Suspend/resume operation
Interrupts
The SD I/O supports these operations only if the SDIO_DATACTL[11] bit is set, except for
read suspend that does not need specific hardware implementation.
SD I/O read wait operation
The optional Read Wait (RW) operation is defined only for the SD 1-bit and 4-bit modes. The
Read Wait operation allows a host to signal a card that is executing a read multiple (CMD53)
operation to temporarily stall the data transfer while allowing the host to send commands to
any function within the SD I/O card. To determine if a card supports the Read Wait protocol,
the host shall test SRW capability bit in the Card Capability byte of the CCCR. The timing for
Read Wait is based on the Interrupt Period. If a card does not support the Read Wait protocol,
the only means a host has to stall (not abort) data in the middle of a read multiple command
is to control the SDIO_CLK. The limitation of this method is that with the clock stopped, the
host cannot issue any commands, and so cannot perform other operations during the delay
time. Read Wait support is mandatory for the card to support suspend/resume.
Read wait control by stopping SDIO_CLK
Figure 20-13. Read wait operation using
show the Read Wait mode about stop the SDIO_CLK and use SDIO_DAT[2].
Figure 20-12. Read wait control by stopping SDIO_CLK
SDIO_CLK
DAT
Read data 1a
Interrupt period
H
Read data 1b
2 CLK
2 CLK
1 CLK
Figure 20-13. Read wait operation using SDIO_DAT[2]
SDIO_CLK
DAT[3:0]
Read data 1a
INT
Read data 1b
2 CLK
2 CLK
4 CLK min(no wait)
2 CLK
CMD
CMD52
DAT1
DAT2
Read data 1a
Read data 1a
Read data 1b
Read data 1b
We can start the Read Wait interval before the data block is received: when the data unit is
enabled (SDIO_DATACTL[0] bit set), the SD I/O specific operation is enabled
(SDIO_DATACTL[11] bit set), Read Wait starts (SDIO_DATACTL[10] = 0 and