找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4422|回复: 31
收起左侧

设想用单片机+ads1262制作八位万用表

  [复制链接]
ID:474417 发表于 2022-7-2 21:10 | 显示全部楼层 |阅读模式
主控采用STC12CLEA08S2 && 11.0592Mhz
程序只写了测试ADS1262运行检测电压部分,基准电压采用自带的2.5V,稳定度还可以。精准度比ADS1256提高了不少,加上现在ADS1262很便宜,值得DIY;
在读数据时,状态位出现0X69即PGA低压报警,未知原因,其他波形正常。分享给大家!
1.png 2.png 3.png 4.png 5.png
单片机源程序如下:
  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++;           //选择调整项目加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:                         //【检测晶体管放大倍数】   
  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, 下载次数: 85)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:401564 发表于 2022-7-3 16:34 | 显示全部楼层
这个芯片的确是性价比很高
但你这个数据也太完美了,能精确到小数点后面6个都是0?
它的内部参考电压是±0.2%,多多少少有点误差吧
回复

使用道具 举报

ID:883242 发表于 2022-7-3 17:46 | 显示全部楼层
你那个结果根本就不可信,0.05uV的噪音是做不到的。还有原理图在哪里?
回复

使用道具 举报

ID:474417 发表于 2022-7-3 22:32 | 显示全部楼层
Y_G_G 发表于 2022-7-3 16:34
这个芯片的确是性价比很高
但你这个数据也太完美了,能精确到小数点后面6个都是0?
它的内部参考电压是±0. ...

拍了3块IC,一块因SPI接口电压用了5V,烧了,一块有3~8uV跳动,就好像ADS1256的结果一样,剩下这块数据真的很漂亮,没经过软件滤波处理达到这效果
回复

使用道具 举报

ID:883242 发表于 2022-7-3 23:40 | 显示全部楼层
卡瓦格博15 发表于 2022-7-3 22:32
拍了3块IC,一块因SPI接口电压用了5V,烧了,一块有3~8uV跳动,就好像ADS1256的结果一样,剩下这块数据真的 ...

那么3·8uV跳动的依据是什么?

没有标准表对比,你的说法完全没有可信度。
回复

使用道具 举报

ID:401564 发表于 2022-7-4 00:34 | 显示全部楼层
卡瓦格博15 发表于 2022-7-3 22:32
拍了3块IC,一块因SPI接口电压用了5V,烧了,一块有3~8uV跳动,就好像ADS1256的结果一样,剩下这块数据真的 ...

没有滤波就有那么漂亮的数据,你看一下后面那么多整齐的0,想想都知道这是不可能的了
你的代码我是没有认真看
就不知道是代码上的"优化",还是这个芯片本身的"优化"
总而言之,这些这么整齐的0肯定不是真实的
回复

使用道具 举报

ID:474417 发表于 2022-7-4 14:05 | 显示全部楼层
Y_G_G 发表于 2022-7-4 00:34
没有滤波就有那么漂亮的数据,你看一下后面那么多整齐的0,想想都知道这是不可能的了
你的代码我是没有认 ...

不知道是否PGA低压报警而导致的误差,排除中。。,如PGA报警排除后所读到得的值是一致,就可以证实是真的
回复

使用道具 举报

ID:401564 发表于 2022-7-4 22:49 | 显示全部楼层
卡瓦格博15 发表于 2022-7-4 14:05
不知道是否PGA低压报警而导致的误差,排除中。。,如PGA报警排除后所读到得的值是一致,就可以证实是真的

没有玩这过个芯片,不知道原理
但我估计这芯片内部可能是有自动校正的
不然的话,不管你是读取内部参考电压值还是测量外部2.5V电压,都不可能得到这么整齐的模拟量的
不过,看了价格和参数,感觉DIY还是很不错了
回复

使用道具 举报

ID:883242 发表于 2022-7-4 23:28 | 显示全部楼层
Y_G_G 发表于 2022-7-4 22:49
没有玩这过个芯片,不知道原理
但我估计这芯片内部可能是有自动校正的
不然的话,不管你是读取内部参考电 ...

现在的问题是ADC性能非常高,也便宜。

但是电压基准和电阻非常昂贵,真要做出8位万用表,买电阻没有几万块是办不成的。
回复

使用道具 举报

ID:492709 发表于 2022-7-5 08:12 | 显示全部楼层
小数点后面7位了,点后面一个5,加6个零?生产8位半的厂家看了立马关门歇菜了
回复

使用道具 举报

ID:244883 发表于 2022-8-11 15:16 | 显示全部楼层
这个芯片的工作电流是多大,我用stc15系列单片机驱动没跑起来,调试时芯片工作电流有40ma,是不是接线有问题
回复

使用道具 举报

ID:139866 发表于 2022-8-11 17:34 | 显示全部楼层
不建议用逻辑分析仪,从这个软件看我们买的是同一家的,我那个用了几次气的丢掉了,不如直接上滤波器,这玩意就智商税
回复

使用道具 举报

ID:244883 发表于 2022-8-14 22:14 | 显示全部楼层
终于调好了,用主楼的程序修改的,有两三微伏跳动 噪声感觉跟ADS1256差不多  优点是外围器件少   芯片便宜10包邮。
主控STC15F61S2  硬件SPI
楼上2.5000000v 是超量程显示,需要降压 51hei图片_20180807215210.png

1.png

ADS1262模拟串口硬件SPI.rar

66.76 KB, 下载次数: 60, 下载积分: 黑币 -5

回复

使用道具 举报

ID:474417 发表于 2022-8-18 19:37 | 显示全部楼层
wangzhen198394 发表于 2022-8-14 22:14
终于调好了,用主楼的程序修改的,有两三微伏跳动 噪声感觉跟ADS1256差不多  优点是外围器件少   芯片便宜1 ...

ADS1256在10多uV跳动,而ADS1262在两三微伏跳动如加个冒泡滤波就可以控制在零点几uV,你试试!
回复

使用道具 举报

ID:474417 发表于 2022-8-18 19:43 | 显示全部楼层
天ノ忆 发表于 2022-8-11 17:34
不建议用逻辑分析仪,从这个软件看我们买的是同一家的,我那个用了几次气的丢掉了,不如直接上滤波器,这玩 ...

相对便宜而已,感觉调试程序还可以
回复

使用道具 举报

ID:401564 发表于 2022-8-20 08:44 | 显示全部楼层
wangzhen198394 发表于 2022-8-14 22:14
终于调好了,用主楼的程序修改的,有两三微伏跳动 噪声感觉跟ADS1256差不多  优点是外围器件少   芯片便宜1 ...

谁能帮我解释一下这个是什么?,这小数后面一堆的数字............
1.png
回复

使用道具 举报

ID:244883 发表于 2022-8-20 11:15 | 显示全部楼层
Y_G_G 发表于 2022-8-20 08:44
谁能帮我解释一下这个是什么?,这小数后面一堆的数字............

连接2.5V基准校准,用基准电压除以采集到的电压就等于这个系数
回复

使用道具 举报

ID:883242 发表于 2022-8-20 15:55 | 显示全部楼层
Y_G_G 发表于 2022-8-20 08:44
谁能帮我解释一下这个是什么?,这小数后面一堆的数字............

嗯,float类型最右边的0后面跟7~8个数字就足够了。double类型跟15个数字,可但是死忒惨不支持double。
回复

使用道具 举报

ID:868241 发表于 2023-4-4 10:41 | 显示全部楼层
wangzhen198394 发表于 2022-8-14 22:14
终于调好了,用主楼的程序修改的,有两三微伏跳动 噪声感觉跟ADS1256差不多  优点是外围器件少   芯片便宜1 ...

大佬能否给一下PCB布局   我做的STM32的 采集出来的值波动很大
回复

使用道具 举报

ID:583423 发表于 2023-8-14 10:30 | 显示全部楼层
wangzhen198394 发表于 2022-8-14 22:14
终于调好了,用主楼的程序修改的,有两三微伏跳动 噪声感觉跟ADS1256差不多  优点是外围器件少   芯片便宜1 ...

请问在哪入啊
回复

使用道具 举报

ID:583423 发表于 2023-8-17 15:03 | 显示全部楼层
wangzhen198394 发表于 2022-8-14 22:14
终于调好了,用主楼的程序修改的,有两三微伏跳动 噪声感觉跟ADS1256差不多  优点是外围器件少   芯片便宜1 ...

请问内部基准也能测负电压吗?岂不是内部基准是±2.5V供电?
回复

使用道具 举报

ID:1083996 发表于 2023-8-28 09:58 | 显示全部楼层
你好,我是中國大陸北方網友,我對你的單片機+ADS1262製作八位萬用表很感興趣
回复

使用道具 举报

ID:474417 发表于 2023-9-15 17:47 | 显示全部楼层
量子工业 发表于 2023-8-28 09:58
你好,我是中國大陸北方網友,我對你的單片機+ADS1262製作八位萬用表很感興趣

在画电路图,完成后再分享给大家,电路图增加了示波器功能,所以相对复杂点
回复

使用道具 举报

ID:1108593 发表于 2024-1-9 09:24 | 显示全部楼层
牛逼。。。。。学习了
回复

使用道具 举报

ID:430492 发表于 2024-1-9 21:53 | 显示全部楼层
wangzhen198394 发表于 2022-8-14 22:14
终于调好了,用主楼的程序修改的,有两三微伏跳动 噪声感觉跟ADS1256差不多  优点是外围器件少   芯片便宜1 ...

这个结果看上去感觉靠谱得多!!
回复

使用道具 举报

ID:567636 发表于 2024-1-10 10:22 | 显示全部楼层
继续搞,大家都支持你的了!!!!
回复

使用道具 举报

ID:1108593 发表于 2024-1-11 00:34 | 显示全部楼层
wangzhen198394 发表于 2022-8-14 22:14
终于调好了,用主楼的程序修改的,有两三微伏跳动 噪声感觉跟ADS1256差不多  优点是外围器件少   芯片便宜1 ...

下载了,程序写的很好,对初学很有帮助
回复

使用道具 举报

ID:1110379 发表于 2024-1-30 08:49 | 显示全部楼层
卡瓦格博15 发表于 2023-9-15 17:47
在画电路图,完成后再分享给大家,电路图增加了示波器功能,所以相对复杂点

蹲一个 谢谢楼主
回复

使用道具 举报

ID:1110379 发表于 2024-1-30 08:50 | 显示全部楼层
卡瓦格博15 发表于 2023-9-15 17:47
在画电路图,完成后再分享给大家,电路图增加了示波器功能,所以相对复杂点

蹲一个后续 东西很棒
回复

使用道具 举报

ID:149642 发表于 2024-1-30 09:53 | 显示全部楼层
2.500000V是上限溢出,也就是2.5到3V波动,都会是显示2.5V,一点意义都没有。
回复

使用道具 举报

ID:149642 发表于 2024-1-30 10:56 | 显示全部楼层
ads1262某一个宝价格才10来块钱?  是不是假货哦。好多平台都是100以上的价格。
回复

使用道具 举报

ID:828160 发表于 2024-1-30 12:52 | 显示全部楼层
Hephaestus 发表于 2022-8-20 15:55
嗯,float类型最右边的0后面跟7~8个数字就足够了。double类型跟15个数字,可但是死忒惨不支持double。

这两个float变量初始化之后用串口打印一下,看是不是0.0000000,你写这么长的小数,是给自己的心理安慰吗?
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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