1.SPI模式下的主要操作命令
(1)卡的识别、初始化等基本命令集
CMD0:复位SD卡。
CMD1:读OCR寄存器。
CMD9:读CSD寄存器。
CMD10:读CID寄存器。
CMD12:停止读多块时的数据传输。
CMD13:读Card_Status寄存器。
(2)读卡命令集
CMD16:设置块的长度。
CMD17:读单块。
CMD18:读多块,直至主机发送CMD12为止。
(3)写卡命令集
CMD24:写单块。
CMD25:写多块。
CMD27:写CSD寄存器。
(4)擦除卡命令集
CMD32:设置擦除块的起始地址。
CMD33:设置擦除块的终止地址。
CMD38:擦除所选择的块。
(5)写保护命令集
CMD28:设置写保护块的地址。
CMD29:擦除写保护块的地址。
2.SD卡的初始化
(1)初始化硬件配置,SPI配置,IO配置等。(www.daowen.com)
(2)上电延时。(>74CLK)
(3)复位卡。(CMD0)
(4)激活卡,内部初始化并获取卡的类型。
(5)查询OCR,获取供电情况。
(6)是否使用CRC(CMD59)。
(7)设置读写块数据长度(CMD16)。
(8)读取CSD,获取存储卡的其他信息(CMD9)
(9)发送8CLK后,禁止片选。
3.SPI模式下的读取数据过程,采用CMD17来实现
(1)发送CMD17。
(2)接收卡响应R1。
(3)接收数据起始令牌0XFE。
(4)接收数据。
(5)接收两个字节的CRC,如果没有开启CRC。这两个字节在读取后可以丢掉。
(6)8CLK之后禁止片选。
4.SPI模式下的写数据过程,采用CMD24来实现
(1)发送CMD24。
(2)接收卡响应R1。
(3)接收数据起始令牌0XFE。
(4)接收数据。
(5)发送两个字节的伪CRC。
(6)8CLK之后禁止片选。
5.代码实现
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。