標題: 設想用單片機+ads1262制作八位萬用表 [打印本頁]

作者: 卡瓦格博15    時間: 2022-7-2 21:10
標題: 設想用單片機+ads1262制作八位萬用表
主控采用STC12CLEA08S2 && 11.0592Mhz
程序只寫了測試ADS1262運行檢測電壓部分,基準電壓采用自帶的2.5V,穩(wěn)定度還可以。精準度比ADS1256提高了不少,加上現(xiàn)在ADS1262很便宜,值得DIY;
在讀數(shù)據(jù)時,狀態(tài)位出現(xiàn)0X69即PGA低壓報警,未知原因,其他波形正常。分享給大家!

單片機源程序如下:
  1. #include "Delay.h"
  2. #include "ADS126X.H"

  3. void inteReceive(void) interrupt 4 using 1 //串行口1接收中斷標志
  4. {
  5.         if(RI == 1)
  6.         {
  7.                 RI = 0;
  8.         }
  9. }



  10. void main()
  11. {
  12.         Delay_mS(1000);
  13.         PIN_Initial();  //stc12管腳上拉設置
  14.         ADS126x_Init();
  15.         initCOM();       
  16.         while(1)
  17.         {                               
  18.                 if(SET_Num == 0)         //【編碼開關編碼開關引腳】
  19.                 {
  20.                         if(NumBer_Coed < 10)
  21.                                 NumBer_Coed++;           //選擇調(diào)整項目加1
  22.                         else NumBer_Coed = 0;
  23.                 }
  24.                 switch (NumBer_Coed)
  25.                 {
  26.                 case 0:        //【檢測電壓】
  27.                        
  28.                         MUXP = MUXP_AIN8;                                  //輸入通道變量【正輸入】
  29.                         MUXN = MUXN_AIN9;         //輸入通道變量【負輸入】
  30.                         DisPlay_Detection_value();//顯示檢測值
  31.                        
  32.                         break;
  33.                 case 1:                              //【檢測電流 < 2.5A】
  34.                        
  35.                         MUXP = MUXP_AIN0;                                        //輸入通道變量【正輸入】
  36.                         MUXN = MUXN_AIN1;         //輸入通道變量【負輸入】
  37.                         DisPlay_Detection_value();//顯示檢測值
  38.                        
  39.                         break;
  40.                 case 2:                           //【檢測電阻】  
  41.                        
  42.                         MUXP = MUXP_AIN0;
  43.                         MUXN = MUXN_AIN1; //輸入通道變量
  44.                         DisPlay_Detection_value();//顯示檢測值
  45.                        
  46.                         break;
  47.                 case 3:                            //【檢測電容】
  48.                        
  49.                         MUXP = MUXP_AIN0;
  50.                         MUXN = MUXN_AIN1; //輸入通道變量
  51.                         DisPlay_Detection_value();//顯示檢測值
  52.                        
  53.                         break;
  54.                 case 4:                            //【檢測電感】
  55.                        
  56.                         MUXP = MUXP_AIN0;
  57.                         MUXN = MUXN_AIN1; //輸入通道變量
  58.                         DisPlay_Detection_value();//顯示檢測值
  59.                        
  60.                         break;                                                         
  61.                 case 5:                      //【2.5A < 大檢測電流 < 33A】      
  62.                        
  63.                         MUXP = MUXP_AIN0;
  64.                         MUXN = MUXN_AIN1; //輸入通道變量
  65.                         DisPlay_Detection_value();//顯示檢測值
  66.                        
  67.                         break;
  68.                 case 6:                        //【檢測頻率】     
  69.                        
  70.                         MUXP = MUXP_AIN0;
  71.                         MUXN = MUXN_AIN1; //輸入通道變量
  72.                         DisPlay_Detection_value();//顯示檢測值
  73.                        
  74.                         break;
  75.                 case 7:                        //【檢測占空比】      
  76.                        
  77.                         MUXP = MUXP_AIN0;
  78.                         MUXN = MUXN_AIN1; //輸入通道變量
  79.                         DisPlay_Detection_value();//顯示檢測值
  80.                        
  81.                         break;
  82.                 case 8:                         //【檢測晶體管放大倍數(shù)】   
  83.                        
  84.                         MUXP = MUXP_AIN0;
  85.                         MUXN = MUXN_AIN1;      //輸入通道變量
  86.                         DisPlay_Detection_value();//顯示檢測值
  87.                        
  88.                         break;
  89.                 case 9:                        //【檢測二極管】      
  90.                        
  91.                         MUXP = MUXP_AIN0;
  92.                         MUXN = MUXN_AIN1; //輸入通道變量
  93.                         DisPlay_Detection_value();//顯示檢測值
  94.                        
  95.                         break;         
  96.                 default: NumBer_Coed = 0;
  97.                         break;         
  98.                 }
  99.         }
  100. }
復制代碼
程序只寫了測試ADS1262運行檢測電壓部分: Keil代碼ADS1262_spi_1.7z (38.21 KB, 下載次數(shù): 95)

作者: Y_G_G    時間: 2022-7-3 16:34
這個芯片的確是性價比很高
但你這個數(shù)據(jù)也太完美了,能精確到小數(shù)點后面6個都是0?
它的內(nèi)部參考電壓是±0.2%,多多少少有點誤差吧
作者: Hephaestus    時間: 2022-7-3 17:46
你那個結(jié)果根本就不可信,0.05uV的噪音是做不到的。還有原理圖在哪里?
作者: 卡瓦格博15    時間: 2022-7-3 22:32
Y_G_G 發(fā)表于 2022-7-3 16:34
這個芯片的確是性價比很高
但你這個數(shù)據(jù)也太完美了,能精確到小數(shù)點后面6個都是0?
它的內(nèi)部參考電壓是±0. ...

拍了3塊IC,一塊因SPI接口電壓用了5V,燒了,一塊有3~8uV跳動,就好像ADS1256的結(jié)果一樣,剩下這塊數(shù)據(jù)真的很漂亮,沒經(jīng)過軟件濾波處理達到這效果
作者: Hephaestus    時間: 2022-7-3 23:40
卡瓦格博15 發(fā)表于 2022-7-3 22:32
拍了3塊IC,一塊因SPI接口電壓用了5V,燒了,一塊有3~8uV跳動,就好像ADS1256的結(jié)果一樣,剩下這塊數(shù)據(jù)真的 ...

那么3·8uV跳動的依據(jù)是什么?

沒有標準表對比,你的說法完全沒有可信度。
作者: Y_G_G    時間: 2022-7-4 00:34
卡瓦格博15 發(fā)表于 2022-7-3 22:32
拍了3塊IC,一塊因SPI接口電壓用了5V,燒了,一塊有3~8uV跳動,就好像ADS1256的結(jié)果一樣,剩下這塊數(shù)據(jù)真的 ...

沒有濾波就有那么漂亮的數(shù)據(jù),你看一下后面那么多整齊的0,想想都知道這是不可能的了
你的代碼我是沒有認真看
就不知道是代碼上的"優(yōu)化",還是這個芯片本身的"優(yōu)化"
總而言之,這些這么整齊的0肯定不是真實的
作者: 卡瓦格博15    時間: 2022-7-4 14:05
Y_G_G 發(fā)表于 2022-7-4 00:34
沒有濾波就有那么漂亮的數(shù)據(jù),你看一下后面那么多整齊的0,想想都知道這是不可能的了
你的代碼我是沒有認 ...

不知道是否PGA低壓報警而導致的誤差,排除中。。,如PGA報警排除后所讀到得的值是一致,就可以證實是真的
作者: Y_G_G    時間: 2022-7-4 22:49
卡瓦格博15 發(fā)表于 2022-7-4 14:05
不知道是否PGA低壓報警而導致的誤差,排除中。。,如PGA報警排除后所讀到得的值是一致,就可以證實是真的

沒有玩這過個芯片,不知道原理
但我估計這芯片內(nèi)部可能是有自動校正的
不然的話,不管你是讀取內(nèi)部參考電壓值還是測量外部2.5V電壓,都不可能得到這么整齊的模擬量的
不過,看了價格和參數(shù),感覺DIY還是很不錯了
作者: Hephaestus    時間: 2022-7-4 23:28
Y_G_G 發(fā)表于 2022-7-4 22:49
沒有玩這過個芯片,不知道原理
但我估計這芯片內(nèi)部可能是有自動校正的
不然的話,不管你是讀取內(nèi)部參考電 ...

現(xiàn)在的問題是ADC性能非常高,也便宜。

但是電壓基準和電阻非常昂貴,真要做出8位萬用表,買電阻沒有幾萬塊是辦不成的。
作者: wgsd    時間: 2022-7-5 08:12
小數(shù)點后面7位了,點后面一個5,加6個零?生產(chǎn)8位半的廠家看了立馬關門歇菜了
作者: wangzhen198394    時間: 2022-8-11 15:16
這個芯片的工作電流是多大,我用stc15系列單片機驅(qū)動沒跑起來,調(diào)試時芯片工作電流有40ma,是不是接線有問題
作者: 天ノ憶    時間: 2022-8-11 17:34
不建議用邏輯分析儀,從這個軟件看我們買的是同一家的,我那個用了幾次氣的丟掉了,不如直接上濾波器,這玩意就智商稅
作者: wangzhen198394    時間: 2022-8-14 22:14
終于調(diào)好了,用主樓的程序修改的,有兩三微伏跳動 噪聲感覺跟ADS1256差不多  優(yōu)點是外圍器件少   芯片便宜10包郵。
主控STC15F61S2  硬件SPI
樓上2.5000000v 是超量程顯示,需要降壓

1.png (70.5 KB, 下載次數(shù): 195)

1.png

ADS1262模擬串口硬件SPI.rar

66.76 KB, 下載次數(shù): 63, 下載積分: 黑幣 -5


作者: 卡瓦格博15    時間: 2022-8-18 19:37
wangzhen198394 發(fā)表于 2022-8-14 22:14
終于調(diào)好了,用主樓的程序修改的,有兩三微伏跳動 噪聲感覺跟ADS1256差不多  優(yōu)點是外圍器件少   芯片便宜1 ...

ADS1256在10多uV跳動,而ADS1262在兩三微伏跳動如加個冒泡濾波就可以控制在零點幾uV,你試試!
作者: 卡瓦格博15    時間: 2022-8-18 19:43
天ノ憶 發(fā)表于 2022-8-11 17:34
不建議用邏輯分析儀,從這個軟件看我們買的是同一家的,我那個用了幾次氣的丟掉了,不如直接上濾波器,這玩 ...

相對便宜而已,感覺調(diào)試程序還可以
作者: Y_G_G    時間: 2022-8-20 08:44
wangzhen198394 發(fā)表于 2022-8-14 22:14
終于調(diào)好了,用主樓的程序修改的,有兩三微伏跳動 噪聲感覺跟ADS1256差不多  優(yōu)點是外圍器件少   芯片便宜1 ...

誰能幫我解釋一下這個是什么?,這小數(shù)后面一堆的數(shù)字............

1.png (78.13 KB, 下載次數(shù): 198)

1.png

作者: wangzhen198394    時間: 2022-8-20 11:15
Y_G_G 發(fā)表于 2022-8-20 08:44
誰能幫我解釋一下這個是什么?,這小數(shù)后面一堆的數(shù)字............

連接2.5V基準校準,用基準電壓除以采集到的電壓就等于這個系數(shù)
作者: Hephaestus    時間: 2022-8-20 15:55
Y_G_G 發(fā)表于 2022-8-20 08:44
誰能幫我解釋一下這個是什么?,這小數(shù)后面一堆的數(shù)字............

嗯,float類型最右邊的0后面跟7~8個數(shù)字就足夠了。double類型跟15個數(shù)字,可但是死忒慘不支持double。
作者: 塵閑    時間: 2023-4-4 10:41
wangzhen198394 發(fā)表于 2022-8-14 22:14
終于調(diào)好了,用主樓的程序修改的,有兩三微伏跳動 噪聲感覺跟ADS1256差不多  優(yōu)點是外圍器件少   芯片便宜1 ...

大佬能否給一下PCB布局   我做的STM32的 采集出來的值波動很大
作者: Alohaq    時間: 2023-8-14 10:30
wangzhen198394 發(fā)表于 2022-8-14 22:14
終于調(diào)好了,用主樓的程序修改的,有兩三微伏跳動 噪聲感覺跟ADS1256差不多  優(yōu)點是外圍器件少   芯片便宜1 ...

請問在哪入啊
作者: Alohaq    時間: 2023-8-17 15:03
wangzhen198394 發(fā)表于 2022-8-14 22:14
終于調(diào)好了,用主樓的程序修改的,有兩三微伏跳動 噪聲感覺跟ADS1256差不多  優(yōu)點是外圍器件少   芯片便宜1 ...

請問內(nèi)部基準也能測負電壓嗎?豈不是內(nèi)部基準是±2.5V供電?
作者: 量子工業(yè)    時間: 2023-8-28 09:58
你好,我是中國大陸北方網(wǎng)友,我對你的單片機+ADS1262製作八位萬用表很感興趣
作者: 卡瓦格博15    時間: 2023-9-15 17:47
量子工業(yè) 發(fā)表于 2023-8-28 09:58
你好,我是中國大陸北方網(wǎng)友,我對你的單片機+ADS1262製作八位萬用表很感興趣

在畫電路圖,完成后再分享給大家,電路圖增加了示波器功能,所以相對復雜點
作者: cdong    時間: 2024-1-9 09:24
牛逼。。。。。學習了
作者: cooleaf    時間: 2024-1-9 21:53
wangzhen198394 發(fā)表于 2022-8-14 22:14
終于調(diào)好了,用主樓的程序修改的,有兩三微伏跳動 噪聲感覺跟ADS1256差不多  優(yōu)點是外圍器件少   芯片便宜1 ...

這個結(jié)果看上去感覺靠譜得多!
作者: htbst    時間: 2024-1-10 10:22
繼續(xù)搞,大家都支持你的了。。!
作者: cdong    時間: 2024-1-11 00:34
wangzhen198394 發(fā)表于 2022-8-14 22:14
終于調(diào)好了,用主樓的程序修改的,有兩三微伏跳動 噪聲感覺跟ADS1256差不多  優(yōu)點是外圍器件少   芯片便宜1 ...

下載了,程序?qū)懙暮芎,對初學很有幫助
作者: meloe    時間: 2024-1-30 08:49
卡瓦格博15 發(fā)表于 2023-9-15 17:47
在畫電路圖,完成后再分享給大家,電路圖增加了示波器功能,所以相對復雜點

蹲一個 謝謝樓主
作者: meloe    時間: 2024-1-30 08:50
卡瓦格博15 發(fā)表于 2023-9-15 17:47
在畫電路圖,完成后再分享給大家,電路圖增加了示波器功能,所以相對復雜點

蹲一個后續(xù) 東西很棒
作者: lksbbs    時間: 2024-1-30 09:53
2.500000V是上限溢出,也就是2.5到3V波動,都會是顯示2.5V,一點意義都沒有。
作者: lksbbs    時間: 2024-1-30 10:56
ads1262某一個寶價格才10來塊錢?  是不是假貨哦。好多平臺都是100以上的價格。
作者: 單片機研究協(xié)會    時間: 2024-1-30 12:52
Hephaestus 發(fā)表于 2022-8-20 15:55
嗯,float類型最右邊的0后面跟7~8個數(shù)字就足夠了。double類型跟15個數(shù)字,可但是死忒慘不支持double。

這兩個float變量初始化之后用串口打印一下,看是不是0.0000000,你寫這么長的小數(shù),是給自己的心理安慰嗎?
作者: 卡瓦格博15    時間: 2024-5-14 20:23
單片機研究協(xié)會 發(fā)表于 2024-1-30 12:52
這兩個float變量初始化之后用串口打印一下,看是不是0.0000000,你寫這么長的小數(shù),是給自己的心理安慰嗎 ...

復制上去的數(shù)據(jù),這么計較干啥呢?
作者: linyin    時間: 2024-5-15 02:20
分享原理圖,我也做一個玩玩




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