目前,SD卡CSD寄存器有V1.0和V2.0两个版本。
下面是V1.0和V2.0的CSD寄存器各位的定义表格。
1.单片机如何识别SD卡是V1.0还是V2.0的?
答:CSD寄存器为128个位,即16个字节。通过检测CSD寄存器的bit126是0还是1来判断。如果是0,即是V1.0版本的;如果是1,即是V2.0版本的。
单片机获取CSD数据流程(SPI方式):定义一个数组csd[16],CS引脚拉低,发送命令9,然后SPI发送命令0xff,同时观察SPI接收到的数据,如果数据不是0xfe,就再发送0xff,如此循环,直到接收到0xfe,就可以开始接收16个字节CSD寄存器数据了,这16个字节即CSD的128个位,接收完16个字节数据以后,然后再发送两个0xff,把CS拉高,再发送一个0xff,就完成了。
csd[0]是CSD寄存器的bit120~127,csd[15]是CSD寄存器的bit0~7。也就是说数据是从高位开始发送。
列个表格方便写