你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

12
返回列表 发新帖

【深入讨论】今天发现一个有趣的问题 stm32f103数据记录器 usb sdio mmc fatfs

[复制链接]

4

主题

22

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
 楼主| 发表于 2014-1-8 00:28:38 | 显示全部楼层

回复:今天发现一个有趣的问题 stm32f103数据记录器 usb sdio mmc fatfs

回复第 6 楼 于2013-12-28 21:08:26发表:
1,从楼主的问题上感觉像是驱动接口没有配置正确,主要查看CTRL那个接口.
2,高波特率的串口只适用于两通信芯片非常近的电路,如果传输有一定的距离,那么最大波特率保持在115200以下~ 

的确是驱动的问题,波特率没问题的,我测试过。
回复 支持 反对

使用道具 举报

4

主题

22

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
 楼主| 发表于 2014-1-8 00:37:16 | 显示全部楼层

回复:今天发现一个有趣的问题 stm32f103数据记录器 usb sdio mmc fatfs

 
试试不用DMA,效率虽然低了点,看会不会死机,确定问题点再说
 

 

问题找到了,折腾了这么久,看了网上好多说这个的,但都没有完全的说清楚,我自己测才发现,首先SDIO时钟那里设置不能太高,一般用到4或者5,使用DMA时,SD_DATATIMEOUT延时必须加大,将原来的0xffff改为0xfffff甚至更大,这个主要是因为在DMA传输的时候如果这个值不设置大一点会在SDIO中断处理函数里出现超时错误,这样DMA结束标志位就永远收不到了,所以程序就会死在那里。使用4位总线的朋友一定要记得开硬件流控,在设置4位总线那个函数里面设置的,千万不要只是在提高时钟速度的1位总线那个地方改。
回复 支持 反对

使用道具 举报

2

主题

51

回帖

0

蝴蝶豆

初级会员

最后登录
2020-12-1
发表于 2014-1-8 22:18:42 | 显示全部楼层

RE:今天发现一个有趣的问题 stm32f103数据记录器 usb sdio mmc fatfs

顶一个    挺好的问题。
回复 支持 反对

使用道具 举报

4

主题

22

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
 楼主| 发表于 2014-1-9 16:12:33 | 显示全部楼层

回复:今天发现一个有趣的问题 stm32f103数据记录器 usb sdio mmc fatfs

最近测试发现一个串口速率低了反而更容易丢数据,都是小块小块的丢,都是8字节的整数倍,也不会超过几十个。高速率是整块整块的丢,开了4K的双缓冲,每次都是丢4K的整数倍。不知道是哪里出现了干扰,原来使用了systick中断,发现优先级太高,我就改用定时器了,并且把优先级设置为最低,可以让sdio嵌套,但是并没有解决根本问题。我还是先看看在写卡的时候是不是有buf满了,但是这样应该是串口速率越低越好啊。不解中
回复 支持 反对

使用道具 举报

36

主题

541

回帖

4

蝴蝶豆

金牌会员

最后登录
2020-6-16
发表于 2014-1-9 16:37:45 | 显示全部楼层

回复:【热议】今天发现一个有趣的问题 stm32f103数据记录器 usb sdio mmc fatfs

 这个我没有做过。先给楼主一个赞。我觉得你可以用仿真器实时的跟踪一下,程序在哪里死掉的和一些数据的变化。这样问题就可以找出来了。
回复 支持 反对

使用道具 举报

4

主题

22

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
 楼主| 发表于 2014-1-9 23:16:01 | 显示全部楼层

回复:【热议】今天发现一个有趣的问题 stm32f103数据记录器 usb sdio mmc fatfs

回复第 15 楼 于2014-01-09 16:37:45发表:
 这个我没有做过。先给楼主一个赞。我觉得你可以用仿真器实时的跟踪一下,程序在哪里死掉的和一些数据的变化。这样问题就可以找出来了。
 

现在没想到是什么原因,只能一步一步的排查了,仿真器不知道该怎么来检测问题的原因了,只能编写测试程序一步一步的继续测试了,今天使用460800的波特率记录数据也是会丢块,但大部分都还好。
回复 支持 反对

使用道具 举报

4

主题

22

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
 楼主| 发表于 2014-1-14 22:16:51 | 显示全部楼层

回复:【深入讨论】今天发现一个有趣的问题 stm32f103数据记录器 usb sdio mmc fatfs

测试发现跟文件系统没关系,跟sdio有关系,初步判断为在sdio发送命令的时候被其它中断抢占后会出现错误
回复 支持 反对

使用道具 举报

4

主题

22

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
 楼主| 发表于 2014-1-19 21:58:34 | 显示全部楼层

回复:【深入讨论】今天发现一个有趣的问题 stm32f103数据记录器 usb sdio mmc fatfs

根本原因其实还是因为缓冲区设的不够大,SD、mmc在写数据的时候时间不稳定,有时候会变长,如果在写数据的时候串口数据满了就会丢,如果串口使用
DMA方式接收,则会出现串口溢出错误。将缓冲区设置到24K就没有问题了。其实跟中断影响SDIO发数据什么的没有关系。
回复 支持 反对

使用道具 举报

4

主题

22

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
 楼主| 发表于 2014-1-19 21:58:14 | 显示全部楼层

回复:【深入讨论】今天发现一个有趣的问题 stm32f103数据记录器 usb sdio mmc fatfs

根本原因其实还是因为缓冲区设的不够大,SD、mmc在写数据的时候时间不稳定,有时候会变长,如果在写数据的时候串口数据满了就会丢,如果串口使用
DMA方式接收,则会出现串口溢出错误。将缓冲区设置到24K就没有问题了。其实跟中断影响SDIO发数据什么的没有关系。
回复 支持 反对

使用道具 举报

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版