怎么优化SD卡的识别率

      SD在大量的电子设备上都有使用,携带方便,价格也不贵,存储容量大,目前在平板手机、车载、播放器等等电子产品上使用的非常频繁,但是SD卡的问题又比较多,一个是基于nand flash的先天性问题,一个是制程的问题,另外还存在许多仿冒的卡,以金斯顿的仿冒品最常见。在诸多的SD卡问题上,首先就是一个识别的问题,如果系统都识别不到,就谈不上使用,更谈不上体验了。那怎么优化识别呢?

/*****************************************************************************************************/

声明:本博内容均由 http://blog.csdn.net/edsam49 原创,转载请注明出处,谢谢!

/*****************************************************************************************************/

     首先从设计上,SD卡一般都会接一个detect引脚,用一个GPIO来检测,常见的是使用电平中断来触发,也就是变成一个稳定的高低电平才会触发中断信息,比起用边缘触发的还是要更稳定一些。一般来说芯片系统的GPIO还是很稳定的,检测也是非常准确的,那为什么有时候有卡又检测不到呢,就是没有挂载上。这其中的原因可能多种多样,比较常见的有SD卡卡座不大好,接触不好,芯片都没检测到有卡当然不会去做挂载了,另外一些静电电荷也会有影响,在PC电脑上我们也经常遇到有时卡插进去,读卡器也没正常挂载上,还需要重新插拔一下又可能挂载上了,当然这种情况在嵌入式设备上也是一样存在的。

      因此卡座没有问题的情况下,一般来说芯片找到卡应该是没有问题的,我们在实践中经常遇到,检测SD的gpio已经检测到有卡,但是在初始化sd卡,进行会话通讯的时候,不成功,所以导致了有卡挂不上的悲剧。笔者在做车载电子设备的时候也是经常遇到,这不排除有些卡本来确实有问题了,怎么弄都挂不上了的。下面就讲一下还没有那么坏的情况下怎么弄,SD的数据线跟命令线一般芯片都是一个GPIO型的,都有驱动能力的,因此可以提高驱动能力来优化一下,驱动能力大,电平更加稳定健壮,通讯出错的可能性要低一点,缺点就是可能电流会大一点,对SD的使用寿命可能有一点点影响,就是在大电流的模式下肯定是有弊端的,但是总比检测不到好吧。

        下面就讲一下怎么提高,笔者建议,我们可以默认配置一些驱动能力强一点的,在卡识别阶段会好一些,在卡识别到了以后,再把数据线跟命令线的驱动能力降低一点,这样可以提高识别率,也可以提高卡的使用寿命。经过实践证明,这种处理还是不错的。总之,优化是要在牺牲的代价越小的情况下达到我们的目的是最佳的。

猜你喜欢

转载自blog.csdn.net/sundesheng125/article/details/80377223