最近我们有客户朋友在使用CS创世 SD NAND的时候遇到了这样的问题,在使用我们SD NAND的时候,同样的测试环境下,4GB的用的没有任何问题,用512MB和128MB的用的时候会出现用不了的情况,这种情况是因为4GB属于SDHC,512MB和128MB属于小于2GB的SDSC,本文来简单阐述下两者的区别。
【1Gb SD NAND 二代】商品购买链接:https://item.szlcsc.com/3013565.html
CS创世 SD NAND经过实测是完全遵守SD 2.0协议的,SD2.0协议中规定,小于等于2GB的卡为SDSC,大于2GB的为SDHC在数据传输的过程中,如果主机使用部分块的累计长度不能对齐,而又不允许不对齐,卡应该在第一个不对齐的块开始的时候就检测到这个问题。
如下图所示,在CSD寄存器中写和读块不对齐那里数字都为0,表示不允许不对齐,即如果写块或者读块不对齐的话就会报错,导致数据无法传输。
如果是SDSC,数据块的长度是 CMD16 中定义的 BLOCK_LEN。如果是SDHC,数据块的大小固定为 512Byte。所以SDSC的adress必须要设置成0x200的整数倍,如下图所示:
命令参数
局部访问和位移访问
设置块长度
写保护组
b) 而SDSC可以。
【4Gb SD NAND 二代 】商品购买链接:https://item.szlcsc.com/2801455.html
读
读访问时间是 CSD 的参数 TAAC(数据访问时间) 和 NSAC(时钟周期NSAC*100中的数据读访问时间) 的和如果是单独的读操作,这些卡的参数 定义了读命令的结束位和数据块的起始位之间的延时。如果是多块的读操作,他们也定义了块与块之间的标准延迟。
b)对于SDHC来说,TAAC(数据访问时间) 和 NSAC(时钟周期NSAC*100中的数据读访问时间) 是写死的值。主机应该使用 100ms(最小)作为超时时间而不是使用 TAAC 和 NSAC 的和。
写
a)对于SDSC来说,超时时间应该是 100 倍的标准操作时间,或者是 250ms(取较小的)。
CSD 中的 R2W_FACTOR 区域用来指示标准的操作时间,这个值乘以读访问时间就是写访问时间。所有的写操作都是这个时间(SET(CLR)_WRITE_PROTECT,PROGRAM_CSD,以及块读命令)b)对于SDHC来说,R2W_FACTOR 也是一个写死的值。所有写操作 Busy 的最大值是 250ms。主机应该使用 250ms 作为单块或多块写操作的超时时间,而不使用 R2W_FACTOR。
因此同样是满足SD协议,不同容量的产品还是有一些差别的。因此客户朋友在选择产品的时候,可以提前咨询我们,节省产品的开发时间。
CS创世 SD NAND目前在航空航天、铁路交通、电力水力等一系列的市场中都得到了广泛的应用,欢迎各位朋友前来了解咨询。
【32Gb SD NAND 二代】商品购买链接:https://item.szlcsc.com/3022560.html