Clear the flag register
Set the SDCLKCR register.
SDSIZE = Transfer data size
SDIMSK1 = 0000 FFFEh
SDIMSK2 = 0000 7F80h
SDSTOP = 0000 0100h
SDBLKCNT = Number of transfer blocks
Did a response end
or error occur?
SDSTS1 = 0000 FFFEh Clear the flags.
SDARG = Argument field value
SDCMD = 0000 0019h
CMD25 (multi-block
write) issued
Error (communication error or timeout)
Read the SDRSP54 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
Write the SDBUFR register
(transfer data size set in the SDSIZE register)
Write data.
SDSTS1 = 0000 FFFBh
Error processing
(clear the interrupt flags)
Have the number
of blocks set in the SDBLKCNT register
been read?
No
Yes
Did an access end
or error occur?
Read the SDRSP10 register Check the response.
No
Yes
No
Yes
Clear the flags.
No
Yes
Clear the flags.
Start
End
Error (communication error or
timeout)
Error (communication error or timeout)