搜索
bottom↓
回复: 7

stm32f207使用sd卡数据存储速度求助。

[复制链接]

出0入4汤圆

发表于 2019-4-28 14:13:32 | 显示全部楼层 |阅读模式
一个温度采集仪,100mS输出并存储一组数据,数据量有160BYTE。移植了fatfs文件系统,使用的是2G的class10的TF卡。发现每次使用f_write()函数都要占用大约20mS的时间,如果写入的数据增加占用的时间更长。20mS的时间会影响我控制ADC采集数据。请问使用文件系统是不是会占用大量的时间还是我有地方没配置好;

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2019-4-28 14:15:56 | 显示全部楼层
中间可以采AD的

出0入4汤圆

 楼主| 发表于 2019-4-28 14:20:06 | 显示全部楼层

这样        adc采集要放在中断里了,adc是10mS采集一次。按照SD的存储速度使用文件系统存储少量的数据也不应该要占用20来个ms的时间吧

出0入0汤圆

发表于 2019-4-28 14:32:25 | 显示全部楼层
应该和你写入部分有关,如果是等待,就可以在这里采样AD了,或者 释放CPU

出0入0汤圆

发表于 2019-4-28 17:40:04 | 显示全部楼层
以前用205的SD接口,使用fatfs格式,存储 IIS decode芯片采样的数据
48ksps,16bit的数据,存成wav格式,是可以的
96k时候,会有写失败的情况
SD使用DMA方式

出0入4汤圆

发表于 2019-4-28 23:04:57 | 显示全部楼层
SD 卡按512 字节为单位来读写的,你一次写160字节可能比写512 字节还慢,最好留一个大的缓存,当缓存攒足了字节数以后(几K字节),再一次性写入SD 卡。
不要期望一个FatFs 的f_write() 函数能确保在20ms 完成执行,即便是只写1byte或160byte或512byte.

出0入0汤圆

发表于 2019-4-29 03:20:42 | 显示全部楼层
ST的HAL library 库有个bug会导致CRC校验错误,如果你数据量不大的话用DMA直接写就行,不用管它

出0入4汤圆

 楼主| 发表于 2019-4-29 09:05:30 | 显示全部楼层
dtcc1234 发表于 2019-4-28 23:04
SD 卡按512 字节为单位来读写的,你一次写160字节可能比写512 字节还慢,最好留一个大的缓存,当缓存攒足了 ...

这种方法我试过了,一次性20K的数据要占用100mS。感觉应该是有问题,移植的东西找问题就比较麻烦了。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-19 07:36

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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