欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5023|回復: 8
收起左側

ADS1256芯片驅動多通道切換問題

[復制鏈接]
ID:61261 發表于 2021-10-9 13:05 | 顯示全部樓層 |閱讀模式
STM32F407通過SPI接口驅動ADS1256 AD芯片,經調試單通道獲取AD沒有問題。
從一個通道切換到另一個通道交替獲取時出現問題,通道數值亂串,不知道大家是否遇到同類問題,或者有調試通過的驅動。
本人輔助調試設備有限,無法精確調試,感謝留言
回復

使用道具 舉報

無效樓層,該帖已經被刪除
ID:810165 發表于 2021-10-9 17:16 | 顯示全部樓層
1.在ADS1256片外要將模擬地AGND和數字地DGND連接在一起。否則,AGND和DGND之間存在電壓,會使ADS1256無法正常工作。

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

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

4。在使用ADS1256處理微小信號時,最好采用比例測量,并應在DRDY由高變低時讀取數據。
回復

使用道具 舉報

ID:883242 發表于 2021-10-10 19:51 | 顯示全部樓層
用過類似的ADS1xxx,通道轉換先扔掉兩個數據就行了。
回復

使用道具 舉報

ID:61261 發表于 2022-3-8 11:12 | 顯示全部樓層
Hephaestus 發表于 2021-10-10 19:51
用過類似的ADS1xxx,通道轉換先扔掉兩個數據就行了。

這樣確實可以,還是要吐槽下這個ADC芯片,要想精度高那是慢啊
回復

使用道具 舉報

ID:556497 發表于 2022-9-14 11:26 | 顯示全部樓層
二、Sigma-Delta模數轉換器的特點及其對驅動程序的影響
本質上說Sigma-Delta模數轉換器是一個數字器件,其執行的是一個有限長沖擊響應濾波器(FIR),包含一系列復雜的乘加運算,需要較長的計算時間。這一本質造成的影響包括:

1、Sigma-Delta轉換器處理時間較慢,采樣率較低;且存在一次轉換的輸出的“潛伏期”,數據手冊提供的時序圖如下。
2、進行通道輪換時的采樣率
很多小伙伴想當然的認為在數據率寄存器(DRATE,03h)里配置的數據率就是所有情況下的采樣率。其實當你知道Sigma-Delta器件內部的FIR濾波器本質時你就會知道,當你進行通道切換并重新對器件進行同步(synchronize)和喚醒(wakeup)后,轉換速度會變慢。具體來講,實際采樣率和你配置的通過率之間的對應關系如數據手冊中的下表所示
https://www.cnblogs.com/helesheng/p/15583047.html
回復

使用道具 舉報

7#
無效樓層,該帖已經被刪除
ID:459318 發表于 2023-1-5 18:57 | 顯示全部樓層
Hephaestus 發表于 2021-10-10 19:51
用過類似的ADS1xxx,通道轉換先扔掉兩個數據就行了。

扔掉兩個數據啥意思?
回復

使用道具 舉報

ID:883242 發表于 2023-1-5 19:28 | 顯示全部樓層
liruilirui 發表于 2023-1-5 18:57
扔掉兩個數據啥意思?

等待數據穩定。
回復

使用道具 舉報

ID:459318 發表于 2023-1-5 22:51 | 顯示全部樓層

                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路數據,我如何扔掉數據,該咋寫?
回復

使用道具 舉報

ID:1057962 發表于 2023-3-14 14:33 | 顯示全部樓層

               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);
                         }
                 }
回復

使用道具 舉報

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

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表