LZ: 对于大容量的SD卡,在发送ACMD41后要检查CCS是否为1来确定大容量SD卡否。为了能够识别各种卡,最始的时钟设置不能高于400kHz;
对大容量SD卡操作的差异存储器访问命令包括读块命令(CMD17、CMD18)、写块命令(CMD24、CMD25)及块擦除命令(CMD32、CMD33)。
下面是标准容量SD卡和大容量SD卡在存储器访问时的功能差别:
1 . 命令变量大容量SD卡,存储器访问命令的32位变量是对块寻址的存储器访问(是决定块的块变量)。块的固定大小为512字节。而标准容量的SD卡,32位变量是对字节寻址,块长度由CMD16命令决定。
即:
(a),标准容量的SD卡,变量0001h是对0001h字节单元寻址,而在大容量SD卡中是对0001h块寻址。(b),标准容量的SD卡,变量0002h是对0002h字节单元寻址,而在大容量SD卡中是对0002h块寻址。
2. 局部寻址和非对齐寻址。在大容量SD卡中,不允许作为块寻址的局部寻址和非对齐寻址(跨跃块边界),只允许对整个块寻址。
3.设置块长度当使用块寻址模式的存储器读写命令,块长度为512字节,不关心CMD16设置的块长度。块长度设置对存储器访问命令无效。CMD42不属于存储器访问命令。CMD16指定的数据块大小和块长度,置为512字节。大于512字节将里将置位BLOCK_LEN_ERROR,且忽略卡容量。
4. 写保护分组大容量SD卡不支持。发送命令CMD28、CMD29和CMD30将产生ILLEGAL_COMMAND错误
5、读写超时检查读:对标准容量的SD卡,读超时的时间设定为大于典型读出时间的100倍,或者设置为100mS。卡参数的读时间为:CSD中的TAACT NSAC参数的两倍。
写:对标准容量的SD卡,写超时的时间设定为大于典型编程时间的100倍,或者设置为250mS。卡参数的写时间为:CSD中的R2W_FACTOR。
对于大容量卡,CSD中的参数为因定值,因此最好使用>100mS作为读超时,>250mS作为超时。
|