Clear the flag register
Set the SDCLKCR register.
SDSIZE = 0000 0200h
SDIMSK1 = 0000 FFFEh
SDIMSK2 = 0000 7F80h
SDSTOP = 0000 0100h
SDBLKCNT = Number of transfer blocks
SDIOMD = 0000 0001h
SDIOIMSK = 0000 BFFEh
Did a response end
or error occur?
SDSTS1 = 0000 FFFEh Clear the flags.
SDARG = Argument field value
SDCMD = 0000 6C35h
CMD53 (multi-block write) issued
Error (communication error or timeout)
Read the SDRSP10 register Check the response.
SDIMSK1 = 0000 FFFBh
SDIMSK2 = 0000 7D80h
Enable the access end interrupt
Enable the BWE interrupt
Is the BWE flag 1 or
did an error occur?
SDSTS2 = 0000 FDFFh Clear the flags.
Write data to the SDBUFR register
(transfer data size set in the SDSIZE register)
Write data.
Did an access end
or error occur?
SDSTS1 = 0000 FFFBh
Clear the flags.
Error processing
(clear the interrupt flags)
A
Have the number
of blocks set in the SDBLKCNT register
been written?
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)