38度发烧友--38Hot Volt-Nuts

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2818|回复: 0

DIY一个五位半电压表——毫欧表的兄弟篇,毫欧表/五位半电压表二合一套件正式发布

[复制链接]
发表于 2013-5-18 17:23:53 | 显示全部楼层 |阅读模式
本帖最后由 leejianzhao 于 2013-5-18 17:35 编辑

公布淘宝链接:

毫欧表/五位半电压表二合一套件:http://item.taobao.com/item.htm?id=17790993945
编程器:http://item.taobao.com/item.htm?id=19655699042
盒子:http://item.taobao.com/item.htm?id=20501315155,没有开孔
配套电池:
Sony 原装14500(5号),方便装到盒子:http://item.taobao.com/item.htm?id=18218145072
三洋 浅蓝头 18650:http://item.taobao.com/item.htm?id=18218449138

DIY一个五位半电压表——DIY一个毫欧计的兄弟篇
LeoLee2013-05-17



先来个大头照:
整体.jpg

特性汇总:
- 100mV/1000mV/10V/100V四个档位,大概有50%超量程余量
- 五位半显示,最大150000 count
- 支持任意值校正,通过面板按钮即可校正。精度保守一点吧,0.01% Reading+4 LSB,后面有测试图
-  Fast/Slow两档速度,Fast10/秒,Slow1/
-
数据从USB UART输出,波特率115200(目前只输出,不能从上位机控制)
-
默认5分钟自动关机,可以关闭该功能
-
使用一节锂电池供电,支持从USB充电
-
支持背光,可以关闭
- 工作电流:17mA(背光关闭);44mA(背光打开)。一节145005号)锂电池可以连续工作1.52天(背光关闭)


一、序
现在三位半甚至四位半的电压表(多用表)已经非常廉价,而且随着器件的进步,自己DIY一个五位半甚至六位半的电压表其实也不是什么难事,已经有人做了六位半多用表,本来这个帖子是没有太大必要的。原本设计的是一个毫欧表,为了测试C8051F350的24bit ADC,顺便兼容了一个电压表功能。仅仅在贴子最后附带提了几句,发现大家都对它也感兴趣,因此新开一个帖子讨论一下吧。

一个直流电压表最关键的有3个部分:模拟前端、ADC和基准电压,下面分开讨论。


二、模拟前端
模拟前端肩负了几个重要任务:输入信号的衰减或者放大/低通滤波/阻抗变换/防护。
大家都知道一般来说ADC只有一个量程,台式的一般是10/20V,手持的三位半或者四位半是200mV,这个称为基本量程,也是精度最高的量程,其他的量程都要把输入信号放大或者衰减到这个量程再来测量。这个表的基本量程是1V,而且由于MCU内置了PGA,因此模拟前端仅需要考虑衰减。
输入衰减.png

10V和100V量程通过Socket_V端子接入,100mV/1V量程通过Socket_mV端子接入,这个和常见的不一样,为什么这样?这两个输入信号是有高压的,不能通过模拟开关切换,一般台表使用继电器切换这两个端子,手持表通过刀盘切换,而这个是做毫欧表顺便做的,不想为电压表增加太多东西(现在就加了两个运放、一个模拟开关和几个跳线),加继电器我是不愿意的,做刀盘又没有本事,而且端子有4个,不用白不用J

10V和100V量程通过Socket_V端子接入,通过4052模拟开关选择衰减量,9M(实际上是9个1M串联):1M是10:1分压,用于10V;9M:90.9K(实际上是1M//100K)是100:1分压,用于100V。
模拟开关.png


模拟开关接成这样主要是想尽量减小模拟开关对分压的影响。模拟开关的Ron其实无关紧要,如果Ron的恒定的,可以通过软件增益校正回来,麻烦的是Ron的变化。从下图可以看出,在不同的输入电压下,Ron是不一样的,变化大概是20欧姆,如果通过S2把分压结果取出来,那么S1的Ron就可以折合到9M中去,S1的Ron变化20欧姆,相对于9M来说,大概变化了20/9M=2.2ppm;如果不用S2,而是直接从A点把分压结果取出来,那S1的Ron变换就得折合到下面的电阻,20/90.9K=220ppm!

4052 Ron.png
2.2ppm对于一个五位半的电压表来说,已经小于1LSB的一半了,因此基本上可以忽略。这个便宜的74HC4052还有一个问题leakage current比较大,DS上写在25度下,最大0.1uA,幸好实际测试这个漏电流要少3-4个数量级,对分压和mV档的输入阻抗基本没有影响。
当然,选择74HC4052纯粹是出于成本考虑,如果要提高性能,可以选用MAX4782,和74HC4052管脚兼容,可以直接替换。下图是MAX4782的Ron曲线,可以发现在各种共模电压/各种温度下,Ron的变化不会大于0.3欧,相对于9M电阻,0.3/9M=0.03ppm,这个误差就算是六位半都可以忽略了。而且MAX4782的漏电流的典型值是2pA,相当不错。
MAX4782 Ron.png


这个衰减方案有一个缺点——100V档的输入阻抗不是标准的10M,因为要保证10V档输入阻抗为10M,那100V档输入阻抗只能为9.09M。其实不是使用类似衰减方案的手持表也是如此,例如Fluke 15/17,分压电阻就是10M:1.111M:101.01K

台式万用表一般是直接100:1分压,这样完全避免Ron的变化对分压的影响,而且100V/1000V档的输入阻抗都是10M。为什么我不这样做呢?因为我的基本档是1V,如果直接100:1分压,10V档的输入就只能先衰减到1/100再放大10倍,引入更多的噪声,由于10V档是比较重要的档位,噪声导致读数跳动是难以接受的(C8051F350的内置PGA不是很好)。而台式表的基本量程是10/20V,100V档没有这么重要,加上人家的分压电阻/PGA比较好,这样先衰减再放大关系也不大。

100mV/1V量程通过Socket_mV端子接入,串接了3个10K电阻,目的是防止mV档误接高压损坏。芯片的管脚上一般会有两个二极管连到电源和地,如果输入电压超过VCC或者VEE,就会导通,钳位到VCC+0.7V或者VEE-0.7V,从而保护芯片。但是这个二极管的通流是有限的,一般是几个mA到几十个mA,例如AD8628是5mA,74HC4052是20mA,如果不加限流电阻,电压略微超过限制,这个二极管就会烧毁,因此前面加了3个10K电阻做限流。为什么要3个10K而不用1个30K呢?主要是因为一个0805电阻的耐压只有150~300V,而且0805的功率只有0.1W,10K电阻的话最大电流只有3.16mA,3.16mA*30K=94.8V,短时间200~300V问题也不大。一般台表这个电阻用的都是1W以上的(例如34401用8个13K 1W的电阻串联),因为它要求耐压1000V。
保护.png


那是不是限流电阻越大越好呢?从保护的角度,是的。但是,有两个问题:
1、这个电阻会带来噪声——约翰逊噪声。如果这个电阻在百K级以下,而你不是做纳伏计,约翰逊噪声不是很大问题,这里不考虑了。
2、误差电压=电阻 x 运放的输入偏置电流,因此要看具体情况来选择。例如,使用AD8628,输入偏置电流为30pA,前端使用3个10K电阻做限流,引入误差30p*3*10K=0.9uV。如果偏置电流是固定的,那这个误差电压是可以作为offset校正的,但是偏置电流会随共模电压/温度等变化,从下图可以看出,在25度下,随共模电压变化,偏置电流变化几个pA,也就是说输入会变化0.x uV,总的来说,对于一个五位半的电压表关系不是太大:)
AD8628.png


这里说个题外话,大部分的DIY作品都没有考虑防护的问题,我是非常不认可的。如果一个方案没有任何防护能力,我会推翻重来。

一般在串接的限流电阻后并一个小电容,组成的RC时间常数大约是最大测试速率的1/10,起模拟滤波作用。例如100/1000mV档,按照10次每秒的测试速率,RC常数大概是0.01s,因此C=0.01/30K=0.3u,实际选择了0.1u的电容;对于10V/100V档,0.01/10M=1n。有些台表还可加了一个FET控制这个电容或者滤波电路是否接入,这样就可编程是否加模拟滤波,例如Fluke 8840A通过Q304控制是否接入一个3 Pole Filter。

模拟开关之后,直接用一个运放AD8628做跟随,实现阻抗变换——对输入来说G级,对ADC来说欧姆级。AD8628通过自稳零和斩波相结合,使得offset的温漂典型值只有0.002uV/度,而且偏置电流只有30pA,开环增益140dB,0.1-10Hz的噪声峰峰值只有0.5uV,这个运放胜任六位半都没有问题,用在这里足够。考虑ADC的开关电容输入级,运放的输出要接比较大的电容,为了防止运放自激,加了相位补偿(R49*C23=R50*C7)。

跟随.png
有些朋友问我这个板子只有一个4.2V的锂电池,还降压到3.3V,没有升压没有负压,怎么能测试负的电压?其实,COM端子不是表的地,而是3.3V的中点电压SGND,这个电压就是有下面的运放产生,也是用了类似的补偿方法。由于是电池供电,这个表的电压都是浮动的,不管输入电压COM端的共模电平是多少,对于表来说都是Vcc/2,输入电压在前面都会衰减到1.6+/-1V这个区间。产生虚地的这个运放要求不是很高,用LMV321/MCP6002/MAX4165之流的就行了。
不过这里要注意一点,我的USB接口是没有隔离的,也就是说如果连上电脑采集数据时,电脑的地和表的地是连在一起的,那么输入电压的共模电压会加在电脑上,如果电脑也是接地的话,那就出大问题!!如果笔记本电脑也用电池供电或者电源适配器是隔离的话,那电脑的地上也会出现这个共模电平,例如USB接口的外壳,摸到就会触电的!
虚地.png   






 楼主| 发表于 2013-5-18 17:24:25 | 显示全部楼层
本帖最后由 leejianzhao 于 2013-5-23 23:48 编辑

三、ADC
使用C8051F350内置的24bit ADC,这个在毫欧表里面已经说的比较多了。这个表再重温一下,在PGA=1,10Hz的条件下,RMS noise是2.38uV,峰峰值 noise为2.38*6.6=15.7uV,也就是1V档的1.5个LSB(五位半),大概看到两个数在跳(极端情况可能3个),在Slow模式下,把10个读数平均,提升log(10)/log(4)=1.66bit,2^1.66=3.16LSB,因此在Slow模式基本上不会跳数了(当然,由于舍入问题导致的最后一位跳是不能避免的)。
F350.png

四、基准电压
这里可以使用C8051F350的内置基准(最大15ppm温度系数),或者外部基准可以用REF5025(工业级:2.5ppm(典型)/3ppm(最大)温度系数;商业级:3/8ppm)或者MAX6192(A级:2/5ppm;B级:4/10ppm;C级8/25ppm)。
使用内置和外置基准的frimware是不一样的,不能搞错。


五、电池供电的一些特殊考虑
由于锂电池的能用电压范围大概是3.x~4.2V,而我不想使用升压电路,因此有些特殊考虑。
1、  模拟开关可以用74HC4052或者MAX4782,不能用74HCT4052,带T的要5V供电
2、    运放都采用RRIO的
3、    外置电压基准用的是REF5025或者MAX6192,不能用ADR421,因为ADR421的最低输入电压是4.5V。这个也是我没有用更高档的电压基准芯片的原因,目前最好的2.5V基准可能是MAX6325C_A(0.5典型,1ppm最大),不过最低供电要求是8VL这些基准芯片的封装都是兼容的。
4、    USB接口由于要给电池充电,因此没有隔离,要注意采集数据时的共地问题

六、其他辅助功能
1.         数据输出,支持从USB口输出数据。目前仅支持数据简单的从USB输出,不能通过电脑控制。可以使用各种串口终端,例如超级终端、串口助手等,具体COM几看设备管理器,波特率115200。
通过Mini-USB连到电脑,应该会发现新硬件,Windows会自己联网找驱动(保证网络畅通,大概1-2分钟就能找到,Win7 64bit都没有问题),或者自己去google搜索CH340的驱动。安装驱动之后,设备管理器会多了一个COM口(COM几就难说了)
COM.png
超级终端.png

2.         锂电池充电
内置了一个锂电池充电器,默认充电电流为500mA。在Mini-USB接口旁边有两个LED指示充电状态。
可以通过更改R25调节充电电流。
bat.png


七、测试
使用一个10V基准,通过KVD分压,和Fluke 8842A对比测试,测试结果请看图,一般偏差在2-3LSB,最大偏差6LSB

10V档
1V.jpg 2V.jpg 3V.jpg 4V.jpg 5V.jpg 6V.jpg 7V.jpg 8V.jpg 9V.jpg 10V.jpg
读数稳定性(噪声),Slow模式,5分钟
test.png


100mV档。这个档位8842A数据跳动比较厉害,将就吧

10mV.jpg 20mV.jpg 30mV.jpg 40mV.jpg 50mV.jpg 60mV.jpg 70mV.jpg 80mV.jpg 90mV.jpg
100mV .jpg


1V档

100mV.jpg 200mV.jpg 300mV.jpg 400mV.jpg 500mV.jpg 600mV.jpg 700mV.jpg 800mV.jpg 900mV.jpg


100V档我就没有办法测了

回复

使用道具 举报

 楼主| 发表于 2013-5-18 17:41:58 | 显示全部楼层
原理图

OhmMeter_F350_V21.pdf

940.85 KB, 下载次数: 2615

回复

使用道具 举报

 楼主| 发表于 2013-5-18 19:09:15 | 显示全部楼层
本帖最后由 leejianzhao 于 2013-10-7 21:45 编辑

提供毫欧表/五位半电压表的PDF版的原理图/PCB图,BOM清单,HEX,以及源码
本设计版权归本人所有,未经授权不得用于商业用途
还写了个DIY指南,让大家少走点弯路。前期发的套件,已经有超过十位DIY成功,
个人偏爱贴片器件,给大家添麻烦了,J2、U4和U10有点难焊
其实DIY还是比较简单的,焊完就能工作,免调试。后续的校准都可以通过面板的几个按钮完成。


配套亚克力外壳+电池:http://item.taobao.com/item.htm?id=21465119764



CH340的USB驱动在毫欧表帖子的164楼
https://bbs.38hot.net/forum.php?m ... 5&fromuid=17757


回复

使用道具 举报

发表于 2013-5-18 19:37:58 | 显示全部楼层
过来捧个场,乍一看还以为楼主用了啥模拟开关居然不用继电器切换高低压量程,原来是用了两个插孔

我用 ADS1232 做的“万用表”(量程有限),还是用了经典的继电器切换

cr2006s.jpg

cr2007s.jpg

cr2012.jpg

cr2011.jpg

cr2009.jpg

cr2031s.jpg
回复

使用道具 举报

 楼主| 发表于 2013-5-19 00:18:10 | 显示全部楼层
lilith 发表于 2013-5-18 19:37
过来捧个场,乍一看还以为楼主用了啥模拟开关居然不用继电器切换高低压量程,原来是用了两个插孔 {:139_281 ...

偷下懒都被你发现

本来就是顺便做的,不想占太多地方和成本,反正毫欧表本来就有4个洞,不用白不用

我仅仅加了两个运放/一个模拟开关/若干跳线,还有一个可有可无的电压基准,就搞定了电压表,让大家低成本的多一种玩法,何乐而不为?
回复

使用道具 举报

发表于 2013-5-19 01:04:09 | 显示全部楼层
又有好东西来了,占位帮顶
回复

使用道具 举报

发表于 2013-5-19 07:29:26 | 显示全部楼层
无米才开发出来郁闷啊。。。坐等更多功能存钱续购!
回复

使用道具 举报

发表于 2013-5-19 09:33:51 | 显示全部楼层
这个要顶,特佩服LZ这种硬件软件都精通的
回复

使用道具 举报

发表于 2013-5-19 11:19:48 | 显示全部楼层
这个要顶,特佩服LZ这种硬件软件都精通的
回复

使用道具 举报

发表于 2013-5-19 11:49:59 | 显示全部楼层
必须要顶,楼主有才人啊
回复

使用道具 举报

发表于 2013-5-19 14:02:27 | 显示全部楼层
楼主的设计简单精巧,结构清晰明了,直接使用芯片内置AD成本低廉,锂电管理和开关机电路也非常成熟可靠,用了线性充电IC,和单安建开关机电路,从这个经典电源控制方案上,看到了很多优秀作品的影子,想必楼主常年混迹于各大论坛,吸取其精华,才到今天这地步
回复

使用道具 举报

发表于 2013-5-19 14:46:22 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

 楼主| 发表于 2013-5-19 19:17:47 | 显示全部楼层
tssmcu 发表于 2013-5-19 14:02
楼主的设计简单精巧,结构清晰明了,直接使用芯片内置AD成本低廉,锂电管理和开关机电路也非常成熟可靠,用 ...

我喜欢简单的设计!
类似的充电电路和开关机电路在MP3之类的东西上广泛使用,相当成熟。

USB UART就是串口线电路的copy,不过这里还有一个小细节。CH340T没有通过电池供电(为了省电),在没有插USB的时候,CH340T是没有电的,但是不要忘了还有管脚上的防护二极管,如果MCU的TX输出高电平,就会向CH340T灌入电流(相当于通过TX给CH340T供电)。因此,我的设计中MCU的TX是OC输出的,上拉到CH340T的VCC,这样就避免了灌电流的问题

电压表的电路也是相当的成熟,我也玩不出什么花样。衰减电路就是copy各种自动档手持表的,例如提到的Fluke 15/17B
回复

使用道具 举报

发表于 2013-5-19 19:41:11 | 显示全部楼层
leejianzhao 发表于 2013-5-19 00:18
偷下懒都被你发现

本来就是顺便做的,不想占太多地方和成本,反正毫欧表本来就有4个洞,不 ...

话说电压表和毫欧表不能共存吧?

另外就是那个输入衰减电路,通过模拟开关切换下电阻改变分压比,模拟开关切换的时候不知道是怎么一个过程,有没有相当于开关两臂都断开的过程呢?有的话意味着模拟开关呈开路状态,当然由于前面的 9M 电阻很大,所以高压经过 9M 电阻之后只形成很小的电流,然后被构成模拟开关的 MOS 的体二极管吸收掉,只是觉得这样不舒服了 尽管这个过程可能时间非常短,甚至不存在,就是看着不舒服


回复

使用道具 举报

 楼主| 发表于 2013-5-19 20:50:17 | 显示全部楼层
lilith 发表于 2013-5-19 19:41
话说电压表和毫欧表不能共存吧?

另外就是那个输入衰减电路,通过模拟开关切换下电阻改变分压比,模拟 ...

是的,电压表和毫欧表不能共存。切换功能的时候需要改变图中的5个跳线,同时刷入相应的firmware
现在校准参数可以通过备份firmware来保存,我感觉也算方便的了。备份方法见 DIY一个毫欧计的175楼  https://bbs.38hot.net/forum.php?mod=redirect&goto=findpost&ptid=40484&pid=504119&fromuid=17757


跳线.png

至于模拟开关,你就不要纠结了,34401也没有任何防护器件就直接进芯片了(其实前面还有个空气放电管,不过动作电压1500V,用来防护雷击的)
不仅10M分压没有,8个13K串联的也没有(我的那个BAV99 D12也考虑去掉,因为BAV99的漏电流有点大,BAV199又很难买到,用FET我又不是很舍得)
34401 input.png

回复

使用道具 举报

发表于 2013-5-19 21:19:52 | 显示全部楼层
leejianzhao 发表于 2013-5-19 19:17
我喜欢简单的设计!
类似的充电电路和开关机电路在MP3之类的东西上广泛使用,相当成熟。

卧槽楼主考虑果然非常细致,不过用OC们有小缺陷,需要供电,体积小的又很难找,我自己一直用另一个方案,2N7002DW,是个SC-70-6封装的双2N7002,我用它做I2C或者UART的电平转换,非常方便,串口在115200通信毫不马虎,在转换电平时接法如图: QQ截图20130519211657.jpg
左边是3.3V电平转换到右边5V电平。
不过我贴出来才发现这个还是不能防电流灌入340,哎算了。。
其实用个1N5819 080封装的穿在MCUTXD 到340RXD就可以了,MCURXD是弱上拉灌入电流应该很小可以不处理
回复

使用道具 举报

发表于 2013-5-19 21:28:52 | 显示全部楼层
哎。。眼浊。。我明白你的意思了,你是集电极开路,然后上拉电阻到USB5V。看错了。。已近写了那么多删掉怪可惜
回复

使用道具 举报

 楼主| 发表于 2013-5-19 22:22:13 | 显示全部楼层
tssmcu 发表于 2013-5-19 21:19
卧槽楼主考虑果然非常细致,不过用OC们有小缺陷,需要供电,体积小的又很难找,我自己一直用另一个方案, ...

这个电路我一般用在IIC的电平转换中,这个电路也是IIC规范推荐的Level shifter具体可以参考www.nxp.com/documents/other/39340011.pdf‎ 的Page 43
回复

使用道具 举报

发表于 2013-5-20 00:04:32 | 显示全部楼层
LZ 能帮我上大忙,以后要好好合作。先记号
回复

使用道具 举报

发表于 2013-5-20 00:46:57 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

发表于 2013-5-20 07:40:17 | 显示全部楼层
上了5位半的东东基本都要经过筛选了,f350实现6位半都可以,但是考虑的要很多
回复

使用道具 举报

发表于 2013-5-20 09:54:09 | 显示全部楼层
  1. 这个要顶,特佩服LZ这种硬件软件都精通的
复制代码
有同感。
回复

使用道具 举报

发表于 2013-5-20 10:48:31 | 显示全部楼层
100mV档上几张测试图
回复

使用道具 举报

发表于 2013-5-20 10:57:47 | 显示全部楼层
leejianzhao 发表于 2013-5-19 20:50
是的,电压表和毫欧表不能共存。切换功能的时候需要改变图中的5个跳线,同时刷入相应的firmware
现在校 ...

人家好歹用继电器切换,实际上走进模拟开关的总是 100K 电阻上的电压,9.9M+100K 这一串是不会断开的,而你的是会断开的 所以看着不舒服,虽然好像也没啥问题(不确定)。如果你增加一个继电器,不仅解决这个问题而且也可以让毫欧表和电压表共存了吧

话说你的单片机没有片内 EEPROM,要用 FW 来保存校准值?


回复

使用道具 举报

发表于 2013-5-20 13:00:38 | 显示全部楼层
要了5套,以实际行动支持楼主的这种行为!
回复

使用道具 举报

 楼主| 发表于 2013-5-20 18:40:49 | 显示全部楼层
redtony 发表于 2013-5-20 13:00
要了5套,以实际行动支持楼主的这种行为!

感谢啊~~!!

马上让我的存货只剩下一个,呵呵,昨晚立即备料,明天就好了

希望大家能从这个套件学到什么,我是抱着完全开放的态度,对于原理图/源码,大家有问题尽管提出来,我会尽力回答的
回复

使用道具 举报

 楼主| 发表于 2013-5-20 18:54:20 | 显示全部楼层
lilith 发表于 2013-5-20 10:57
人家好歹用继电器切换,实际上走进模拟开关的总是 100K 电阻上的电压,9.9M+100K 这一串是不会断开的,而 ...

你看错了吧,如果9.9M+100K不会断开,10V或者以下档位怎么可能实现大于10M的输入阻抗?
你说的这个情况可能是受34401还有一个选项就是10V或者以下档位也可以选择10M输入阻抗的误导,这时候9.9M+100K就不会断开


这个继电器根本和10V或者以下档位的防护无关,举个最简单的例子,你不用auto range,固定是mV档,高阻输入,接到100V,会出现什么情况?根本没事!继电器固定接到8*13K上,断开了9.9M+100K,这样和我从另外一个端子输入有什么区别?



C8051F350内部没有单独的EEPROM区域,因此我划分了一个Flash的Block(512byte)用于保存校正信息,Flash的擦除是以block为单位的
由于Flash的空间有限,我也没有办法再拿多一个Block来存另外一个功能的校正信息,因此两个功能的校正信息存放的地方是一样的,因此出现这个问题


当然,其实可以仅仅保存放着校正信息的这个block,但是出于操作的简单性,让大家把整个flash保存下来,反正很快
回复

使用道具 举报

 楼主| 发表于 2013-5-20 20:00:12 | 显示全部楼层
liyf 发表于 2013-5-20 07:40
上了5位半的东东基本都要经过筛选了,f350实现6位半都可以,但是考虑的要很多

五位半没有这么夸张,其实就是关键的那几个分压电阻要求高一点而已,如果用5ppm的塑料块,已经足够,完全不用筛选

六位半又没有这么简单,F350做六位半是完全不行的,原因有二:
1、F350的noise太大,参考下图


在PGA=1,10Hz的条件下,RMS noise是2.38uV,峰峰值 noise为2.38*6.6=15.7uV,1V档在五位半下是1.5个LSB,六位半就是15个LSB,最后两位都跳的六位半谁要啊?!
就算降低到1Hz,把10个读数平均,提升log(10)/log(4)=1.66bit,log2(15)-1.66=2.25bit,折合到10进制就差不多是5个数在跳。这个还仅仅是ADC noise导致的,还没有算上系统里面其他的噪声


当然,还是可以用强力的滤波算法把读数稳定下来,就象我的毫欧表在20欧姆档其实就是六位半显示的,但是响应比较慢。测电阻大家可以等一下,2-3秒稳定是可以接受的,但是电压表可以吗?


ADS1232的noise就比较低,而且便宜。在10Hz下,只有420nV或者450nV;LTC2440再略好一些,在6.875Hz下,只有200nV。这两个的noise基本上可以做六位半了(我说的仅仅是noise哦)


2、F350的INL最大是15ppm
我实际测试下来也差不多,15ppm相对于2.5V基准来说,就是37.5uV,对于六位半就是37.5个LSB,对于五位半就是3.75个LSB。
用F350做出来的六位半精度指标可能要这样标:0.00x%+40LSB,知道我的毫欧表标称精度后面为什么要+40LSB了吧
五位半的话,就是3.75LSB,因此我标称就是+4LSB
INL是很难校正的,看看lilith校正他的源表就知道

ADS1232的INL典型值是2ppm,最大值是10ppm;LTC2440的INL典型值是3ppm,最大值是15ppm。从典型值来看是勉强可以做六位半,但是最大值也就是五位半的水平

综上,
1、以上两个问题说明F350的ADC其实并不是很好,只能说性价比高:)
2、我认为用sigma-delta ADC不是很适合做高位表,或者说最多做到五位半

这里顺便提一个可能是目前最好的sigma-delta ADC——ADS1281/ADS1282,我手上其实都有样品,不过没空玩:(
ADS1281/1282可是31bit的ADC,不要以为能做七位半甚至八位半(31bit有九位半,呵呵),1282的INL典型值是0.5ppm,最大值是4ppm,这个做六位半就不错,不过价格……


回复

使用道具 举报

发表于 2013-5-20 21:55:15 | 显示全部楼层
看你用的是外部基准,你试试用内部基准看看,内部的比较稳定的,就是有点偏差,需要修正
回复

使用道具 举报

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

本版积分规则

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