SD/MMC 卡写时序请教
时间:10-02
整理:3721RD
点击:
SD/MMC 卡写时序请教
最近准备用FPGA实现对SD/MMC卡的控制,在读规范时一直有个疑问,因为我的控制逻辑设计用在AD转换方面,对写时序的要求较高,而对读几乎没什么要求。
所以就写时序的一些疑问请教大家:
1、写时序怎样达到吞吐速率最高?
肯定选择block write模式。在这种方式下,擦除有两种模式:
A、只管发送block write命令,这时候Erase操作是隐含的。
B、Erase操作是显现的,即先发送Erase命令,然后选择Multiple block write with pre-defined block count命令。
这两种哪种会快一些?
2、Erase操作
显现发送Erase命令,是以ERASE_GROUP为单位的。而写操作是以block为单位的,在进行写操作时,Erase隐含在写操作中。这会不会造成一些数据丢失?
譬如我要写某GROUP的一个block,隐含的Erase会不会把其他block数据全部擦除?
3、写操作的busy怎样计算?
在进行block write时,SD/MMC 卡会在data0出现busy状态,这种状态最多持续多长时间?我看规范和一些器件手册都没有标出来。因为这涉及到SD/MMC 卡的实际数据吞吐量。
在高速SD/MMC 卡中,虽然Burst data会达到52Mhz,但如果他的busy状态持续时间很长,则平均速率会很低。
请各位大侠不吝赐教
最近准备用FPGA实现对SD/MMC卡的控制,在读规范时一直有个疑问,因为我的控制逻辑设计用在AD转换方面,对写时序的要求较高,而对读几乎没什么要求。
所以就写时序的一些疑问请教大家:
1、写时序怎样达到吞吐速率最高?
肯定选择block write模式。在这种方式下,擦除有两种模式:
A、只管发送block write命令,这时候Erase操作是隐含的。
B、Erase操作是显现的,即先发送Erase命令,然后选择Multiple block write with pre-defined block count命令。
这两种哪种会快一些?
2、Erase操作
显现发送Erase命令,是以ERASE_GROUP为单位的。而写操作是以block为单位的,在进行写操作时,Erase隐含在写操作中。这会不会造成一些数据丢失?
譬如我要写某GROUP的一个block,隐含的Erase会不会把其他block数据全部擦除?
3、写操作的busy怎样计算?
在进行block write时,SD/MMC 卡会在data0出现busy状态,这种状态最多持续多长时间?我看规范和一些器件手册都没有标出来。因为这涉及到SD/MMC 卡的实际数据吞吐量。
在高速SD/MMC 卡中,虽然Burst data会达到52Mhz,但如果他的busy状态持续时间很长,则平均速率会很低。
请各位大侠不吝赐教
busy 长度看看说明书, 一般上10ms, 跟你没关系, NAND FLASH 写就是这么慢.
记得写过程为: store->erase->write
所以当然光 erase 是最快的啦~
我通读 SD SDIO MMC 协议, 欢迎加我 QQ 讨论 447652724