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

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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版