• 30
  • 10月

经常看到SD/MMC这样的写法。Hanny在这里稍微总结一下SD卡和MMC卡的异同点吧。

首先,两者在外型的规格上是几乎一致的。而且两都的接口是兼容的。也就是说,两者可以用同一个卡座来进行读取。而且,两者在时序上也是一致的,读写命令控制也完全一样,这就是为什么经常把两者混在一起写的原因。

不过,虽说外型几乎一致,但还是有点差异的。MMC比SD卡要薄一些,并且,长度只有SD卡的一半。

下面,Hanny从主机驱动方面谈谈两者的差异。

在数据位宽方面,MMC卡最大支持8BIT,而SD卡只能支持4BIT传输。

在卡的激活过程,MMC使用CMD1来进行激活,而SD卡使用ACMD41来进行激活的。于是,这两条命令也成了主机区分两种卡的类型的关键。

在获取卡的RCA地址时,MMC卡是由主机分配RCA给设备,而SD卡则是由设备返回RCA给主机。

在CMD6的使用方法上也有很大不同。MMC有EXT_CSD的概念,主要用CMD8进行读取,CMD6进行设置。而SD卡则只用CMD6进行UserFunction的设置。SD卡的CMD8主要用于区别SD1.0和SD2.0。

MMC还支持CMD14和CMD19进行主线测试,从而选择合适总线进行通信。SD则不支持。

另外,MMC卡还支持CMD11、CMD20这类数据流操作,因此较多用于媒体设备上。MMC还支持Boot等高级的用法。

  • 24
  • 10月

SD/MMC卡的读写模式分两种。一种是利用SD总线来进行数据传输,这里称为SD模式;另外一种是利用SPI总线来进行数据传输,这里称之为SPI模式。

最初接触SD/MMC卡时,Hanny一直觉得很奇怪,为什么SD/MMC卡要提供两种模式进行访问呢?比较完这两种模式的区别,分析其运用场合,就会明白答案了。

SD卡主要工作于4BIT SD模式下(MMC可能工作在8BIT SD模式下)。其读写最高时钟可达50MHz,因此,市面上的卡的读取速度能到达20MB/s以上,已经算极限了。SD模式也是SD卡的主要工作模式。

而SPI模式只有1BIT的带宽,而且时钟最高只能到25MHz,因此读取速度通常低于3MB/s。但是SPI模式对硬件要求较低,一般广泛用于MP3等对读卡速度要求不高的低端场合。

Hanny当时还有一个疑问:SD模式不是也同样支持1BIT模式吗?为什么不直接用SD的1BIT模式呢?

后来才明白:1、SPI总线是一个通用总线,大部份芯片都用硬件模块;2、SPI模式支持不带CRC校验的传输方式,可以降低硬件要求;3、SD的CMD线与DATA线之间有可能同时产生数据,对没有SD硬件模块的主机支持起来难度较高。

  • 18
  • 10月

虽然已经过去一段时间了,但是还是有必要记录下来,以免下次再犯同样的错误。

首先,在给SD卡初始化的过程中,必须要先开电,然后再给IO上拉!虽然,先给IO开上拉,再上电也大部份能够正常使用。然而,仅仅是大部份而已。为什么会这样呢?原因是:先给IO上拉,会在SD卡内部把VCC拉高,有可能导致SD卡主控芯片运行异常。其它一些芯片应该也是这样,Hanny,要记住了:先开电,再上拉。

血淋淋的教训啊。

  • 7
  • 10月

又是,八月十九。毕业后的第二个生日。然而,毕业后,却越来越感觉到自己开始角落化,和大家的联系也越来越少,慢慢地从以前同学的圈子里蒸发了。

阅读剩余部分...

  • 1
  • 10月

按照题目的意思,本来是该记些国庆时发生的一些点点滴滴的事情吧。

然而,确实不是。因为Hanny在国庆前一天,发高烧了,打了两天的点滴。

呃,这样也行啊,但确实就是这样。晚上打点滴,白天还得去公司加班,可怜啊。。。

唉,看来身体还不行呀,每隔一段时间就得生一次病,攒了半年多的医保卡,一次性就花完了。还得再加强锻炼。