標題: ADS1256芯片驅(qū)動多通道切換問題 [打印本頁]

作者: fhsgjsgjsfgjsfj    時間: 2021-10-9 13:05
標題: ADS1256芯片驅(qū)動多通道切換問題
STM32F407通過SPI接口驅(qū)動ADS1256 AD芯片,經(jīng)調(diào)試單通道獲取AD沒有問題。
從一個通道切換到另一個通道交替獲取時出現(xiàn)問題,通道數(shù)值亂串,不知道大家是否遇到同類問題,或者有調(diào)試通過的驅(qū)動。
本人輔助調(diào)試設(shè)備有限,無法精確調(diào)試,感謝留言
作者: mayouzhen2008    時間: 2021-10-9 17:16
1.在ADS1256片外要將模擬地AGND和數(shù)字地DGND連接在一起。否則,AGND和DGND之間存在電壓,會使ADS1256無法正常工作。

2。在印刷電路板布線時,應(yīng)將外部晶振盡可能地靠近ADS1256,否則將影響輸入幅值的大小,而當幅值太小時,可以通過減小晶振兩端的電容來增大其幅值,電容范圍應(yīng)在0~20μF,晶振為7.68MHz時,接入電容的典型值為18pF。

3。為了得到最佳的轉(zhuǎn)換結(jié)果,每次改變初始寄存器值時(例如改變輸入通道),最好自校準一次。而且應(yīng)在改變輸入通道命令后發(fā)同步命令SYNC,然后經(jīng)過一段延時時再讀取上次轉(zhuǎn)換的結(jié)果。該延時應(yīng)隨著ADS1256的采樣頻率和濾波方式變化而變化。

4。在使用ADS1256處理微小信號時,最好采用比例測量,并應(yīng)在DRDY由高變低時讀取數(shù)據(jù)。
作者: Hephaestus    時間: 2021-10-10 19:51
用過類似的ADS1xxx,通道轉(zhuǎn)換先扔掉兩個數(shù)據(jù)就行了。
作者: fhsgjsgjsfgjsfj    時間: 2022-3-8 11:12
Hephaestus 發(fā)表于 2021-10-10 19:51
用過類似的ADS1xxx,通道轉(zhuǎn)換先扔掉兩個數(shù)據(jù)就行了。

這樣確實可以,還是要吐槽下這個ADC芯片,要想精度高那是慢啊
作者: 小珂愛    時間: 2022-9-14 11:26
二、Sigma-Delta模數(shù)轉(zhuǎn)換器的特點及其對驅(qū)動程序的影響
本質(zhì)上說Sigma-Delta模數(shù)轉(zhuǎn)換器是一個數(shù)字器件,其執(zhí)行的是一個有限長沖擊響應(yīng)濾波器(FIR),包含一系列復(fù)雜的乘加運算,需要較長的計算時間。這一本質(zhì)造成的影響包括:

1、Sigma-Delta轉(zhuǎn)換器處理時間較慢,采樣率較低;且存在一次轉(zhuǎn)換的輸出的“潛伏期”,數(shù)據(jù)手冊提供的時序圖如下。
2、進行通道輪換時的采樣率
很多小伙伴想當然的認為在數(shù)據(jù)率寄存器(DRATE,03h)里配置的數(shù)據(jù)率就是所有情況下的采樣率。其實當你知道Sigma-Delta器件內(nèi)部的FIR濾波器本質(zhì)時你就會知道,當你進行通道切換并重新對器件進行同步(synchronize)和喚醒(wakeup)后,轉(zhuǎn)換速度會變慢。具體來講,實際采樣率和你配置的通過率之間的對應(yīng)關(guān)系如數(shù)據(jù)手冊中的下表所示
https://www.cnblogs.com/helesheng/p/15583047.html
作者: liruilirui    時間: 2023-1-5 18:57
Hephaestus 發(fā)表于 2021-10-10 19:51
用過類似的ADS1xxx,通道轉(zhuǎn)換先扔掉兩個數(shù)據(jù)就行了。

扔掉兩個數(shù)據(jù)啥意思?

作者: Hephaestus    時間: 2023-1-5 19:28
liruilirui 發(fā)表于 2023-1-5 18:57
扔掉兩個數(shù)據(jù)啥意思?

等待數(shù)據(jù)穩(wěn)定。
作者: liruilirui    時間: 2023-1-5 22:51
Hephaestus 發(fā)表于 2023-1-5 19:28
等待數(shù)據(jù)穩(wěn)定。

                for(ch = 0;ch <2;ch++)
                {       
                        Adc1 =  ADS1256ReadData( ch<<4|ADS1256_MUXN_AINCOM);
                        Volts1 = Adc1*.00000059453; // 0.00000059453
                        delay_ms(1000);
                        if(ch==0)
                        {                               
                        OLED_ShowNum(6,6,Volts1,4);
                        }
                        if(ch==1)
                        {                       
                        OLED_ShowNum(56,6,Volts1,4);
                        }
                }
我測2路數(shù)據(jù),我如何扔掉數(shù)據(jù),該咋寫?
作者: abbey_tom    時間: 2023-3-14 14:33
liruilirui 發(fā)表于 2023-1-5 22:51
for(ch = 0;ch

               for(ch = 0;ch <2;ch++)
                 {        
                         Adc1 =  ADS1256ReadData( ch<<4|ADS1256_MUXN_AINCOM);
                         Adc1 =  ADS1256ReadData( ch<<4|ADS1256_MUXN_AINCOM);
                         Adc1 =  ADS1256ReadData( ch<<4|ADS1256_MUXN_AINCOM);
                         Volts1 = Adc1*.00000059453; // 0.00000059453
                         delay_ms(1000);
                         if(ch==0)
                         {                                
                         OLED_ShowNum(6,6,Volts1,4);
                         }
                         if(ch==1)
                         {                        
                         OLED_ShowNum(56,6,Volts1,4);
                         }
                 }





歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1