R01UH0823EJ0100 Rev.1.00
Page 1441 of 1823
Jul 31, 2019
RX23W Group
40. SD Host Interface (SDHIa)
If the RWREQ bit is set to 1 during a multi-block read sequence triggered by issuing CMD53, when the current block is
done being read, the SDHI enters the read wait state. The method for exiting the read wait state is as follows.
If the RWREQ bit is set to 0 while the SDHI is in the read wait state, the SDHI exits the read wait state.
If the IOABT bit is set to 1 while the SDHI is in the read wait state, after CMD52 is issued, the RWREQ bit
becomes 0 and the SDHI exits the read wait state.
If bits C52PUB and RWREQ are simultaneously set to 1 during a multi-block read sequence triggered by issuing
CMD53
, the SDHI does not automatically exit the read wait state, so after receiving the CMD52 response, set the
RWREQ bit to 0.
Note 1.
Set bits RWREQ and C52PUB to 1 simultaneously.
If the RWREQ bit is set to 1 while the last block is being transferred during a multi-block read sequence triggered by
issuing CMD53, the SDHI will not enter the read wait state, the SDSTS1.ACEND flag becomes 1, and the RWREQ bit
becomes 0. Set the RWREQ bit to 1 after the SDSTS1.RSPEND flag becomes 1.
If the IOABT bit is set to 1 during a multi-block transfer sequence triggered by issuing CMD53, the SDHI stops the
CMD53 command sequence, and CMD52 is issued. If the command sequence is stopped due to a communication
error or timeout, the SDHI does not issue CMD52. The SD buffer can be accessed even after the IOABT bit is set to
1, but the SDSTS2.ILR flag or ILW flag becomes 1, and a buffer access error occurs. Write a value to the SDARG
register before setting the IOABT bit to 1.
During a single block write, if there is no data in the SD buffer when the IOABT bit is set to 1, the SDHI does not
issue CMD52, and the SDSTS1.ACEND flag becomes 1. If there is data in the SD buffer when the IOABT bit is set
to 1, the SDHI does not issue CMD52, and after the SDHI exits the busy state, the SDSTS1.ACEND flag becomes
1.
If the IOABT bit is set to 1 during a single block read, the SDHI does not issue CMD52, and the SDSTS1.ACEND
flag immediately becomes 1.
If the SDHI is in the busy state after the R1b response is received and the IOABT bit is set to 1, the SDHI does not
issue CMD52, and after the SDHI exits the busy state, the SDSTS1.ACEND flag becomes 1.
If the IOABT bit is set to 1 after the command sequence is completed, the SDHI does not issue CMD52, and the
SDSTS1.ACEND flag does not become 1.
Set the IOABT bit to 1 after the SDSTS1.RSPEND flag becomes 1.
Set the IOABT bit to 0 after the SDSTS1.ACEND flag becomes 1.
If the C52PUB bit is set to 1 during a multi-block write sequence triggered by issuing CMD53, CMD52 is
automatically issued when the SD buffer is empty and the current block write access is complete. The C52PUB bit
becomes 0 after the response for CMD52 is received. If the C52PUB bit is 1 while the last block is being
transferred, the SDHI does not issue CMD52, and after the SDSTS1.RSPEND flag becomes 1, the C52PUB bit is
set to 0.
If the C52PUB bit and RWREQ bit are set to 1 during a multi-block read sequence triggered by issuing CMD53, the
SDHI enters the read wait state after the current block read access is complete, and the SDHI automatically issues
CMD52. The C52PUB bit becomes 0 after the response for CMD52 is received. If the C52PUB bit is set to 1 while
the last block is being transferred, the SDHI does not issue CMD52, and after the SDSTS1.RSPEND flag becomes
1, the C52PUB bit is set to 0.
During a multi-block read sequence triggered by issuing CMD53, if the C52PUB bit is set to 1, also set the RWREQ
bit to 1.
Write a value to the SDARG register before setting the C52PUB bit to 1.
Set the C52PUB bit to 1 after the SDSTS1.RSPEND flag becomes 1.