CS(创世)SD NAND SDHC和SDSC的区别

2021-10-26 09:47:41 admin 21

   最近我们有客户朋友在使用CS(创世)SD NAND的时候遇到了这样的问题,在使用我们SD NAND的时候,同样的测试环境下,4GB的用的没有任何问题,用512MB和128MB的用的时候会出现用不了的情况,这种情况是因为4GB属于SDHC,512MB和128MB属于小于2GB的SDSC,下面由我来简单阐述下两者的区别。

   我们CS(创世)SD NAND经过实测是完全遵守SD 2.0协议的,SD2.0协议中规定,小于等于2GB的卡为SDSC,大于2GB的为SDHC在数据传输的过程中,如果主机使用部分块的累计长度不能对齐,而又不允许不对齐,卡应该在第一个不对齐的块开始的时候就检测到这个问题。

如下图所示,在CSD寄存器中写和读块不对齐那里数字都为0,表示不允许不对齐,即如果写块或者读块不对齐的话就会报错,导致数据无法传输。

SD NAND,贴片式TF卡,贴片式SD卡

  如果是SDSC,数据块的长度是 CMD16 中定义的 BLOCK_LEN。如果是SDHC,数据块的大小固定为 512Byte。所以SDSC的adress必须要设置成0x200的整数倍,如下图所示:

SD NAND,贴片式TF卡,贴片式SD卡

命令参数

   SDHC中,内容访问命令的 32bit 参数,使用块地址格式。块长度固定为 512Byte;SDSC中,内容访问命令的 32bit 参数使用的是字节地址格式。块长度由 CMD16 决定。比如:1.SDSC的 0001h 参数表示字节地址 0001h,SDHC表示第 0001h 个 block;2.SDSC的 0200h 参数表示直接地址 0200h,SDHC表示第 0200h 个 block

 

局部访问和位移访问

SDHC因为是以块为单位的,所以不支持这种,只允许块地址访问。

 

设置块长度

   当以块地址模式进行存储读和写命令时,不管 CMD16 设置的块长是多少,块的长度都固定为 512Byte。就是说块长度的设置不会影响存储访问命令。CMD42(锁定/解锁)不属于存储访问命令,因此块长度可以通过 CMD16 进行设置。不管卡容量多少,只要块长度设置大于 512Byte,都会报错 BLOCK_LEN_ERROR。

 

写保护组

a) SDHC不支持写保护组。因此 CMD28,CMD29,CMD30 会报错 ILLEGAL_COMMAND

b) 而SDSC可以。

 

   a)对于SDSC来说,读操作的超时时间是 100 倍的标准访问时间或者是 100ms(取较小的)。

读访问时间是 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目前在航空航天、铁路交通、电力水力等一系列的市场中都得到了广泛的应用,欢迎各位朋友前来了解咨询。

 

服务电话&邮箱

Tel:13691982107(优先)17727831243

QQ:2852826868 | jim@longsto.com

对外联系邮箱:info@longsto.com

投诉:ceo@longsto.com |13923450403

地址:深圳市龙华区民治街道展滔科技大厦B座1907室

首页
产品
资讯
联系