国产称重ADC测量PT100心得分享

一、为什么有这个想法
之前一直用ADI的芯片来测量PT100,测量效果是不错的。但是最近进口ADC芯片越来越难买,价格也越来越高。而国产的称重专用的ADC芯片价格便宜又好买。有没有可能用国产称重ADC来测量PT100呢?
之前逛论坛,就发现有网友提出类似的需求。我第一眼的想法就是没问题,24位ADC测一个PT100还不容易。深入了解了一下,却发现有很多问题。当然既然写这篇文章,这些问题都被解决了,下面就来说一下解决问题的过程。
需要说明的是,我分享的是我找到的一个可以实现的方法,不代表没有别的方法,也不代表这个方法就是最好的。同时本文只是一个经验分享,不提供技术支持。

二、设计目标
我的习惯是任何应用技术的开发都要能够落实到一个具体的产品上。既然是用低成本的国产称重ADC,那么就想要开发一个低成本、高精度的PT100测量电路。原因如下:
首先,国产称重ADC一般只要一两元,那么周围的器件也要和这个成本配套。不能说,用了便宜的ADC却用几块钱的高精度运放或者精密电阻,这样就发挥不出ADC低成本的优势了。
其次,目前市面上有很多低精度的PT100测量方案,用MCU内部的ADC进行测量,成本非常低。如果我们用了独立的ADC,精度却做不高。那么这个产品或者这个技术也没有开发的意义了。

三、测量方案
PT100分为两线制、三线制和四线制。两线制没法对导线电阻进行补偿,不符合高精度的要求。四线制PT100不常用且成本高,不符合低成本的要求。所以最终选用三线制的测量方式。虽然三线制比起四线制测量,难度还要更高一点。
测试电流的选择,也决定了系统的精度。PT100要求测试电流不能大于1mA,否则就会因为自身发热而影响测量精度。实际应用时,我们往往会用到比PT100精度更高的分辨率,如0.01℃。那么就要求测试电流更要小一点。但是测试电流太小的话,信号就会太小,测量不容易,同时也容易收到外界的影响和干扰。所以我觉得0.1mA~1mA是比较合适的,最终我选定的是0.5mA左右测试电流。

四、常用电阻测量方法简介
常用的测试电阻方式主要有以下三种:
1、给待测电阻一个恒定的电流,然后测两端的电压。
2、将待测电阻和基准电阻串联后,供给一个恒定的电压,测两者之间的电压比。
3、将待测电阻和基准电阻串联后,供给一个恒定的电流,测两者之间的电压比。
后两种统称为比例测量。比例测量时,一般是把基准电阻上的电压作为ADC的基准电压,然后去测量待测电阻上的电压,这样测量到的AD码就是和待测电阻成正比的,很容易计算。同时只要保证基准电阻的精度,就可实现高精度测量。
这两种方案,没什么本质的区别,如果系统中有免费的电流源,比如某些ADC芯片会提供电流源,那么就可以使用第三种方案。毕竟恒流的话,对于控制待测电阻的发热,和补偿ADC的输入电流还是有一定好处的。在本次设计中,因为用的ADC芯片自带的LDO可以实现恒流源,一开始采用了方案三的测量方式。可惜实际做下来,这种方案稳定性不行,最后还是采取了方案二恒压比例测量。

五、芯片选型
如前所述,本次设计我们要实现一个低成本高精度的三线制PT100的测量电路,同时这颗ADC又要容易购买。于是我就到各个芯片网站上,去找了一些有货且价格合适的芯片,把相关的指标列在下表。

型号
通道数
放大倍数
基准
价格
其他
HX717
2
8,64,128
与电压输出共用
2.28
含LDO
HX711
2
32,64,128
与电压输出共用
2.14
HX712
1
128
独立基准
1.4
HX710
1
128
独立单端基准
1.15
CS1237
1
1,2,64,128
独立基准
1.43
CS1238
2
1,2,64,128
独立基准
3.43
TM7711
1
128
独立单端基准
1.66


最终我选择了HX717,主要是放大倍数合适。如果测试电流选用0.5mA,那么信号范围就是200mV。显然只有8倍放大倍数才是合适的。其次他的双通道也适合三线制测量,而且还送了一个LDO。最最关键的是,我开始设计时HX717只要一块多,可惜现在涨价了,希望以后会降回来吧。
但是HX717有一个缺点,就是没有独立的基准输入,他的基准输入是和他的LDO输出公用的,也就是没有办法再使用传统的比例测量方式。



六、全新的比例测量方式
HX717啥都好,就是没有一个独立基准。而且他这个基准,输入电流还很大,据实测要达到1uA这样的数量级,测试电流只有500uA。1uA的输入电流,会影响的测量的准确度。国产称重ADC很多都不给出基准输入电流的指标,实测基本上都是1uA这个数量级上,所以即使有独立的基准,其实也不能简单的采用传统的比例测量方式。
于是我想了另外一种比例测量方式,就是将待测电阻和基准电阻串联后,供给一个恒定的电压,然后用这个恒定的电压作为ADC的基准电压,去测待测电阻两端的电压。这种方式,就特别适合HX717,因为他们两个本来就是连在一起的。同时由于这种方式基准的输入电流可以忽略,也适合HX717这类的ADC。


原理图解释:HX717的3号脚为LDO输出和基准输入,通过R3,R4的分压反馈到4号脚,决定了LDO的输出电压为3.3V。这个电压通过基准电阻R2输出给PT100,然后返回来,接到基准电阻R1,最后通过一个MOS管接入到地。
R1和R2为两个3kΩ的基准电阻,相当于一个6k的基准电阻。之所以用两个基准电阻,是因为这样就可以使PT100信号的共模电压处于3.3V的中间点1.65V,ADC线性会好一点。MOS管是用来系统调零用的,当MOS管断开时,流过PT100的电流就为0。此时ADC的输出值,就可以作为系统的零点。这样除了可以补偿ADC零点的漂移外,还能补偿系统回路里部分接触电势的影响。
PT100上的电压和导线电阻上的电压,被分别接到HX717的两个ADC通道进行测量。基准电阻采用了10ppm/℃的电阻,两个的话也只要两毛多钱,其他都是些电容、电感滤波器件。系统整体的成本是非常低的。测量部份也就三块钱左右。



八、测量结果的计算
全新测量方式,解决了电路上存在的问题。但是带来一个更大的问题就是,测量出来的AD码和待测电阻不是成线性的关系,需要进行一个非线性修正。同时怎么对系统进行校准,怎么把校准做到可批量生产,也是一个巨大的难题。
通过matlab拟合求解,我找到了一种可以批量补偿的算法流程。其中需要应用一些特制的工具经行校准,处于保护的目的,这里就不公开方法了。大家需要用这个技术的话,可以直接用我的校准好的成品或半成品。

九、效果展示
测量特性如下:
        RTD类型:Pt100、Cu100、Cu50可选
        测量方式:三线制、两线制可选
        温度测量范围:-200℃~859℃,分辨率:0.01℃,精度:0.1℃(典型值)
        总电阻测量范围:0Ω~400Ω, 分辨率:1mΩ,精度:0.02%(典型值)
        导线电阻测量范围:0~40Ω,  分辨率:1mΩ,精度:0.2%(典型值)
        测量电流:<0.55mA
        增益温度漂移:15ppm/℃(典型值)
        采样速度:10Hz、20Hz、80Hz可选

人到中年的我们,都活成了“唐僧”

朋友圈看到有人问:“看完《西游记》,你有什么感受?”
一条留言引发不少朋友共鸣:
“年少读羡慕孙悟空的无所不能,中年读却希望像唐僧一样大智若愚。”
半生已过,总想看淡生活起落,毕竟难逃人生无常。

唐僧有句话说:
“心生,种种魔生;心灭,种种魔灭。”
人生如剧场,世人演尽悲欢,却沉溺其中难以抽身。
到了中年,被欲望牵绊的无力感席卷而来,才渐渐顿悟:
置于喧嚣中,活成“唐僧”,便是赢家。

人在职场,容错

如果把“西游取经”这项重任,当成是职场历练,那么,唐僧就是这场考验的领导者。
他表面上优柔寡断,实际上却对“取经大计”运筹帷幄。
他可以不厌其烦地教化鲁莽冲动的孙悟空,也可以对凡心未泯的猪八戒一再包容。
唐僧的智慧,不在于降妖除魔,而在于能兼容对错。
正如那句话:“真正的成熟,是一半追求美好,一半包容残缺。”
犯错在所难免,容错最是难得。
人在职场,做人应该像弹簧一样自如,容他人短,路才会越走越宽。

不久前,朋友和我讲起一件事,我感悟颇深。
在一次回馈客户的周年庆中,朋友所在的项目组做了一个活动,反馈并不好,不少客户投诉到了领导那里。
负责人建议领导找小组成员谈话分析原因,解决现有问题。
领导没有接受这个提议,而是说了这样一段话:
“我们应该看到他们小组在组织活动时的工作热情。如果因为一些小问题,就开会说他们,那他们以后再组织活动时就放不开手脚,遇到类似的活动就不敢放胆去做了。”

因此,事后他用鼓励代替指责,肯定了小组成员的业务能力。
而小组成员也主动对这次活动进行了反思总结:反馈不好说明准备不够充分,下次避免犯同样的错误,一定会做得更好。
正是领导懂得“容错”,不给员工强硬施压,才让他们有足够的空间自我发挥。
优秀的人才在职场中,大都有自己的想法,他们也会将工作结果与自己的责任联系在一起。
就像行为学家莱曼·波特说的:“总盯着下属的错误,是领导者最大的错误。”
降低工作效率的,从来都不是犯错,而是无效指责。
把创新变成现实的是天才,而提出创新尚未成功的是人才。
相比之下,前者寥寥无几,后者才是每个企业需要的“建设者”。
管理学上的“波特定律”也指出:
遭受批评时,员工只会记住开头部分,剩下的完全忽视,原因在于他们忙于思考论据来反驳开头的批评。
计较错误,结果会适得其反;懂得容错,才能事半功倍。

人在情场,克制

唐僧面对女色,可以做到不动凡心,但与女儿国国王的相遇,却是他的一场情劫。
他一心向佛,只得闭目诵经中来逃避女儿国国王的表白。
但他的紧张与挣扎,让女儿国国王看穿了他的内心:
“你紧闭双眼还说什么四大皆空?既然真的四大皆空,又怎会不敢看我?”
唐僧闭目回复道:“我已经许身佛门,若有来生……”
简短的对话,情愫了然。
有人说:“恰似无情最有情。”
有些情愫,就像跳动的篝火,离得太近会灼伤自己,离得太远会失去意义。

人到中年,克制感情,珍惜相伴余生的爱人,人生的路才会敞亮。

想起金岳霖对林徽因的感情,沉默而深情。
金岳霖曾这样评价林徽因:“她是一个很特别的人,令人常常不知道她在想什么。”
正是这份独特的魅力,让金岳霖对她欣赏不已。
但此时林徽因已经成婚,而他为了守护心中那份情愫,一直站在离她最近的地方。
他会参加林徽因和丈夫每周在家举办的沙龙聚会,也会跟随她们一家的足迹成为对方的邻居。
从相识到相知,金岳霖与林徽因夫妇的感情,是朋友,更是亲人。
金岳霖不曾向林徽因表达爱慕,但细节中都是欣赏。
他曾在林徽因的葬礼上为之写了这样一对挽联:
一身诗意千寻瀑,万古人间四月天。

爱到深处,便是成全。

泰戈尔曾说过:“爱不是占有,也不是被占有,爱只在爱中满足。”
细细想来,的确如此。
让人痛苦的,不是得不到,而是不甘心。
爱你的人,会向你奔赴而来;你爱的人,会在权衡之下做出自己的选择。

人在情场,不必筑墙尘封内心,懂得克制也是一种守护。
人在钱场,心定

不知你是否还记得猪八戒在高老庄的场景?
有人对猪八戒的贪婪感到厌恶,也有人为唐僧拒绝诱惑而点赞。
高太公为了感激唐僧让女儿脱身,他将一红漆丹盘以及二百两碎银,送给师徒三人当作取经的盘缠。
但唐僧推辞道:“我们是行脚僧,逢处求斋,怎敢受金银财帛?”
不被钱财诱惑,才能心如止水。
被金钱束缚的人,会在欲望中迷失。

经济学上中的“巴莱多定律”指出:
在这个世界上,80%的人享有世界财富的20%;剩下的80%财富,掌握在少数的20%的人手中。
所以,我们与他人之间存在财富的差异,也是一种常态。

而我们需要做的,不是去关注别人的成功,而应该重视自身的成长。
这样,才能保持心定,不被利益左右。

最近的热播剧《风吹半夏》中,有这样一幕很值得深思。
郭启东作为公司副总经理,利用职务之便在各种工序中偷工减料,从中牟利。
在半夏创业初期,他更是为了获得高额利息,越过上级私下拿出百万支票借给半夏。
但这种“雪中送炭”的行为,却不是出于情义,而是他觉得有利可图。
因此,当市场钢价下跌,半夏的废钢积压在堆场无法回本时,主动给半夏送钱的郭启东,也成了第一个落井下石的人。
他不仅催促半夏连本带利还钱,还威胁半夏不还钱就起诉,他想要低价回收半夏的废钢。
这种见利忘义的行为,也让半夏看清了他的虚伪。
等到后来钢价回暖,半夏转身就成了圈子内的成功人士。
这时,做生意的人聚到一起找半夏谈合作,借着给大家还钱的机会,她当着郭启东领导的面,揭开了他“吃回扣”的不耻行为。
最后,郭启东被自己的上级亲手送进了警察局。

而酿成这个悲剧的原因,不外乎一个“钱”字。
在钱场上,不为钱财所迷眼,保持初心,才能拥有泰然自若的定力。
利益面前,你对金钱的态度,就是你做人的态度。
见利忘义,往往会因小失大。
金钱于我们而言,心定,那便是自由;心动,那便是枷锁。
取之有道,用得其所,才是真正的聪明人。

有一句话说:
“中年以前的人生是加法,充满希望;中年以后的人生是减法,不断沉淀。”
的确,年少时向外走,中年时向内求。

人生过半,我们虽然未经唐僧的八十一难,但依然要在世间百态中寻找生命的意义。
有些坎,难走,但迈过去就是柳暗花明;
有些人,难忘,但放下心才能找到归处;
有些事,难做,但面对才能摆脱烦忧。
来日方长,看淡人生起落,不显不露,最是难得。

愿你我都能容错,克制,心定,在充满变数的日子里找到属于自己的那束光。

小时候,喜欢悟空的正直勇敢; 成年后,欣赏八戒的玲珑可爱; 工作后,佩服沙僧的任劳任怨; 直至人到中年,才终于醒悟,原来自己也是那个肉体凡胎的唐僧。

使用 Apache FOP 2.3 + docbook-xsl-ns-1.79.1 转换 Docbook 5.1 格式的 XML 文档成 PDF/RTF 文件

使用 Apache FOP 2.3 + docbook-xsl-ns-1.79.1 转换 Docbook 5.1 格式的 XML 文档成 PDF/RTF 文件

使用 Docbook 编写折桂打印平台系统、折桂上传平台系统的产品文档,原因基于如下两点:

第一,文档的不同章节,可使用不同的 .xml 文件,由不同人员分别撰写,图片文件在XML文章中用相对目录方式指定,最后用一个 DOS 命令即可组装生成大 PDF 文件。
第二,文章内容分散在 .xml 文件中,解决 SVN 可跟踪各次修改的内容。
第三,各章节的格式,使用一个 .xsl 文件,即可统一文档风格。章节编号在组装时自动生成(这个功能貌似 word 也有,只是不同大章节里的小章节顺序号有时错误需要人工调整)。

大的 Word 文件难改,痛点大家都知道:

在大文件里改几行字,打开慢、保存慢;

如果要保留修改前的备份,文件也很大。

 

Docbook 格式的文档,使用 XML 格式,各个 XML node 的名字也很语义化,基本上看上去就懂。几个主要 XML node 从大到小为:

book(书), chapter(章), section(节), para (段落) 。

section(节)可以有多个层次,比如 sect1, sect2, sect3, sect4,sect5 。

环境搭建:
a. 下载 docbook 转换所用样式 xsl:
https://sourceforge.net/projects/docbook/files/docbook-xsl-ns/1.79.1/ 里的文件: docbook-xsl-ns-1.79.1.zip

b. 解压缩 docbook-xsl-ns-1.79.1.zip 到 c:\my_apps\docbook-xsl-ns-1.79.1 ,目录结构为:
C:\my_apps\docbook-xsl-ns-1.79.1\README
C:\my_apps\docbook-xsl-ns-1.79.1\fo\docbook.xsl

c. 下载 docbook 转换所用工具 Apache FOP:
https://xmlgraphics.apache.org/fop/download.html 里的 fop-2.3-bin.tar.gz 或 fop-2.3-bin.zip

d. 解压缩 fop-2.3-bin.tar.gz 到 c:\my_apps\fop-2.3 ,目录结构为:
C:\my_apps\fop-2.3\README
c:\my_apps\fop-2.3\fop\fop.bat

将 c:\my_apps\fop-2.3\fop\ 设置到 windows path 路径中(控制面板\系统和安全\系统, 高级系统设置, 高级,环境变量,系统变量,path, ),后续可方便使用:C:\my_apps\fop-2.3\fop\fop.bat

e. 如果 C: 盘空间不足,可将上述文件放在 D:\my_apps,然后开一个管理员权限的 DOS 窗口,进行映射目录:
mklink /d c:\my_apps D:\my_apps

f. 下载并安装 Java 运行支持库(JRE, 或 JDK).
Apache FOP 运行需要 Java.

g.  在某个文件目录,比如 C:\projects\zhegui_print_upload\050-Deploy-docs,新建 xlst 文件 installation-zg_prt_uld-book.xsl,引用已有的 docbook.xsl,并加上一些定制化参数,比如中英文使用不同的字体。
———————————–
使用 Apache FOP 2.3 + docbook-xsl-ns-1.79.1 转换 Docbook 5.1 格式的 XML 文档成 PDF/RTF 文件
https://blog.51cto.com/u_15127572/2765809