找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4083|回复: 21
打印 上一主题 下一主题
收起左侧

求助关于AD采集数据存入SD卡的问题

[复制链接]
跳转到指定楼层
楼主
ID:905498 发表于 2023-8-19 17:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大家好,新手第一次发帖求助,希望各位大佬不吝赐教!
情况:外置24位AD通过 硬件SPI 与STM32F103通信,将采集到的波形数据(已有外部调理电路)通过文件系统存进SD卡中。
问题:但是不知道什么原因,采集到的波形都不对,采样率达不到要求。采集1HZ的正弦波,波形是对的,10HZ的时候,就很不平滑了,感觉数据丢失了很多。采集恒压的时候,数据是对的。
重点:搞了好久了,一直没法突破,真的要崩溃了,希望大家能帮帮忙,诚恳求助,非常感谢!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:883242 发表于 2023-8-19 18:28 | 只看该作者
感觉你的代码都是抄的,你并不知道FAT/FS存SD卡的具体操作,所以对数据丢失毫无概念,除了耐心读代码没有别的解决方案。
回复

使用道具 举报

板凳
ID:73992 发表于 2023-8-19 20:25 | 只看该作者
如果是实时写入sd卡,那么adc转换速度不能大于程序速度。 adc转换----到单片机采集-----到写入sd卡这个流程,转换一次,采集一次,写入一次,流程不同步造成数据丢失和重复写入。
回复

使用道具 举报

地板
ID:1080935 发表于 2023-8-19 23:32 | 只看该作者
首先确定AD的最高采样率是多少,如果采样率只有100Hz(很可能),你采集10Hz的信号只有10个点,肯定波形失真。
回复

使用道具 举报

5#
ID:905498 发表于 2023-8-20 21:23 | 只看该作者
Hephaestus 发表于 2023-8-19 18:28
感觉你的代码都是抄的,你并不知道FAT/FS存SD卡的具体操作,所以对数据丢失毫无概念,除了耐心读代码没有别 ...

可是我觉得代码也没有很多特别的啊
用的是正点原子的源码,SDIO的DMA模式。
可以再帮忙想想嘛,哎
回复

使用道具 举报

6#
ID:905498 发表于 2023-8-20 21:28 | 只看该作者
lyonkon 发表于 2023-8-19 20:25
如果是实时写入sd卡,那么adc转换速度不能大于程序速度。 adc转换----到单片机采集-----到写入sd卡这个流程 ...

大佬好,我的是实时写入的。
开始的方法是采集到一个数据处理后就写进SD卡。后边发现采样率达不到就想着是不是 数据丢失?
然后就先存进缓冲区,然后再写进SD卡,但是还是发现不对。
我要的采样率仅需要AD基本能达到15K左右,我想资源应该是够的,但是不知道哪里出问题了。
采集恒压的时候是对的,不知道问题在哪儿。
困扰好久了。哎
回复

使用道具 举报

7#
ID:905498 发表于 2023-8-20 21:32 | 只看该作者
LaoYuTou 发表于 2023-8-19 23:32
首先确定AD的最高采样率是多少,如果采样率只有100Hz(很可能),你采集10Hz的信号只有10个点,肯定波形失 ...

能达到的采样率按理来说是完全可以采集这个频率的波形的。
但是我连这么低的采样率都没达到。
哎,搞来搞去,好久了,搞的人都麻了。
大佬有类似的参考吗?
回复

使用道具 举报

8#
ID:283954 发表于 2023-8-20 23:08 | 只看该作者
我也玩过SD卡这东西,是很麻烦的事,因为每一次读或写都是512字节,如果这段时间不去做其他事,很多事就来不及了,如果一边读一边要做其他事,就得记住很多东西,没见过其他人的CODE,我自己的51CODE看起来就很麻烦,依我看,你的这项功能必须有两个缓冲区,AD好的数据先放在A缓冲区,数据满了才去写进SD卡,写的时候还必须继续AD,这时AD好的数据放在B缓冲区,等B满了再写进SD卡,写的时候还必须继续AD,这时AD好的数据放在A缓冲区,如此循环不息。
回复

使用道具 举报

9#
ID:744809 发表于 2023-8-21 08:54 | 只看该作者
代码发上来看看,应该是可以达到这个速率的,spi读取ad有试过用dma么
回复

使用道具 举报

10#
ID:744809 发表于 2023-8-21 08:58 | 只看该作者
可以先不存sd卡,用ad读出来通过串口发送出去,看看采集到的数据有没有问题,最后再考虑存到sd卡中。串口波特率最好是921600,这样应该能完整接收到你采集的数据,记得用dma方式发送
回复

使用道具 举报

11#
ID:905498 发表于 2023-8-21 09:07 | 只看该作者
dalaoshi 发表于 2023-8-20 23:08
我也玩过SD卡这东西,是很麻烦的事,因为每一次读或写都是512字节,如果这段时间不去做其他事,很多事就来 ...

是的,当时我也感觉到了。我感觉忙不过来。
但是STM32F103好像没有双缓冲的功能,如果用两个缓冲区的话,判断满或者不满,需要一定的时间。
好希望看到类似的能够参考的呀
回复

使用道具 举报

12#
ID:905498 发表于 2023-8-21 09:10 | 只看该作者
各位路过的大佬,友友们,留下你们的步伐把,不胜感激呀
回复

使用道具 举报

13#
ID:123289 发表于 2023-8-21 09:10 | 只看该作者
再仔细阅读AD的手册,关注点放在采样的间隔时间上。最短是多少呢?
回复

使用道具 举报

14#
ID:905498 发表于 2023-8-21 20:55 | 只看该作者
yzwzfyz 发表于 2023-8-21 09:10
再仔细阅读AD的手册,关注点放在采样的间隔时间上。最短是多少呢?

手册上说最高采样率是30K,也就是33ms,但是应该达不到的
大佬有没有类似的参考呀,不胜感激
回复

使用道具 举报

15#
ID:905498 发表于 2023-8-22 10:04 | 只看该作者
123156fsadf 发表于 2023-8-21 08:54
代码发上来看看,应该是可以达到这个速率的,spi读取ad有试过用dma么

按照资源来说,这个速率肯定是可以达到的。
很早之前有试过,但是失败了。。。然后程序删了。。。
大佬,有个疑问,用SPI的话,接受和发送不是同步的吗?用DMA的话,我是接收、发送都用,还是只是接收的时候用呢?非常感谢!
回复

使用道具 举报

16#
ID:905498 发表于 2023-8-22 10:06 | 只看该作者
123156fsadf 发表于 2023-8-21 08:58
可以先不存sd卡,用ad读出来通过串口发送出去,看看采集到的数据有没有问题,最后再考虑存到sd卡中。串口波 ...

好的大佬,谢谢!我去试试。
如果有类似的参考程序就更好了。哈哈哈。


对了,补充一点,我的AD是ADS1256,忘记说了。
应该有很多大佬用过?
回复

使用道具 举报

17#
ID:744809 发表于 2023-8-22 13:07 | 只看该作者
小可爱u 发表于 2023-8-22 10:06
好的大佬,谢谢!我去试试。
如果有类似的参考程序就更好了。哈哈哈。

我看了下手册,最大支持30ksps,但是应该有低速模式的,你是不是程序配置成低速了
回复

使用道具 举报

18#
ID:905498 发表于 2023-8-23 17:44 | 只看该作者
123156fsadf 发表于 2023-8-22 13:07
我看了下手册,最大支持30ksps,但是应该有低速模式的,你是不是程序配置成低速了

大佬,我设置采样率最高了,也是一样的。
可以交流一下吗?
非常感谢您
回复

使用道具 举报

19#
ID:905498 发表于 2023-8-23 17:46 | 只看该作者
123156fsadf 发表于 2023-8-22 13:07
我看了下手册,最大支持30ksps,但是应该有低速模式的,你是不是程序配置成低速了

您好,我的权限还不能加您为好友。
连私信都不行,太惨了
希望能得到您的指点。非常感谢
回复

使用道具 举报

20#
ID:879348 发表于 2023-8-24 09:58 | 只看该作者
存一次文件要耗费不少时间,在这期间无法采集数据,解决办法是SPI使用DMA,设置非常大的容量,有足够时间保存文件
回复

使用道具 举报

21#
ID:905498 发表于 2023-8-28 09:01 | 只看该作者
wufa1986 发表于 2023-8-24 09:58
存一次文件要耗费不少时间,在这期间无法采集数据,解决办法是SPI使用DMA,设置非常大的容量,有足够时间保 ...

我也想到这个方法,但是有遇到问题了。
大佬可以看看我另外一个问题吗?
非常感谢!
回复

使用道具 举报

22#
ID:905498 发表于 2023-8-28 09:02 | 只看该作者
小可爱u 发表于 2023-8-23 17:46
您好,我的权限还不能加您为好友。
连私信都不行,太惨了
希望能得到您的指点。非常感谢

连同意好友都不行呢,哎,等级太低了
回复

使用道具 举报

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

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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