SPI驱动的sd卡,多块写的过程如下:
1.发送CMD25命令,SD卡正常返回响应为0X00
2.之后等待1byte以上(这里可以直接写数据等待,只要给sd卡1个byte以上时序就可以)
3.发送0XFC(SD官方文档就这么规定的,具体查看文档)
4.发送数据块,发送完后等待SD返回响应是否为0X05,之后应读忙,等待sd卡内部写完(0x05是数据被sd卡成功接受的返回指令)
5.若想继续发送数据块,重复3.4步骤
6.发送0XFD,停止写入数据
7.cs置高,再写入0XFF,结束
多块写时序如下:
时序图取自:http://elm-chan.org/docs/mmc/mmc_e.html
再附上最近写的一个代码和一些资料,主控芯片用的stc89c52,使用spi驱动,在程序上增加了多块写,多块读,擦除功能,希望对你有帮助。
链接:https://pan.baidu.com/s/1oJvYNDi7_crlyahqLgSbkQ
提取码:iv4g