搜索
12
返回列表 发新帖

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

[复制链接]

该用户从未签到

4

主题

26

帖子

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

主题

26

帖子

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

主题

54

帖子

0

蝴蝶豆

初级会员

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

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

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

使用道具 举报

该用户从未签到

4

主题

26

帖子

0

蝴蝶豆

新手上路

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

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

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

使用道具 举报

该用户从未签到

36

主题

577

帖子

4

蝴蝶豆

金牌会员

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

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

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

使用道具 举报

该用户从未签到

4

主题

26

帖子

0

蝴蝶豆

新手上路

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

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

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

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

使用道具 举报

该用户从未签到

4

主题

26

帖子

0

蝴蝶豆

新手上路

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

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

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

使用道具 举报

该用户从未签到

4

主题

26

帖子

0

蝴蝶豆

新手上路

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

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

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

使用道具 举报

该用户从未签到

4

主题

26

帖子

0

蝴蝶豆

新手上路

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

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

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

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|论坛-意法半导体STM32/STM8技术社区

GMT+8, 2024-5-11 16:19 , Processed in 0.183026 second(s), 35 queries .

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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