Clear the flag register
SDCLKCR = SDHI clock
SDSIZE = 0000 0200h
SDIMSK1 = 0000 FFFEh
SDIMSK2 = 0000 7F80h
SDSTOP = 0000 0100h
SDBLKCNT = Number of transfer blocks
SDIOMD = 0000 0001h
SDIOIMSK = 0000 3FFEh
Did a response end
or error occur?
SDSTS1 = 0000 FFFEh Clear the flags.
SDARG = Argument field value
SDCMD = 0000 7C35h
CMD53 (multi-block
read) issued
Error (communication error or timeout)
Read the SDRSP10 register Check the response.
SDIMSK1 = 0000 FFFBh
SDIMSK2 = 0000 7E80h
Enable the access end interrupt
Enable the BRE interrupt
Is the BRE flag 1 or
did an error occur?
SDSTS2 = 0000 FEFFh Clear the flags.
Read data from the SDBUFR register
(transfer data size set in the SDSIZE register)
Read data.
Did an access end
or error occur?
SDSTS1 = 0000 FFFBh
Clear the flags.
Error processing
(clear the interrupt flags)
A
Has the number
of blocks set in the SDBLKCNT register
been read?
No
Yes
B
From C52PUB
From IOABT
No
Yes
No
Yes
No
Yes
Start
End
Error (communication error or
timeout)
Error (communication error or timeout)