做工业温度采集这块儿,我得先坦白一句:很多时候不是芯片性能不够,是接口和系统设计把精度拖死的。最近刚交付的一套温控采集板,核心方案用了一颗 ADS122U04IPWR 加 PIC18F97J94,应用场景一边是工业现场测管道 PT100 介质温度,一边是 HVAC 里常见的风管、冷水管 NTC 测点。板子的目标写得很直接:温度误差控制在 ±0.1℃ 以内,长时间通电不漂,成本控制在同类方案的中低档,能对接主流 PLC 或者楼宇自控系统。这套东西调完以后,我觉得整个设计过程值得写下来,给后面要做温度类产品的朋友做个参考。
这篇文章不打算讲那种"装个库就完事"的玩法,而是尽量把芯片选型、模拟前端、固件计算和调试踩坑完整串起来。适合正在做温度变送器、恒温控制器、暖通空调温控面板,或者想把手头 MCU 方案换成更低成本组合的嵌入式工程师。里面的思路和代码片段可以直接拿来用,但我尽量把"为什么这么做"讲透,不然换颗芯片你照样会踩同一个坑。
1. 方案选型:UART ADC和PIC18的组合逻辑
1.1 为什么选ADS122U04IPWR做测温前端
先说说这颗 ADC。ADS122U04IPWR 是 TI 的一颗 24 位 ΔΣ ADC,TSSOP-20 封装,工业级温度范围,内置一个低噪声可编程增益放大器(PGA,1 到 128 倍)、两个可编程激励电流源 IDAC、一个内部温度传感器,以及最关键的——UART 从站接口。四路输入通道可以接两路差分信号,也可以配置成单端,做多路温度采集是够用的。
我早期做这类应用时,默认方案是 SPI 接口 ADC 加单片机,比如 ADS1220 配 STM32。SPI 本身没什么问题,但一旦测点离主机比较远,或者系统里要走隔离,SPI 那套时钟、片选、同步时序就变成麻烦来源。线长超过几十厘米后,SCLK 和 MISO 的时序裕量会变差,隔离器还会增加额外延时,板子上为了信号完整性又得费一番功夫。而 ADS122U04 直接走 UART 两线通信,和单片机自带的串口对接,几乎不占外设资源。尤其是要做 RS-485 总线测温节点或者光电隔离输入模块时,UART 这个特点会被无限放大。
另一个让我下决心选它的原因是内置 IDAC。做 RTD 测温,恒流源激励必不可少,很多项目为了精确会外接一个电流源芯片,或者用运放搭压控恒流源,成本高、调试烦。ADS122U04 内部有两个可设电流的 IDAC,直接用来给 PT100 做激励,链路一下子简单很多。它还内置了低漂移参考电压源,虽然后来我们用的是外部 RREF 做比例测量,但初期评估板靠内部参考就能快速验证功能,这点对前期软硬件联调很友好。
封装也值得说一句:IPWR 后缀指 TSSOP-20 宽体封装,引脚间距够大,手工焊接和小批量回流都不成问题。温度范围是 -40~125℃,放在工业配电柜里绰绰有余。对温度传感器来说,ADC 自身的温漂往往比线性度更讨厌,ADS122U04 这颗在温度特性上表现中规中矩,配合校准可以稳定在 0.1℃ 量级。
选型对比时我也考虑过 ADS124S08 和 ADS112U04。前者性能更好,但价格和封装都偏大,适合做六路以上的高精度采集卡;后者同样带 UART,但位数低一些、通道少一些。就普通工业/HVAC 项目来讲,四个通道、24 位、UART 接口的 ADS122U04 性价比是最合理的。
1.2 PIC18F97J94:MCU这端并不只是"读数"
选 MCU 时我有个习惯:先看外设缺口,再看主频,最后才看价格。这块板子除了读 ADC,还需要驱动一个段码液晶屏显示实时温度,处理几个按键输入,跑一个比较器或 PID 逻辑去控制风机盘管阀门,再留一路 UART 给上位机或 485 总线。把这些需求一列,PIC18F97J94 的优势就出来了。
PIC18F97J94 是 Microchip 的 8 位单片机,80 脚 TQFP 封装,自带段码 LCD 驱动模块,可以直接驱动常见的 3V 段码液晶面板,不用外挂 HT1621 之类的驱动芯片。楼宇里最常见的那种数显温控器面板,它就是干这事儿的。主频最高到 64MHz,Flash 容量在 128KB 级别,RAM 虽然不算大,但跑温度采集、换算和显示绰绰有余。
更关键的是它有好几个独立 UART 模块。我们用其中一个和 ADS122U04 通信,另外一个接 RS-485 收发器连接上位采集系统。有些 8 位 MCU 只有一个模拟串口或者得靠软件模拟,温度采集线程一旦被中断拖住,就有丢数据风险,而 PIC18F97J94 的硬件串口是独立外设,缓冲区交给中断,主循环只管处理转换结果。再加上低功耗模式做得不错,休眠时整机电流可以压到毫安级别以下,对 24V 供电的 HVAC 控制器来说,电源都不用特意加大。
这里有个容易被忽略的点:PIC18F97J94 的内部 ADC 是 12 位的,很多人问为什么不直接用。原因很简单,12 位分辨率在 0~100℃ 范围内理论最小分辨率大约 0.024℃(这还得是满量程 5V 才有的理想值),加上内部参考电压温漂大,做 0.1℃ 精度根本不现实。所以 MCU 内部 ADC 我留作监控电源电压等辅助用途,精确温度通道全部交给外部 24 位 ADC。这种分工是仪表方案里很常见的做法。
编译环境我用的是 MPLAB X 加 XC8 编译器。说句实话,它的代码风格和 ARM 生态差别挺大,寄存器操作很直白,适合小工程。XC8 对 C99 支持不错,写个状态机绰绰有余。如果是刚入门的朋友,别一上来就整 FreeRTOS,几十 KB 的 Flash 跑温度采集任务,裸机状态机反而更可控。
2. 硬件设计:传感器接入、电源与布线要过的坎
2.1 PT100三线制怎么接,四线制又好在哪
传感器层面,工业现场十有八九是 PT100,HVAC 里 NTC 也占了不小比例。以 PT100 为例,它 0℃ 时电阻是 100Ω,灵敏度约 0.385Ω/℃。也就是说,想要 0.1℃ 的精度,电阻测量误差必须控制在 0.04Ω 以内。这对 ADC 的噪声和激励电流的稳定性都是实打实的考验。
两线制接法最简单,传感器两根线一接就完事,但致命问题是引线电阻串进了测量回路。想象一下,从配电柜拉 50 米两芯屏蔽线到测点,0.5mm² 铜线电阻大约是 0.036Ω/m,来回 100 米就是 3.6Ω,折算成温度误差接近 9.4℃。这个数值在工业现场完全不可接受,所以两线制只适合近距离、精度要求低的应用。
三线制是工业温度变送器最主流的做法。原理是让两根导线上流过大小和方向相匹配的激励电流,把引线电阻产生的压降变成共模信号,再由 ADC 的差分输入把它抵消掉。ADS122U04 的两个 IDAC 正好能派上用场:一个 IDAC 通过一根引线给 PT100 供电流,另一个 IDAC 从第三根引线流回,最后 ADC 测的是传感器两端真实的差分电压,线阻的压降因为对称性大部分被抵消。实测中,三线制在 50 米线长下能轻松做到 0.1℃ 以内,经济性和精度平衡得很好。
四线制就属于精益求精了:两根线专供电流流过,另外两根独立的感应线不取电流,感应线上的压降几乎为零,线阻影响可以忽略。代价是多一根线缆和更多端子。只有标准测试设备、实验室测量或者对精度有更高要求的场合才需要上四线。这次项目里工业侧模块用三线制,HVAC 侧因为距离短,两线 NTC 加校准也能接受。
NTC 热敏电阻在 HVAC 里非常普遍,因为便宜、灵敏度高。它的问题是复现性差、非线性严重,而且需要电流激励,自身发热会带来误差。我们选 10kΩ@25℃、B 值 3435 的常用型号,激励电流设在 100μA 左右,自热功率才 0.1mW,在气流里几乎可以忽略。NTC 的分压电阻取值要仔细算一下,让整个测量范围都落在 ADC 的最佳输入范围内,不能只盯着 25℃ 那一点。
关于热电偶,很多人问这套方案能不能直接测 K 型热电偶。答案是可以的。热电偶输出只有几十微伏每摄氏度,PGA 要开到 128 倍,冷端补偿可以用 ADS122U04 内部温度传感器。但说实话,工业现场热电偶测温用这套方案不是最优解,因为热电偶本身精度有限,冷端补偿依赖探头安装位置的热质量,后面调试经验里我会再提。
2.2 电源与参考电压:你大概率忽略的温漂来源
很多测温板设计失败的根源不在 ADC 位数,而在参考电压和电源。
先说电源。ADS122U04 的模拟电源 AVDD 和数字电源 DVDD 建议用同一个干净的 3.3V 电源。我板子上用的是低压差线性稳压器 LDO,输入侧直接挂 12V 或 24V 的工业电源,LDO 输出 3.3V。如果是电池供电或者节能要求更高的场景,可以用 DCDC 先降到 3.6V,再加 LDO 二次稳压。但 DCDC 的开关纹波一定要用 LC 滤波压下去,否则 ADC 读数会周期性跳动。实测过同一个板子,直接 DCDC 供电和 DCDC+LDO 供电,ADC 噪声差了将近三倍。
再讲参考电压。ADS122U04 的内部参考电压不是不能用,但它的初始精度和温漂是有限制的。如果你测量的是绝对温度而且不打算校准,内部参考可能带来零点几度的误差。更聪明的做法是引入比例测量:用一个外部精密电阻 RREF 作为参考源,同时让同一个 IDAC 电流流经 RREF 和 RTD。这样 ADC 的输出码变成 RTD 与 RREF 的比值,IDAC 电流的波动、参考电压的漂移都被相互抵消了。项目里我选了 RREF=1kΩ、0.01% 精度、15ppm/℃ 温漂的金属箔电阻,效果很好,长时间通电的读数漂移远小于直接参考方案。
参考电阻的选值也有讲究:要让 IDAC 电流流过 RREF 产生的电压正好落在 ADC 参考电压输入允许范围内。比如我们设的是 1mA 电流,RREF 取 1kΩ,参考电压就是 1V,这个值在数据手册建议的参考输入范围下限以上,完全没问题。如果 RREF 取太大,参考电压超过上限,内部参考电路会出问题;取太小,信噪比又吃亏。计算很直接:VREF = I_IDAC × RREF。
PCB 布局这件事我必须多写几句。模拟信号线尽量短且等长,差分对要贴在一起走,地平面在 ADC 下方保持完整,不要断开。PIC 的晶振、LCD 驱动走线、485 收发器都要与模拟走线保持距离。我见过有人在 ADC 旁边放了一块 DCDC 电感,结果读数低三位一直在跳,挪开两厘米以后立刻稳定。温度上也要注意热源:LCD 背光、功率电阻、MCU 自身都是发热器件,别贴着 ADC 放,否则你测到的不是传感器温度,而是板子的温度梯度。
2.3 工业现场防护:TVS、滤波和地线处理
工业场合跟实验室不一样,传感器线可能从电机、变频器、电磁阀旁边走,感应出的尖峰电压和共模干扰非常可怕。即使暂时不做电磁兼容认证,也建议按最低防护设计输入通道。
我在这块板上给每个模拟输入端子加了三样东西:一个双向 TVS 管负责泄放浪涌,一个 10Ω 的串联电阻限制电流,再配合 100nF 的差模电容和 10nF 的共模电容做滤波。这样在传感器开路、接错线、或者雷击感应浪涌进来的时候,ADC 输入引脚能保住命。TVS 管有结电容,要选低结电容型,通常几十皮法,而且位置要放在串联电阻之前,这样高频干扰先被电阻衰减,TVS 寄生电容的影响会变小。
UART 通信线上也要做防护。短距离直接用 RC 滤波加 TVS,长距离一定走 RS-485。我们一开始为了省成本,直接用 TTL 串口拉了 20 米线,结果发现偶尔乱码,后来换 485 收发器立马就好了。RS-485 那边 A/B 线上各加一个 TVS 到地,终端电阻 120Ω,屏蔽层单点接地。
地线设计可能是整个板子最容易翻车的地方。模拟地、数字地、机壳地在教科书里经常被要求分开,但实际板子面积有限。我的习惯是:把 AGND 和 DGND 在 ADC 和 MCU 下方用 0Ω 电阻或磁珠单点连接,模拟地尽量干净,不成为数字回流路径的一部分。485 隔离如果经费允许,最好用数字隔离器把系统地和现场总线地隔开,隔离电源用一个便宜的隔离 DCDC 模块。我做第二批样机时才上隔离,之前的共模干扰问题基本绝迹。
3. 固件实现:从UART配置到温度值输出的完整链路
3.1 ADS122U04寄存器配置与读取时序
固件部分,先把整体数据流串一下:PIC18F97J94 上电后初始化系统时钟和串口,然后向 ADS122U04 发送配置命令,配置通道选择、增益、数据速率、IDAC 电流和参考源;接下来进入主循环,每 100ms 发起一次温度转换,等待转换完成,读取 24 位数据,经过滤波和计算输出温度值。
ADS122U04 的串口命令分为几大类:写寄存器、读寄存器、读转换数据、启动或停止转换等。命令的具体编码请一定以你手里的数据手册为准,不同批次手册可能有细节差异。我写代码时习惯用一个函数封装命令发送:
// 伪代码示意,命令码请对照 ADS122U04 当前数据手册 static void ads122u04_send_cmd(uint8_t cmd) { while (!uart_tx_ready()); // 等待 EUSART 发送空闲 uart_write(cmd); } static void ads122u04_write_reg(uint8_t reg_addr, uint8_t value) { uart_write(0x42); // 写寄存器命令基础字节(占位示意) uart_write(reg_addr); uart_write(value); }配置里最有讲究的是增益和数据速率。我们测 PT100 时,RTD 在 0℃ 时压降约 0.1V,在 150℃ 时约 0.157V,信号幅度并不小,所以 PGA 用 1 倍就足够。真正决定噪声的是数据速率:ADS122U04 在低速率下会开启更多的数字滤波,噪声更低;高速率响应快,但噪声明显变大。实测下来,20 SPS 时峰峰值噪声大约 1~2 LSB,200 SPS 时就要到 5~8 LSB 了。温度测量不是高速采集,20 SPS 足够,控制环路需要快速响应时再临时提到 40 SPS。
多通道采集时有个小技巧:切换 MUX 之后,第一次读取的数据往往不可靠,因为有建立时间问题。我们的做法是切换通道后丢弃前 2~4 次结果,等 ADC 稳定后再采 8 次做平均。这会让单通道响应稍慢,但对温度这种慢变量完全无感。
读转换数据时,24 位结果要按二进制补码处理,高字节先输出。如果做差分输入还要注意符号位扩展。我的做法是读回 3 个字节后拼成 int32_t,再按比例换算成浮点数,不要让中间结果被整型溢出坑到。
3.2 从ADC码到摄氏度的三步计算法
拿到 24 位原始码之后,剩下的工作就是把它换算成电阻,再从电阻算出温度。我把这步拆成三步,每一步都有明确的物理意义,方便调参。
第一步是原始码到电阻或电压比例。由于我们用了比例测量,公式比想象中简单:
RTD = RREF × (code / code_fs)
其中 code_fs 是满量程码。为什么不需要知道具体的参考电压?因为 ADC 输出本来就是"输入电压 / 参考电压"的数字比例,而激励电流同时流过 RTD 和 RREF,参考电压是 I×RREF,输入电压是 I×RTD,两个 I 约掉,只剩下电阻比。温度系数里最讨厌的电流漂移和参考温漂,在数学上直接消失。这也是我在测试阶段从 VREF 派方案切到比例方案的最大动力。
第二步是从电阻到温度。PT100 的电阻-温度特性最权威的是 IEC 60751 标准,工程上用 Callendar-Van Dusen 方程查表已经足够。对 0℃ 以上,核心是:
R(t) = R0 × (1 + A×t + B×t²)
R0 = 100Ω,A = 3.9083e-3,B = -5.775e-7。反解温度要解二次方程,代码量不大:
// 已知PT100电阻求温度(0℃以上简化版) float pt100_res_to_temp(float r) { float A = 3.9083e-3f; float B = -5.775e-7f; float c = 1.0f - r / 100.0f; return (-A + sqrtf(A*A - 4.0f*B*c)) / (2.0f*B); }0℃以下需要加第三项 C×(t-100)×t³,公式是现成的,代码稍大一点。如果不想直接解方程,也可以用二分法查表,初始化时把 -50~250℃ 的电阻表算好,运行时用二分查找加插值,速度很快,代码反而更好维护。
第三步,如果是 NTC,就不能用这个公式了,要用 Steinhart-Hart 方程或者查表。NTC 的 B 值模型精度有限,我建议项目上至少做两点校准,把 A/B/C 系数拟合出来。我们用的 10k NTC 在风管温度范围 -10~50℃ 内,校准后误差轻松在 ±0.2℃ 以内。快速代码示意:
float ntc_steinhart_hart(float r, float a, float b, float c) { float lnr = logf(r); float invT = a + b*lnr + c*lnr*lnr*lnr; return (1.0f / invT) - 273.15f; }还有一个细节必须讲:参考电阻 RREF 本身也有温漂。如果你希望批量产品长期漂移小,RREF 的温度系数一定要选 15ppm/℃ 以内,最好是 5ppm 级别。这枚电阻决定了所有通道的长期稳定性,不能省。
3.3 数字滤波与校准:让读数稳下来的关键
就算有了 24 位 ADC,工业现场的电噪声还是有可能在读数上留下毛刺。我的做法是两级滤波:第一级是滑动平均,采 8 个点平均一次,去除高频噪声;第二级是一阶低通:
static float filt = 0.0f; void filter_update(float raw) { filt = filt * 0.8f + raw * 0.2f; }系数 0.2 对应的时间常数大约几秒,对 HVAC 温控来说响应足够。这里要小心:如果做的是快速响应温度报警,滤波系数别调太小,否则会掩盖真实温度变化。我见过一个朋友把滑动窗口开到 64 点,结果传感器都跑到 80℃ 了,仪表还显示 75℃,报警直接滞后,这是要出事的。
校准环节是产品能到 0.1℃ 的最后一道关卡。每个传感器端子出厂前至少要做两步:一是零点校准,用冰水混合物或者精密电阻箱模拟 0℃ 状态,记录 ADC 原始偏移;二是增益校准,用精密电阻箱设定一个接近测量范围的电阻值,比如 200Ω(对应约 260℃),记录增益偏差。我把两个校准值参数化,直接存到 PIC18F97J94 内部 EEPROM 里,每次上电读取,计算温度时先根据校准值修正原始电阻,再做温度换算。这样即使 ADC 和参考电阻存在初始偏差,出厂后也能保证一致性好于 ±0.1℃。
校准环境也要注意,别在普通室温下做。我们是在恒温槽里完成零点校准的,冰水混合物其实很实用,但要让探头泡十分钟以上等温度彻底稳定。每次测量前让板子预热至少 15 分钟,因为头一分钟 ADC 和 RREF 的温度梯度最大,读数漂移也最明显。如果想把预热环节省掉,PCB 布局尽量让热源远离敏感器件,软件里再做温度补偿,两者结合能显著缩短等待时间。
4. 调试实录:现象、原因与排查方法
4.1 问题速查表
调试这套板子,我前后花了将近三周,主要折腾在几个问题上。整理了一张现象、原因和解决方法的速查表,比贴截图实用得多。
| 现象 | 可能原因 | 排查建议 |
|---|---|---|
| 读数跳动,低三位不停变化 | 电源纹波大、参考不稳 | 换 LDO 供电,检查 RREF 布线,示波器测 VREF |
| 读数整体偏高且随温度漂移 | 传感器自热、激励电流过大 | 降低 IDAC 电流,改善传感器散热条件 |
| 读数偏低且固定值 | 线路接触电阻、端子氧化 | 换镀金端子,重新压线 |
| 切换通道后第一帧异常 | MUX 建立时间不足 | 丢弃前几次数据,等待稳定后再采 |
| UART 偶发乱码 | 线长、干扰、电平不匹配 | 使用 485 收发器,增加 TVS 和屏蔽 |
| 开机读数慢慢爬升 | 板子预热导致热梯度 | 远离热源,增加预热流程 |
| 所有通道读数同步漂移 | IDAC 电流变化、RREF 温漂 | 换低温漂 RREF,确认比例测量链路 |
| 实测温度比标准表低 0.3℃ | 增益校准不准 | 用精密电阻箱做两点校准 |
这里要特别提醒第一项:读数跳动时,别急着改代码,先去量 ADC 的 VREF 引脚。我们当时看到跳变是十几微伏级别,看起来很小,但 24 位分辨率对参考电压上的交流成分非常敏感,一点点毛刺就会反映到温度值上。示波器一看 VREF 上有 10mV 的纹波,根源是 DCDC 直接供电,改成 LDO 后问题消失。这比调任何数字滤波都治本。
4.2 从工程产品角度看,还有几个容易被忽略的坑
功能调通只是第一步,真正交付的时候还有几个坑等着。
第一个坑是端子引脚氧化。工业现场空气里可能有硫化物或湿气,镀锡端子两个月后接触电阻就会变大,如果恰好有一根线接触不良,三线制的对称性被破坏,误差马上变大。后来我们改用镀金端子,并在板子表面涂三防漆,问题才缓解。别小看这种机械层面的问题,它比电气设计更容易让客户投诉。
第二个坑是 NTC 和 RTD 混用时标定混乱。HVAC 侧风管用 NTC,工业侧水管用 PT100,两条测量链路的校准系数完全不同。我们的软件里给每个通道打了一个"传感器类型"标签,切换时自动换公式,同时在 EEPROM 里保存每通道独立的校准值。建议做这类项目的朋友从一开始就用结构体管理通道,别写一堆 if 分支,不然维护到后期你会想骂人。
第三个坑是更新率需求差异。HVAC 温控基本每秒一次足够,但工业报警信号要求 200ms 内响应。我们用定时器每隔 100ms 唤醒一次,根据当前通道类型动态调整数据速率和滤波深度:报警通道用 40SPS 加轻度滤波,显示通道用 20SPS 加深滤波。固件里预留了这种参数化接口,后来客户提需求时只改了两行配置就解决了。
4.3 实测数据与验收结果
板子打样后统共做了三轮实测,结果如下:
PT100 三线制、1mA 激励、20SPS,在 0℃ 冰水混合物中连续采集 1 小时,温度均值 0.018℃,峰峰值 0.05℃。PT100 三线制在室温环境中与二等标准铂电阻温度计比对,差值在 0.03℃ 以内。NTC 10k 风管温度实测,在 5~45℃ 范围内与标准温湿度传感器比对,最大偏差 0.15℃。整板功耗方面,PIC 运行加 LCD 显示加 ADC 连续转换,总电流约 8mA;进入休眠但保留定时唤醒时,平均电流约 300μA。需要说明的是,LCD 驱动在休眠时必须常开,只能靠分时刷屏来省电。
这些数据是在屏蔽条件良好的实验室环境里测的,现场叠加电磁干扰后可能会差一些,但三线制 PT100 本身抗共模能力不错,实际项目里用户反馈的稳定性与实验室结果基本一致。
5. 扩展思考与产品化建议
这套方案做完后,我在项目总结里写了几条产品化建议,这里一起分享。
首先是通信架构。ADS122U04 的 UART 接口给了你一种很灵活的做法:把 ADC 和单片机做成一个温度采集小节点,通过 RS-485 挂到总线上,多个节点各自独立运行。如果想升级成远程 IO 模块,只需要更换 MCU 固件的通信协议,硬件不用动。我们后来把这套核心电路复制到了一个四通道 4-20mA 变送器上,只改了输出级电路,ADC 部分几乎原封不动。
其次是批量校准成本。很多人以为高精度等于多用校准时间,其实如果测量链路设计得好,校准可以非常快。我们工厂的流程是:整板老化 30 分钟、预热 15 分钟、上位机自动读取每个通道的 0℃ 和 100℃ 原始码、写入 EEPROM,单板校准时间不到 20 秒,完全在自动化测试架里完成。关键是校准点用精密电阻箱产生,不是真的去加热传感器,这样能省掉大量等待时间。
最后说优化方向。如果想进一步压低成本,可以把 PIC18F97J94 换成更便宜的 PIC16 或 AVR,前提是你不需要那么多 UART 和 LCD 驱动引脚。如果想把精度再推一个档次,外部参考电压可以换成专门的基准芯片,配合校准后长期稳定性会更好。不过这些都是锦上添花。就这次项目来说,这套组合在工业和 HVAC 温度采集这个框子里,是一个成熟可靠的答案。这轮项目做完我自己最大的收获,其实是把"测温精度"这件事从玄学变成了工程:传感器怎么选、激励电流怎么给、参考电压怎么取、校准怎么做,每一步都有明确的依据。这套组合现在还在产线上跑着,至少我这个项目,没有再为温度精度操过心。