找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3923|回復(fù): 21
收起左側(cè)

求助關(guān)于AD采集數(shù)據(jù)存入SD卡的問題

[復(fù)制鏈接]
ID:905498 發(fā)表于 2023-8-19 17:09 | 顯示全部樓層 |閱讀模式
大家好,新手第一次發(fā)帖求助,希望各位大佬不吝賜教!
情況:外置24位AD通過 硬件SPI 與STM32F103通信,將采集到的波形數(shù)據(jù)(已有外部調(diào)理電路)通過文件系統(tǒng)存進(jìn)SD卡中。
問題:但是不知道什么原因,采集到的波形都不對,采樣率達(dá)不到要求。采集1HZ的正弦波,波形是對的,10HZ的時候,就很不平滑了,感覺數(shù)據(jù)丟失了很多。采集恒壓的時候,數(shù)據(jù)是對的。
重點(diǎn):搞了好久了,一直沒法突破,真的要崩潰了,希望大家能幫幫忙,誠懇求助,非常感謝!

相關(guān)帖子

回復(fù)

使用道具 舉報

ID:883242 發(fā)表于 2023-8-19 18:28 | 顯示全部樓層
感覺你的代碼都是抄的,你并不知道FAT/FS存SD卡的具體操作,所以對數(shù)據(jù)丟失毫無概念,除了耐心讀代碼沒有別的解決方案。
回復(fù)

使用道具 舉報

ID:73992 發(fā)表于 2023-8-19 20:25 | 顯示全部樓層
如果是實(shí)時寫入sd卡,那么adc轉(zhuǎn)換速度不能大于程序速度。 adc轉(zhuǎn)換----到單片機(jī)采集-----到寫入sd卡這個流程,轉(zhuǎn)換一次,采集一次,寫入一次,流程不同步造成數(shù)據(jù)丟失和重復(fù)寫入。
回復(fù)

使用道具 舉報

ID:1080935 發(fā)表于 2023-8-19 23:32 | 顯示全部樓層
首先確定AD的最高采樣率是多少,如果采樣率只有100Hz(很可能),你采集10Hz的信號只有10個點(diǎn),肯定波形失真。
回復(fù)

使用道具 舉報

ID:905498 發(fā)表于 2023-8-20 21:23 | 顯示全部樓層
Hephaestus 發(fā)表于 2023-8-19 18:28
感覺你的代碼都是抄的,你并不知道FAT/FS存SD卡的具體操作,所以對數(shù)據(jù)丟失毫無概念,除了耐心讀代碼沒有別 ...

可是我覺得代碼也沒有很多特別的啊
用的是正點(diǎn)原子的源碼,SDIO的DMA模式。
可以再幫忙想想嘛,哎
回復(fù)

使用道具 舉報

ID:905498 發(fā)表于 2023-8-20 21:28 | 顯示全部樓層
lyonkon 發(fā)表于 2023-8-19 20:25
如果是實(shí)時寫入sd卡,那么adc轉(zhuǎn)換速度不能大于程序速度。 adc轉(zhuǎn)換----到單片機(jī)采集-----到寫入sd卡這個流程 ...

大佬好,我的是實(shí)時寫入的。
開始的方法是采集到一個數(shù)據(jù)處理后就寫進(jìn)SD卡。后邊發(fā)現(xiàn)采樣率達(dá)不到就想著是不是 數(shù)據(jù)丟失?
然后就先存進(jìn)緩沖區(qū),然后再寫進(jìn)SD卡,但是還是發(fā)現(xiàn)不對。
我要的采樣率僅需要AD基本能達(dá)到15K左右,我想資源應(yīng)該是夠的,但是不知道哪里出問題了。
采集恒壓的時候是對的,不知道問題在哪兒。
困擾好久了。哎
回復(fù)

使用道具 舉報

ID:905498 發(fā)表于 2023-8-20 21:32 | 顯示全部樓層
LaoYuTou 發(fā)表于 2023-8-19 23:32
首先確定AD的最高采樣率是多少,如果采樣率只有100Hz(很可能),你采集10Hz的信號只有10個點(diǎn),肯定波形失 ...

能達(dá)到的采樣率按理來說是完全可以采集這個頻率的波形的。
但是我連這么低的采樣率都沒達(dá)到。
哎,搞來搞去,好久了,搞的人都麻了。
大佬有類似的參考嗎?
,
回復(fù)

使用道具 舉報

ID:283954 發(fā)表于 2023-8-20 23:08 | 顯示全部樓層
我也玩過SD卡這東西,是很麻煩的事,因?yàn)槊恳淮巫x或?qū)懚际?12字節(jié),如果這段時間不去做其他事,很多事就來不及了,如果一邊讀一邊要做其他事,就得記住很多東西,沒見過其他人的CODE,我自己的51CODE看起來就很麻煩,依我看,你的這項(xiàng)功能必須有兩個緩沖區(qū),AD好的數(shù)據(jù)先放在A緩沖區(qū),數(shù)據(jù)滿了才去寫進(jìn)SD卡,寫的時候還必須繼續(xù)AD,這時AD好的數(shù)據(jù)放在B緩沖區(qū),等B滿了再寫進(jìn)SD卡,寫的時候還必須繼續(xù)AD,這時AD好的數(shù)據(jù)放在A緩沖區(qū),如此循環(huán)不息。
回復(fù)

使用道具 舉報

ID:744809 發(fā)表于 2023-8-21 08:54 | 顯示全部樓層
代碼發(fā)上來看看,應(yīng)該是可以達(dá)到這個速率的,spi讀取ad有試過用dma么
回復(fù)

使用道具 舉報

ID:744809 發(fā)表于 2023-8-21 08:58 | 顯示全部樓層
可以先不存sd卡,用ad讀出來通過串口發(fā)送出去,看看采集到的數(shù)據(jù)有沒有問題,最后再考慮存到sd卡中。串口波特率最好是921600,這樣應(yīng)該能完整接收到你采集的數(shù)據(jù),記得用dma方式發(fā)送
回復(fù)

使用道具 舉報

ID:905498 發(fā)表于 2023-8-21 09:07 | 顯示全部樓層
dalaoshi 發(fā)表于 2023-8-20 23:08
我也玩過SD卡這東西,是很麻煩的事,因?yàn)槊恳淮巫x或?qū)懚际?12字節(jié),如果這段時間不去做其他事,很多事就來 ...

是的,當(dāng)時我也感覺到了。我感覺忙不過來。
但是STM32F103好像沒有雙緩沖的功能,如果用兩個緩沖區(qū)的話,判斷滿或者不滿,需要一定的時間。
好希望看到類似的能夠參考的呀
回復(fù)

使用道具 舉報

ID:905498 發(fā)表于 2023-8-21 09:10 | 顯示全部樓層
各位路過的大佬,友友們,留下你們的步伐把,不勝感激呀
回復(fù)

使用道具 舉報

ID:123289 發(fā)表于 2023-8-21 09:10 | 顯示全部樓層
再仔細(xì)閱讀AD的手冊,關(guān)注點(diǎn)放在采樣的間隔時間上。最短是多少呢?
回復(fù)

使用道具 舉報

ID:905498 發(fā)表于 2023-8-21 20:55 | 顯示全部樓層
yzwzfyz 發(fā)表于 2023-8-21 09:10
再仔細(xì)閱讀AD的手冊,關(guān)注點(diǎn)放在采樣的間隔時間上。最短是多少呢?

手冊上說最高采樣率是30K,也就是33ms,但是應(yīng)該達(dá)不到的
大佬有沒有類似的參考呀,不勝感激
回復(fù)

使用道具 舉報

ID:905498 發(fā)表于 2023-8-22 10:04 | 顯示全部樓層
123156fsadf 發(fā)表于 2023-8-21 08:54
代碼發(fā)上來看看,應(yīng)該是可以達(dá)到這個速率的,spi讀取ad有試過用dma么

按照資源來說,這個速率肯定是可以達(dá)到的。
很早之前有試過,但是失敗了。。。然后程序刪了。。。
大佬,有個疑問,用SPI的話,接受和發(fā)送不是同步的嗎?用DMA的話,我是接收、發(fā)送都用,還是只是接收的時候用呢?非常感謝!
回復(fù)

使用道具 舉報

ID:905498 發(fā)表于 2023-8-22 10:06 | 顯示全部樓層
123156fsadf 發(fā)表于 2023-8-21 08:58
可以先不存sd卡,用ad讀出來通過串口發(fā)送出去,看看采集到的數(shù)據(jù)有沒有問題,最后再考慮存到sd卡中。串口波 ...

好的大佬,謝謝!我去試試。
如果有類似的參考程序就更好了。哈哈哈。


對了,補(bǔ)充一點(diǎn),我的AD是ADS1256,忘記說了。
應(yīng)該有很多大佬用過?
回復(fù)

使用道具 舉報

ID:744809 發(fā)表于 2023-8-22 13:07 | 顯示全部樓層
小可愛u 發(fā)表于 2023-8-22 10:06
好的大佬,謝謝!我去試試。
如果有類似的參考程序就更好了。哈哈哈。

我看了下手冊,最大支持30ksps,但是應(yīng)該有低速模式的,你是不是程序配置成低速了
回復(fù)

使用道具 舉報

ID:905498 發(fā)表于 2023-8-23 17:44 | 顯示全部樓層
123156fsadf 發(fā)表于 2023-8-22 13:07
我看了下手冊,最大支持30ksps,但是應(yīng)該有低速模式的,你是不是程序配置成低速了

大佬,我設(shè)置采樣率最高了,也是一樣的。
可以交流一下嗎?
非常感謝您
回復(fù)

使用道具 舉報

ID:905498 發(fā)表于 2023-8-23 17:46 | 顯示全部樓層
123156fsadf 發(fā)表于 2023-8-22 13:07
我看了下手冊,最大支持30ksps,但是應(yīng)該有低速模式的,你是不是程序配置成低速了

您好,我的權(quán)限還不能加您為好友。
連私信都不行,太慘了
希望能得到您的指點(diǎn)。非常感謝
回復(fù)

使用道具 舉報

ID:879348 發(fā)表于 2023-8-24 09:58 | 顯示全部樓層
存一次文件要耗費(fèi)不少時間,在這期間無法采集數(shù)據(jù),解決辦法是SPI使用DMA,設(shè)置非常大的容量,有足夠時間保存文件
回復(fù)

使用道具 舉報

ID:905498 發(fā)表于 2023-8-28 09:01 | 顯示全部樓層
wufa1986 發(fā)表于 2023-8-24 09:58
存一次文件要耗費(fèi)不少時間,在這期間無法采集數(shù)據(jù),解決辦法是SPI使用DMA,設(shè)置非常大的容量,有足夠時間保 ...

我也想到這個方法,但是有遇到問題了。
大佬可以看看我另外一個問題嗎?
非常感謝!
回復(fù)

使用道具 舉報

ID:905498 發(fā)表于 2023-8-28 09:02 | 顯示全部樓層
小可愛u 發(fā)表于 2023-8-23 17:46
您好,我的權(quán)限還不能加您為好友。
連私信都不行,太慘了
希望能得到您的指點(diǎn)。非常感謝

連同意好友都不行呢,哎,等級太低了
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表