全开源最小电压表:24位ADC,测量0~2V,五位半

1、项目背景

2015年5月份评估完十几种24位ADC后就从第一份工作岗位上离职了,做的24位AD都没有达到实际的效果,一直耽搁困扰了好久。是硬件设计的问题?还是软件开发的问题?还是24位ADC真的不咋地?还是要离职了干活就不负责了?

去年嘉立创4层板免费打样后就把这个24位AD到底怎么样的想法再验证验证,毕竟高精度ADC需要4层板,地效果才好一点。

最重要的是预感未来可能用到这个方案,墨菲定律。

2、硬件设计

打开久违的AD21,开始骚操作。

8d34bbe800df617a8969eb2851756689.png

2-1、配置

  • CPU :ST的STM32G030F

  • OLED:中景园0.63寸,120*28,IIC接口OLED

  • USB toTTL:Silicon Lab的CP2102

  • ADC:TI的ADS1255

0582c8313c1d400e7e2a393e2e3c540e.png

2-2、原理图详细介绍

  • 去年最喜欢用的低端单片机就是G030了,简单好用有货并不贵,完美应用于简易小产品。

1844ba2da34ffb5422eb8cabc50ed19b.png

  • CP2102涨价了不少,TYPE-C供电中规中矩。

6428fccbbeef6cfec4299da8d9e2f5b4.png

  • OLED,IIC简简单单。

315f49a94a507e2fb25e463c82f58f4b.png

  • ADS1255,首先5VUSB的电源输入后,升压到6.5V,防止输入电压波动,然后6.5V通过LDO转成5V模拟电源和3.3V数字电源,5V模拟电源通过高精度参考电压芯片ADR421ARZ转成2.5V参考电压。

99637a07c867a56f8fdba89dd545244b.png

这是V10的原理图,实际需要把R11和R12电阻去掉;参考电压输出后可以加跟随器匹配下;ADS1255输入端参考手册调整下。

2-2、PCB

  • 直接上图,模拟和数字分开布局,下一个版本做大一点,优化和保护都更好做,也能做的更好。

fc37c90346ea3d284ab84fe6f79cb209.png

  • 完整的地平面,为啥没有分割模拟地和数字地?

4f174c95ff91afd204412bf0f722bad7.png

5b9c9789a9419e3ef964a07cf50ad493.png

  • 嘉立创免费打样真香

2f7c41851cd5656740e857f35072e561.png

3、软件设计

软件是大家的特长,我就不说了,开源

63ddecc6581e360e76429f0b5a90a157.png

公众号回复“电压表”,自行下载。

4、效果

电脑LabVIEW历史采集:ADC缓冲打开、增益1、50sps

  • 单端测量0V:1024条测试数据,1秒10条。-0.000003V~0.000000V波动4个字。

8d09206a5fb07c7ee0c1a49d60b809e0.png

  • 单端测量2.5V:1024条测试数据,1秒10条。2.499401V~2.499406V波动6个字。2.5V基准电压手册参数是2.499~2.501V之间,很优秀。

6c1813fecfabf5c9451e96c09a455718.png

134adfb5bfb764ecbf8e4e4d60b2dc3d.png

  • 通道0采集0V,通道1采集2.5V基准电压。

b9bedad4b6a5bf3e93a047148b2f5a20.png

本地OLED显示:ADC缓冲打开、增益1、50sps

  • 通道0采集0V,通道1采集2.5V基准电压。

外接电压:ADC缓冲打开、增益1、50sps

  • 接电位差计,测量1mV,10mV,100mV,1V。

后面去实验室测试,关注中。。。

5、注意

  • 温度对ADC影响不小,烙铁靠近,波动特别大

  • 采集核心最好使用金属罩屏蔽起来,否则例如特斯拉线圈靠近后不能工作

  • 开启ADS1256内部buffer,测量输入只能到AVDD-2V,相当于有效范围只能到3V,测量更高电压使用外部分压测量

  • 软件设计中读取adc值得延时要求相对较高,会导致测量不准确,有奇怪点等情况

  • 模拟地和数字地分开,我的第二版会这么做

  • 晶振得电容使用18pF,第一次没调通就是电容有问题

  • 基准电源输出加一级运放匹配

  • 测量2.5V,72小时稳定性为2.499391V~到2.499397,综上,只能达到五位半,达不到六位半

cb4a5f101a515ddf4c50358fbec577b3.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/464111.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小小Table

图1 图2(加了蓝色,让问题更清楚)说明:1.工作需要要做这样一个图形(图1),而且要求不用表(table)套表(table)即一个table画出。2.素材有图表两张:(12*14),(12*13) 颜色为Red感兴趣的朋友…

文件断点续传原理与实现

文件断点续传原理与实现 在网络状况不好的情况下,对于文件的传输,我们希望能够支持可以每次传部分数据。首先从文件传输协议FTP和TFTP开始分析, FTP是基于TCP的,一般情况下建立两个连接,一个负责指令,一个负…

jvm经典文章整理

Java中JVM虚拟机详解 Java GC的那些事(上)(博主还有很多文章都很经典) CMS垃圾收集器介绍转载于:https://www.cnblogs.com/zqr99/p/10042586.html

Windows Forms、MFC、WTL、WxWidgets、Qt、GTK综合比较

图形界面库Windows Forms、 MFC、WTL、 WxWidgets、Qt、GTK 综合比较见下表: 总结: GTK主要用在X Window上,整个设计的架构和许多概念和MFC以及一般 Windows 上的程序开发大异其趣,入门门槛较高,而且最主要的特色是&am…

G3,是塔克和阿德巴约的热火队

这一场,是塔克和阿德巴约的热火队G2的比赛,波斯顿人的数据如下G3的比赛,波斯顿人的数据如下如果说田忌赛马可以用在篮球场上,那这场堪称经典热火和波斯顿人的第三场比赛,火队是客场作战,客场作战的热火在第…

微信小程序--数据存储

对本地缓存数据操作分为同步和异步两种。同步方法有成功回调函数,表示数 据处理成功后的操作。下面是小程序提供本地缓存操作接口: 以Sync结尾都是同步方法。同步方法和异步方法的区别是: 同步方法会堵塞当前任务,直到同步方法处理…

RTMPdump 源代码分析 1: main()函数

http://blog.csdn.net/leixiaohua1020/article/details/12952977 rtmpdump 是一个用来处理 RTMP 流媒体的工具包,支持 rtmp://, rtmpt://, rtmpe://, rtmpte://, and rtmps:// 等。之前在学习RTMP协议的时候,发现没有讲它源代码的,只好自己分…

H3C s5500-SI-EI系列交换机 WEB界面登录配置

配置以太网交换机VLAN 1接口的IP地址为10.153.17.82,子网掩码为255.255.255.0。 [H3C]system-view [H3C] interface vlan-interface 1 [H3C-VLAN-interface1] ip address 10.153.17.82 255.255.255.0 用户通过Console口,在以太网交换机上配置欲登录的W…

项目分享| 自制巡线机器人

本次分享机器人项目由myyerrol制作,是他的第一个基于RISC-V的机器人项目。以下文字详细记录了机器人制作的软硬件组成、核心算法等,对机器人感兴趣的朋友可收藏,也可关注他的知乎账号(myyerrol)或GitHub(ht…

Illegal group reference异常的分析

String replaceAll(regex, replacement)函数 , 由于第一个参数支持正则表达式,replacement中出现“$”,会按照$1$2的分组 模式进行匹配,当编译器发现“$”后跟的不是整数的时候,就会抛出“非法的组引用”的异常。 所以我们在使用replaceAll(…

CUDA线程、线程块、线程束、流多处理器、流处理器、网格概念的深入理解

一.与CUDA相关的几个概念:thread,block,grid,warp,sp,sm。 sp: 最基本的处理单元,streaming processor 最后具体的指令和任务都是在sp上处理的。GPU进行并行计算,也就是很多个sp同时…

.Net环境下基于Ajax的MVC方案

现在,越来越多人开始尝试基于Ajax进行无刷新的Web开发,不过,在.Net环境下,应用Ajax并不是非常方便,这主要可能是由以下一些原因造成的: •由于Ajax基于javascript的本质,使得开发者必须对javasc…

一道C语言指针的题目

早上看到的题目,但是现在去找没看到了。我当时还把图片放在小号里面了,大家可以看看。大家看看这个代码输出什么?如果想让它输出77要怎么用指针写呢?凭记忆写一下#include "stdio.h"#include "stdint.h" int …

修改python默认的编码方式

今天碰到了 python 编码问题, 报错信息如下Traceback (most recent call last): File "ntpath.pyc", line 108, in joinUnicodeDecodeError: ascii codec cant decode byte 0xa1 in position 36: ordinal not in range(128)显然是当前的编码为ascii, 无法解析0xa1(十…

mysql日志种类、二进制日志模式、mysqlbinlog解析二进制日志

mysql日志的种类 二进制日志(binary log):记录数据更新的操作,mysqlbinlog 可查看二进制日志文件 错误日志(error log):记录mysql服务进程mysqld的启动、关闭和运行时的错误信息 慢查询日志&…

Linux IO多路复用之epoll网络编程,高并发的使用例子 (含源码)

本章节是用基本的Linux基本函数加上epoll调用编写一个完整的服务器和客户端例子,可在Linux上运行,客户端和服务端的功能如下: 客户端从标准输入读入一行,发送到服务端 服务端从网络读取一行,然后输出到客户端 客户端收到服务端…

c#中Excel数据的导入、导出

/**//// <summary>/// 导出到 Excel 文件/// </summary>/// <param name"fileName">含完整路径</param>/// <param name"dataTable">含字段标题名</param>publicvoidExpExcel(stringfileName ,DataTable dataTable){ …

你对Linux下的实时性应该多点了解

作者简介顺刚(网名:沐多)&#xff0c;一线码农&#xff0c;从事工控行业&#xff0c;目前在一家工业自动化公司从事工业实时现场总线开发工作&#xff0c;喜欢钻研Linux内核及xenomai&#xff0c;个人博客 wsg1100&#xff0c;欢迎大家关注&#xff01;本文讲述一些有利于提高x…

ria website

http://www.36ria.com/

Epoll例子的使用

第一部分&#xff1a;Epoll简介 问题 : Select,Poll和Epoll的区别 答案 : Epoll和Select的区别 1. 遍历方式的区别 。select判断是否有事件发生是遍历的&#xff0c;而epoll是事件响应的&#xff0c;一旦句柄上有事件来了&#xff0c;就马上选出来。 2. 数目的区别。select一…