基于FPGA的SD卡驱动设计

  最近调试了SD卡,遇到了一些小问题,记录一下,分享一下。

1.    SD卡 卡槽旁边的一个小开关

  我们平时见过的SD卡都是小的SD卡,可以放在手机上的。现在大多数的开发板上也是小的SD卡的卡槽,插入后,正好可以使用。但是如果想要用PC向里存储一定的东西,还是需要一个读卡器。读卡器有USB型的,同时也有一个大大的SD卡卡槽,就是扩展成为一个大的SD卡。大的SD卡在笔记本上有专门的插槽(笔者的有)。但是在SD卡卡槽的一侧有一个小的开关,这个小的开关是一个写保护开关。一般情况下,以金属接触点向上为正方向。向上推,是可读写。向下推是,是只读。这个在某些U盘上也有。

  如果PC写不进去,说是被写保护。先不要怀疑SD卡(U盘)坏了,首先考虑这个硬件写保护。

  原理是:这个开关是一个机械性的开关,如果里面两个金属触点接触,就可以写。否则,不能写。

 

2.     SD卡的区分

  SD,SDHC,SDXC这三个都是SD卡,以容量区分。在进行地址读写,有一定的区别。

  SD卡,按照字节地址去写(一般情况)。SDHC,SDXC卡,按照扇区地址进行读写(一般情况)。按照扇区还是字节地址和驱动协议也有一定的关系。

  一个扇区的大小为512字节。

 

3.    SD读取不对的问题

  我们可以用控制器进行读写SD卡,地址就是按照自己的设计就可以。

  很多时候,我们需要用PC将一些数据放入到SD卡,然后通过控制器进行读取。读取时,需要知道数据存储的地址。利用winhex软件可以查到数据存放的地址。我们用控制器进行读写SD卡,利用winhex软件查到的地址,有时读出来的数据不正确。

  经过不断的查找资料,发现利用winhxe软件查询数据存放地址时,可以有两个地址:物理地址和逻辑地址。winhex软件直接显示的逻辑地址。

  控制器直接进行SD卡读写时,是按照物理地址进行读写的。所以需要利用winhex中的物理地址。

  winhex显示物理地址一般在winhex软件的右下侧。

 

  希望对遇到同样问题的学习者有用,有什么不对的地方,恳请大佬们指出。

 

  奋斗的小孩郝旭帅:18500739518(QQ、微信)。  交流群:173560979

  

posted on 2019-10-18 17:52  郝旭帅电子设计团队  阅读(1437)  评论(0编辑  收藏  举报

导航