cuter

【笔记】STM32F103+TF卡调试教训

0
阅读(84) 评论(1)

这两天在调试TF卡功能,碰到一些奇怪的错误如下:

  • 配合fatfs,能够成功地在TF卡中创建文件,但无法写入、读取数据

  • 配合fatfs,能够创建和读取文件

  • 去掉fatfs功能,单独调试TF卡读写函数,偶尔能够写成功

  • 发现读TF卡功能一直正常


由于我的板子上没有给数据线和CMD加上拉,所以怀疑是上拉导致的,但是上网看了看一些帖子,有人说不上拉也是可以正常工作的,所以就花了不少时间调试程序,不断的改时钟,单步,搞得头大。

改来改去的,发现没什么效果,还是把注意力放到硬件电路上来吧。

用万用表量了量TF卡各个引脚,感觉电压怪怪的,有的是1V多点,有的是0点几,这时候就感觉八成是上拉的问题了。于是乎动手焊了5个上拉电阻。

改完电路之后,上述所有问题都不复存在了,能够创建和读写文件。

这个时候再回过来测量一下TF卡各个引脚,电平都是在3.3V。

然后再来看看SD卡标准文献说的要上拉电阻在数据线上,是为了防止总线浮动,结合之前的测量情况来看,cuter的板子估计就是出现了总线浮动这种情况。

SD卡上拉电阻.png

至于为什么有人说不加上拉也可以,甚至还推荐不加上拉,就不得而知了。这位网友说的信誓旦旦的,有兴趣的朋友可以到下面这个帖子去看看:《关于 SDIO 上拉电阻的接法》,不过就cuter的亲身体验来看,cuter是被这个哥们坑了的。。。

  1. 大部分的SD卡都需要外部上拉,STM32内部上拉带不动,只有极个别的卡不加外部上拉也能工作。之前搞过这玩意,也是没加外部上拉,最后试了好几张卡,只有一张金士顿的能用。