• 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,要记住了:先开电,再上拉。

血淋淋的教训啊。

  • 27
  • 9月

还记得一年前,Hanny刚刚接手开始做项目的时候,有时总会遇到一些很入门级的问题。

就比如说中断吧,有个时候就是不知怎么也进不了自己想进的中断。经过了一段时间的学习,也总结了一些经验和心得。现在再努力回忆一下,把这些心得记下来。

阅读剩余部分...

  • 26
  • 9月

最近,Hanny使用了一段时间的IAR,很是郁闷。总结一下IAR的郁闷之旅吧。

首先,就是版本间的兼容问题了。我在机子上同时装了IAR720H和IAR750A,没想到工程却不能互相兼容,720H的工程一旦升级成750的工程后,就不能回来了。这不禁让我想起了VC6和VC.NET的关系。不过VC6和VC.NET还好我们可以建不同版本的工程,然后用不同的方式打开就行了。IAR却不行!我在IAR工程文件的打开方式中添加了两个版本的打开方式,可是每次是都被它自作聪明地改成了一个!唉,现在只能先运行不同版本的IDE,然后再分别打开工程了。烦!

阅读剩余部分...