OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4330|回复: 10

FATFS问题 读着读着就不行了 郁闷啊

[复制链接]

55

主题

243

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1608
金钱
1608
注册时间
2012-12-30
在线时间
241 小时
发表于 2016-4-1 10:20:13 | 显示全部楼层 |阅读模式
10金钱
本帖最后由 wgh1990 于 2016-4-8 09:11 编辑

用的是原子的SDIO fatfs(0.11版已经是最新的了)  一个月前就已经开始能读写了,上个星期有个板子上得卡不能用了,看了一下工作时间已经累积200多小时了。我把卡放电脑一看没问题啊,我在重新新建一个文件夹 把要读的复制到新建文件,放进去居然可以读了。今天又发现两块板子出现相同问题,其中一块板子的TF卡,居然没有了文件系统,4G卡插电脑只剩下30多M。我去。。。。怎么只读也会把卡读坏呢?我觉得这不是偶然的问题,随着时间这样的卡越来越多了。我郁闷死了,卡是从金士顿官网指定的店铺买的。SD卡的硬件也只是IO口直接连和加了10K的上拉,稳压是用AMS1117-3.3V。我开始做实验发现时间一长就会有读不到的情况出现,频繁进入                        while(res){
    SD_Init();        
   res=SD_ReadDisk(buff,sector,count);        
   printf("sd rd error:%d\r\n",res);        
                                       
}这里时不时就打印出错信息,后来就越来越频繁了,直到根本读不到,只能格式化卡,而有些卡还坏了,郁闷中的郁闷。FATFS里我也只是用到f_open f_read f_lseek这几个函数都没有用到写入SD卡,也能把卡读坏,这么多人用有没有遇到过啊?


被读坏了的文件

被读坏了的文件
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2016-4-1 22:04:28 | 显示全部楼层
这还真没遇到过。。。。
回复

使用道具 举报

55

主题

243

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1608
金钱
1608
注册时间
2012-12-30
在线时间
241 小时
 楼主| 发表于 2016-4-2 08:26:35 | 显示全部楼层
正点原子 发表于 2016-4-1 22:04
这还真没遇到过。。。。

读是正常的 啊 就是长时间几十个小时读某个扇区  那个扇区就会出问题了  你转去读其他扇区又是可以的但是长时间之后也会出现。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2016-4-3 22:01:07 | 显示全部楼层
wgh1990 发表于 2016-4-2 08:26
读是正常的 啊 就是长时间几十个小时读某个扇区  那个扇区就会出问题了  你转去读其他扇区又是可以的但是 ...

读不可能读坏的。。。。
SD卡寿命,怎么说也有几十年吧。。。。

我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

55

主题

243

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1608
金钱
1608
注册时间
2012-12-30
在线时间
241 小时
 楼主| 发表于 2016-4-4 20:38:54 | 显示全部楼层
正点原子 发表于 2016-4-3 22:01
读不可能读坏的。。。。
SD卡寿命,怎么说也有几十年吧。。。。

就是知道读不坏  可我的情况就出现了   所以才求救的  
回复

使用道具 举报

55

主题

243

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1608
金钱
1608
注册时间
2012-12-30
在线时间
241 小时
 楼主| 发表于 2016-4-5 19:34:21 | 显示全部楼层
正点原子 发表于 2016-4-3 22:01
读不可能读坏的。。。。
SD卡寿命,怎么说也有几十年吧。。。。

原子哥  SDIO程序用轮询的方式加上了开关总中断 导致串口接收数据不全  这个开关总中断不加 SD卡读也会被中断打断 我的串口数据实时性优先级都要求最高  这样的话我该怎么办?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2016-4-6 22:12:55 | 显示全部楼层
wgh1990 发表于 2016-4-5 19:34
原子哥  SDIO程序用轮询的方式加上了开关总中断 导致串口接收数据不全  这个开关总中断不加 SD卡读也会被 ...

这个,试试用DMA串口接收吧.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

55

主题

243

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1608
金钱
1608
注册时间
2012-12-30
在线时间
241 小时
 楼主| 发表于 2016-4-7 10:50:03 | 显示全部楼层
正点原子 发表于 2016-4-6 22:12
这个,试试用DMA串口接收吧.

串口可以解决 但是TF卡还是会出现读坏扇区的情况,一个文件很长时间不断的反复打开,读取,移动光标位置,读取,关闭,这个过程之后这个文件读取经常会出现SD_CMD_RSP_TIMEOUT 和 SD_DATA_TIMEOUT错误。而读取新的没被长时间读取的扇区就不会出现这种错误。已经测试了第4张4G金士顿卡了,全部都会,所以是个很严重的问题。
回复

使用道具 举报

55

主题

243

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1608
金钱
1608
注册时间
2012-12-30
在线时间
241 小时
 楼主| 发表于 2016-4-7 16:18:17 | 显示全部楼层
正点原子 发表于 2016-4-6 22:12
这个,试试用DMA串口接收吧.

原子哥 我发现SD卡经常出错然后初始化,这种做法会把卡弄坏的更快。感觉初始化不能这么用,只能初始化成功之后,任何情况下不再初始化,对很多的卡兼容又有问题。但是对于卡读取时长有了很好延长。CMD16经常会出现SD_CMD_RSP_TIMEOUT导致文件读取不了。
回复

使用道具 举报

55

主题

243

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1608
金钱
1608
注册时间
2012-12-30
在线时间
241 小时
 楼主| 发表于 2016-4-8 09:17:00 | 显示全部楼层
正点原子 发表于 2016-4-6 22:12
这个,试试用DMA串口接收吧.

我在FATFS已经禁止写操作了, 只读情况下真的会把卡读坏,请看图,用winhex打开不能读的文件,就可以看到winhex也提示数据错误。不知道我是什么操作导致卡读坏了,我就只使用了f_readdir f_open f_lseek f_read f_close这几个函数都没有写操作的。
回复

使用道具 举报

55

主题

243

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1608
金钱
1608
注册时间
2012-12-30
在线时间
241 小时
 楼主| 发表于 2016-4-9 10:48:29 | 显示全部楼层
不知道是不是我操作不当 还是其他电路问题,经测试当SD卡读写出采取初始化SD卡这方式有风险,使用中频繁初始化SD卡,会导致卡数据出现异常。虽然读写出错用初始化确实能解决不少,无厘头的问题,还是尽量能不用就不用初始化来解决。 我也不明白为什么频繁初始化会导致卡数据异常,猜测可能初始化 上电时电流比较大而且还不稳定。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-18 23:17

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表