UART接口24位ADC与PIC18F55K42组合:长距离高精度温度采集方案
这几年做 HVAC 和工业温度采集方案,大家最熟的做法就是一颗 SPI 接口的 24 位 ADC 挂在单片机旁边,MISO、MOSI、SCK、CS 四根线来回倒腾。这套路本身没问题,但真放到现场去用,总会遇到几个让人头疼的场景:传感器和主板距离拉长之后 SPI 时序扛不住、现场干扰导致通信偶发错乱、隔离成本居高不下。直到我拿到 ADS122U04IPWR 这颗带 UART 接口的 24 位 ADC,配合 PIC18F55K42 单片机重新搭了一套温度采集方案,才算是把这类问题一次理清楚。这篇文章就把整个设计过程、寄存器配置、校准方法和调试踩坑记录完整写出来,适合正在做 HVAC 温控器、工业变送器或者高精度温度采集节点的工程师参考,也适合第一次接触 UART 接口 ADC 的开发者快速上手。
1. 项目概述:这条 ADC 和单片机组合到底解决什么问题
1.1 为什么选 ADS122U04IPWR:UART 接口的 24 位 ADC 是少数派
市面上温度测量用的高精度 ADC,绝大多数是 SPI 或者 I2C 接口。SPI 速度快、时序可控,是工程师最熟悉的选择;I2C 胜在引脚少、可以挂多设备。但 ADS122U04 走了一条少有人走的路,它直接用 UART 接口和主机通信。
这个选择在工业场景里其实非常实用。UART 是异步串行协议,不需要主机提供时钟,也没有严格的时钟相位要求,线缆拉长到两三米依然能稳定通信。更重要的是,UART 天生方便转 RS-485,加一颗收发芯片就能把传感器节点变成总线设备,很适合多节点温度采集系统。如果换作 SPI,长距离传输时要考虑时钟偏移、信号反射、片选噪声,隔离成本也更高。
ADS122U04IPWR 本身是一颗 24 位 Δ-Σ 架构 ADC,内部集成了可编程增益放大器(PGA)、两个可编程激励电流源(IDAC)、内部基准,还有一个可用于冷端补偿的温度传感器。RTD、热电偶、NTC、热敏电阻这些常见温度传感器都能直接接,不需要外挂精密恒流源或者电压基准。对 HVAC 这种成本敏感、又要保证精度的场景来说,外围元件越少,量产一致性越好,调试也越省心。
这颗芯片的从机地址可以通过 A0、A1 引脚配置,一条 UART 总线上最多可以挂四颗 ADC。如果需要八个通道,两片 ADC 并接在同一条 UART 线上,通过地址区分数据来源,这个组网能力是传统 SPI 方案很难直接实现的。
1.2 PIC18F55K42 的定位:MCC 生成代码与 PPS 引脚重映射
PIC18F55K42 是 Microchip 的 8 位单片机,属于 K42 系列。很多人看到 8 位 MCU 会先入为主地觉得性能不够,但做温度采集这种事,8 位单片机其实游刃有余。ADS122U04 输出的是 24 位数据,在 8 位平台上用 32 位变量做运算完全够用,真正重要的是 UART 外设的稳定性和代码生成的便利性。
K42 系列最让我满意的是它集成了 MCC(Microchip Code Configurator)代码生成器。在 MPLAB X IDE 里把想要的 UART 波特率、引脚分配、中断方式配置好,生成代码直接可用。对项目早期验证阶段来说,省掉了大量手写底层寄存器的时间,可以把精力集中在协议和校准算法上。
K42 还有一个很关键的特性:PPS(Peripheral Pin Select)引脚重映射。普通单片机的外设引脚是固定的,UART 的 TX、RX 只能接特定引脚,一旦 PCB 布局冲突就得改板。K42 系列允许通过配置把 UART、SPI、I2C 这些外设信号映射到大部分 IO 引脚上,这让 PCB 走线变得非常灵活。实测中我把 ADC 的 UART 放在 RB4/RB5,调试串口放在 RA0/RA1,互不打架,这在传统 8 位机上是很难做到的。
此外 K42 系列的耐温范围和供货稳定性也适合工业/HVAC 产品。很多商用 HVAC 温控器工作在 -20℃ 到 70℃ 的环境,工业现场可能到 -40℃ 到 85℃,这种工况下选择工业级温度范围的 MCU 是硬性要求,PIC18F55K42 有对应的工业级型号可选。
1.3 工业和 HVAC 两种场景的差异点
同一个方案要同时覆盖工业和 HVAC,听起来很美好,实际设计时要先认清两者的需求差异。
工业温度采集(比如管道温度、电机绕组温度、过程控制)通常要求更宽的量程,传感器线缆可能长达几十米,现场电磁环境恶劣,变频器、接触器、大功率电机随时会产生干扰。这种场景看重的是鲁棒性,宁可采样速度慢一点也要读数稳定,校准和可追溯性也很重要。
HVAC 场景(空调机组、供暖系统、新风系统)则不太一样。温度范围一般就在 -40℃ 到 150℃ 之间,传感器和主板距离通常不超过一两米,成本敏感度极高,而且产品要过 EMC 认证,批量一致性和长期稳定性比单个测量精度更重要。
我把这个方案的定位放在了一个折中点上:硬件上预留了 PT1000 和 NTC 两种传感器接口,适配两种场景;软件上通过配置寄存器可以切换采样速率和滤波深度,HVAC 产品用高速档加轻滤波,工业现场用低速档加深滤波和 CRC 校验。一个固件版本通过配置宏切换行为,后期维护压力小很多。
2. 核心硬件设计:从传感器到 ADC 再到 MCU 的完整链路
2.1 传感器选型:PT1000 与 NTC 在 HVAC 里的取舍
ADS122U04 几乎支持所有常见温度传感器,但硬件设计的第一步是决定用哪种传感器。
工业场景我建议用 PT100 或 PT1000。PT100 是经典选择,0℃ 时阻值 100Ω,灵敏度高;PT1000 的 0℃ 阻值是 1000Ω,在长线缆应用中优势明显。同样一段导线,PT1000 的导线电阻占信号比重比 PT100 低一个数量级,两线制接线时的误差也小得多。ADS122U04 内部 IDAC 给 PT1000 提供 500µA 激励电流,会产生约 0.5mW 到 1mW 的功率,对自热效应来说也是可以接受的。
HVAC 场景里 NTC 热敏电阻依然大量存在,因为成本确实低。但 NTC 的非线性严重、互换性差,而且长期稳定性不如 RTD。如果产品定位是高端商用空调或者精密恒温控制,我建议直接用 PT1000,整体物料成本多出来的部分可以通过简化校准流程补回来。ADS122U04 的最高 24 位分辨率完全能分辨 PT1000 在 0.01℃ 级别对应的电阻变化,不用担心量化误差。
热电偶则适合更高温场景(400℃ 以上),此时 RTD 的铅线成本和耐温都会成为瓶颈。ADS122U04 内部集成了温度传感器,可以在热电偶冷端补偿中直接测量芯片附近的温度,省掉一颗外置 NTC 或 DS18B20。我实测过,利用内置传感器做冷端补偿,在 25℃ 环境下精度能控制在 ±0.5℃ 以内,完全够用。
2.2 模拟前端与供电细节:测量精度很吃布局
ADS122U04 内部的 PGA 可以配置为 1 到 128 倍增益,配合 24 位 Δ-Σ 调制器,理论上能分辨微伏级的信号。但要达到这个精度,硬件布局绝对不能马虎。
给 ADC 供电我使用的是 AVDD 和 DVDD 分开供电的方案。ADS122U04 允许 AVDD 和 DVDD 用同一个电源,但实际测试中,如果数字电源噪声没有处理好,读数末位会明显跳动。我用了一个 3.3V LDO 给模拟部分供电,数字部分通过磁珠和 10µF + 0.1µF 电容隔离,电源平面尽量完整,模拟地单点连接到数字地。
参考电压(REFP/REFN)是另一个容易踩坑的地方。ADS122U04 内部有基准,但如果对外部基准精度有更高要求,也可以从 REFP 引脚接入。我第一版 PCB 把 REFP 走线拉得过长,和 IDAC 电流源走线平行,结果读数有规律性漂移。后来参考电压走线改成粗短线,两侧加 1nF 高频滤波电容,问题消失。
输入端的 RC 滤波也很有讲究。RTD 传感器信号线上我加了一阶 RC 低通滤波,电阻取 1kΩ,电容取 0.1µF。这里的电阻不能太大,否则和传感器源阻抗叠加后会影响 ADC 的输入建立时间,导致读数偏慢甚至失真。ADS122U04 内部已经有一级 EMI 滤波器,外部再加一级是双保险,在变频器附近实测能把读数跳动降低 80% 以上。
还有一个细节是 IDAC 的电流选择。激励电流越大,传感器上的压降越大,信噪比越好,但自热也越严重。PT1000 配 500µA 是比较平衡的选择,如果传感器在空气中且对自热敏感,可以降到 250µA;如果埋在导热胶里不怕自热,可以升到 1mA。这个参数不是固定不变的,要根据实际探头结构做取舍。
2.3 UART 物理连接:短距离直连和长距离隔离方案
ADS122U04 集成的 UART 接口很实用,但物理层的设计也要区分场景。
短距离场景(HVAC 温控器内,传感器和主板距离小于 30cm),直接走板内 UART 即可。这时要注意 TXD/RXD 的上下拉电阻,避免空闲状态电平不确定。我习惯在 RX 线上加 10kΩ 上拉,TX 线上加 10kΩ 下拉,保证上电瞬间 ADC 不会误判为开始位。
长距离场景(工业现场,传感器和控制器分处两个机柜),UART 电平走长线是不行的,需要加 RS-485 收发器。UART 转 RS-485 的电路非常成熟,关键是方向控制。典型做法是让 MAX485 这类收发器的 DE/RE 引脚由 MCU 的另一个 IO 控制,发送数据前拉高,发送完拉低。这里要注意切换时序,发送完最后一个字节后必须有足够延时再拉低,否则最后一两个字节会被截断。我在固件里用发送完成中断配合 2 字节时间的延时,实测 9600 波特率下非常稳定。
如果想要彻底的电气隔离,可以用数字隔离器或者光耦。因为 UART 是异步协议,隔离后的时序只要波特率容差在 ±3% 以内就没有问题。相比 SPI 隔离(至少需要隔离三到四根信号线),UART 隔离只需隔离 TX、RX 两根线,成本和 PCB 面积都省一半,这也是我选择这颗 ADC 的核心原因之一。
如果一条总线上要挂多颗 ADS122U04,A0 和 A1 地址引脚可以组合出 00、01、10、11 四个地址。通信时主机发命令带上从机地址,只有地址匹配的芯片才会响应。PIC18F55K42 的 UART 本身就支持地址检测功能,配合起来可以实现多节点轮询。
3. 固件实现:协议帧定义、寄存器配置与滤波算法
3.1 通信协议怎么定:主从问答、CRC 校验与重发机制
ADS122U04 的通信模型是典型的主从模式,PIC18F55K42 作为主机发起命令,ADC 作为从机响应。核心命令包括读数据(RDATA)、写寄存器(WREG)、读寄存器(RREG)、启动转换(START)等。我在固件里把它们封装成了一个简单的协议层:
typedef struct { uint8_t cmd; uint8_t addr; uint8_t payload[8]; uint8_t len; uint16_t crc; } adc_frame_t;实际执行时,主机会周期性地发送读数据命令。ADS122U04 在 DRDY 引脚拉低时代表转换完成,此时读到的数据才是有效的。我建议用 DRDY 边沿中断触发读操作,而不是定时器轮询,这样可以保证数据不会重复或者漏读。
发送命令的完整流程是:MCU 拉低 CS(如果使用 CS 引脚控制启用,ADS122U04 的 UART 模式通常不需要 CS,但某些封装模式需要)→ 发送命令字节 → 等待 ADC 响应。这里要特别注意的是,ADS122U04 在连续转换模式下,读数据命令发出后要等待数据帧完整返回,不同配置下帧长度不同。如果开启了 CRC,返回帧会多一个字节。我在调试时用逻辑分析仪抓了一次波形,确认帧边界后才把驱动代码稳定下来。
CRC 校验我强烈建议开启。HVAC 环境虽然相对干净,但工业现场的电机启停、变频器 PWM 都可能干扰 UART 信号。开启 CRC 后,主机每收到一帧都校验一次,校验失败直接丢弃并重发命令,而不是用错误数据参与温度计算。这个习惯能避免很多莫名其妙的跳变问题。
3.2 关键寄存器配置:CONFIG0-CONFIG3 的每一比特都别乱填
ADS122U04 的寄存器配置集中在 CONFIG0 到 CONFIG3 四个寄存器里,每个寄存器的功能差异很大,直接决定测量结果是否合理。
CONFIG0 主要配置 IDAC 激励电流的方向和大小。我的接线方式如下:IDAC1 输出电流,经过 PT1000 后回到模拟地,产生一个与温度相关的电压信号。这个信号同时接到 ADC 的正输入端 AINP,并通过 RREF 电阻生成参考电压接到 REFP/REFN。这种比例式测量方式的妙处在于,激励电流的波动同时影响输入信号和参考电压,最终数字输出是两者的比值,电流源的长短期漂移会被自动抵消。这比我以前用独立基准的方案不知道稳到哪里去了。
CONFIG1 配置 PGA 增益和转换模式。PT1000 在 0℃ 时阻值 1000Ω,500µA 激励产生 0.5V 信号,PGA 增益选 4 或 8 倍比较合适。增益太大会让 ADC 输入进入削波区域,太小又浪费了 24 位的分辨率。转换模式我选择了连续转换,ADC 一直在跑,DRDY 信号周期性地通知 MCU 取数据。如果做低功耗应用,我会改成单次转换模式,需要时才启动一次,转换完成后自动进入低功耗状态。
CONFIG2 里的传感器断线检测功能很容易被忽略。开启后,ADC 会在每次转换前检测传感器是否开路,比如 PT1000 断线时输入引脚上拉到 AVDD,ADC 读到的数值会接近满量程,此时固件可以直接上报断线故障。这个功能对 HVAC 的售后维护来说价值很大,管路温度探头松脱是现场最常见故障之一。
CONFIG3 里的 UART 地址和 CRC 开关就在这个寄存器里配置。地址必须和硬件上 A0/A1 的接法一致,CRC 开启后主机的发送帧和接收帧都要带 CRC 字节。波特率也有独立配置位,我一开始用默认的 9600,后来为了提升刷新率改成 19200,发送单字节命令的耗时从约 1ms 缩短到 0.5ms,整条链路响应更快了。
寄存器写入之后不能直接信任,必须读回来回读校验。我习惯写完所有寄存器后马上 RREG 读一遍,比对写入值和回读值,不一致就重新初始化。这种防御性编程在量产调试阶段能提前暴露硬件问题。
3.3 数据处理:从原始码到摄氏度的换算与滤波
ADS122U04 输出的原始数据是 24 位二进制补码,范围从 -8388608 到 +8388607。换算成电压很简单:
int32_t raw_code; float voltage = ((float)raw_code / 8388608.0f) * (VREF / PGA_GAIN);结合前面说的比例式测量,更直接的方法是先把原始码转换成电阻值。ADS122U04 的输出与 RREF 存在比例关系:Code = (R_sensor / R_ref) × FullScale。所以计算电阻值不需要知道 VREF 的绝对值,只需要知道 RREF 的准确值。
得到电阻值之后,用 PT 温度传感器的标准公式换算成温度。最常用的是 Callendar-Van Dusen 方程,在 0℃ 以上简化为 Rt = R0 × (1 + A×t + B×t²),A=3.9083e-3,B=-5.775e-7。我实测用这个公式在 -50℃ 到 150℃ 范围内的精度远高于查表法,而且代码量极小。
实际采样数据永远有噪声,软件滤波是必要的。我用的是"中值 + 移动平均"两级滤波:先取五个原始值去掉最大值和最小值,剩下的三个取平均。这个组合比单纯滑动平均更能抑制尖峰干扰,又不会像纯中值滤波那样对真实快速温度变化反应迟钝。在 20 SPS 采样速率下,最终输出的温度稳定度实测能达到 ±0.02℃ 以内。
处理温度数据的另一个关键是浮点运算的时机。PIC18F55K42 没有硬件浮点单元,频繁做 float 运算会占用大量 CPU 时间。我采用定点化方案,温度以 0.001℃ 为单位存储在 int32_t 里,只在最终需要显示或者上传时才转成浮点。实测下来整个数据链路的处理开销降低了一大截。
4. 精度分析与校准实操:标定前标定后是两个世界
4.1 误差来源分解:增益误差、偏移、温漂谁占大头
任何高精度测量系统都有误差,关键是要知道误差从哪里来,然后针对性消除。
第一个误差来源是 ADC 本身的偏移误差和增益误差。ADS122U04 出厂虽然做了校准,但不可能完全为零。对 24 位分辨率来说,即使偏移误差只有几个 LSB,对应的温度误差也可能达到 0.5℃ 以上。这个必须通过校准修正。
第二个是参考电阻 RREF 的精度。比例式测量看着很完美,但 RREF 本身却直接影响转换结果。我选择的是 0.1% 精度、25ppm/℃ 温漂的金属膜电阻,这样 RREF 引入的温度误差可以控制在 0.05℃ 以内。如果用了 1% 精度电阻,这个误差就会直接等比例放大,这是很多工程师容易忽视的地方。
第三个是传感器本身的误差。PT1000 的精度等级按 IEC 60751 标准分为 Class A(±0.15℃)和 Class B(±0.3℃)。不要指望 ADC 很准,传感器却拖后腿。
第四个是系统级温漂。ADS122U04 内部基准温漂、PGA 温漂、PCB 热电动势等都会随环境温度变化影响读数。HVAC 产品温漂要求没工业那么苛刻,但户外机柜里的温差也很大。
我做了一个精简的误差分配表,供参考:
| 误差来源 | 典型值 | 影响温度 | 消除方法 |
|---|---|---|---|
| ADC 偏移误差 | ±15µV | ±0.15℃ | 软件偏移校准 |
| ADC 增益误差 | ±0.05% | ±0.12℃ | 两点增益校准 |
| RREF 精度 | 0.1% | ±0.25℃ | 精密电阻 |
| PT1000 公差 | Class B | ±0.3℃ | 更换更高精度传感器 |
| 自热效应 | 0.5mW | ±0.01℃ | 降低 IDAC 电流 |
| 冷端补偿误差 | ±0.2℃ | ±0.2℃ | 热电偶场景单独校准 |
4.2 两点校准与查表修正:具体怎么做值得记下来
校准的核心是做两点修正:偏移校准和增益校准。我的方法是在固件里留出两个校准点,通过 UART 命令写入:
typedef struct { float true_temp_1; // 校准点1 实际温度 float adc_temp_1; // 校准点1 ADC读数 float true_temp_2; float adc_temp_2; } cal_params_t; float apply_calibration(float adc_temp) { float slope = (cal.true_temp_2 - cal.true_temp_1) / (cal.adc_temp_2 - cal.adc_temp_1); float offset = cal.true_temp_1 - slope * cal.adc_temp_1; return slope * adc_temp + offset; }实际操作时,我把传感器放进恒温槽或者干体炉,分别在 0℃ 和 100℃ 两个温度点记录 ADC 输出,然后写入校准参数。两分钟后重新跑一遍,误差就能从 ±0.5℃ 压到 ±0.05℃ 以内。
更高端一点的做法是分段校准。PT 传感器的非线性不是纯直线,单纯两点校准在量程两端会有残余误差。如果产品要求全量程 ±0.1℃,可以取四个温度点(比如 0、50、100、150℃),每两个相邻点之间用线性插值,实际效果比单纯两点好得多。代价只是多存几个校准参数,计算开销可以忽略。
校准参数在量产时要写进 Flash 的特定区域,并且追加 CRC 防止被意外改写。产线校准时把 0.1℃ 精度的恒温槽搬到测试工位,用上位机通过串口自动完成校准和写参,全过程控制在 30 秒以内。
5. 样板调试中的真实坑位与排查思路
5.1 通信失败先看时序和电平,别急着怀疑芯片
第一次上电调试时,我花了两个小时怀疑 ADC 是坏的,最后发现是 UART 波特率配置差错了一倍。ADS122U04 的波特率配置位和 PIC18F55K42 的 UART 波特率寄存器是两套东西,必须分别确认。逻辑分析仪抓一下 ADC 返回的波形,数一下位宽就能确定实际波特率。
第二个常见的坑是 DRDY 时序。连续转换模式下,DRDY 引脚在每次新数据准备好时拉低。问题是如果你读数据的速度太慢,DRDY 拉低后过了很久才发读命令,数据可能已经更新了好几轮,读到的就不是最新的。用 DRDY 下降沿触发中断,在中断里立即读取,才能保证数据时效性。
第三个坑是命令发送后的响应延时。ADS122U04 内部处理命令需要一点时间,发送完命令后立刻等待返回会超时。我实测在 9600 波特率下,发送命令到收到响应的最短间隔大约是 3-4 个字节时间。固件里加一个超时机制,比如等待 100ms 没有响应就重发,重发三次仍然失败就报通信错误。
有时候问题出在 MCU 侧。PIC18F55K42 的 UART 接收中断标志要记得清零,接收缓冲区要足够大,否则一帧稍长的数据就会把缓冲区顶掉。我一开始把接收缓冲区定义成 4 字节,后来发现特定配置下返回帧是 5 字节,直接溢出丢帧。改成 16 字节环形缓冲区后才算彻底解决。
5.2 读数跳动的 EMC 干扰:布线、滤波和刷新率的关系
HVAC 产品过 EMC 测试时,最常见的失效模式是温度读数在继电器吸合瞬间跳变。继电器线圈产生的瞬态干扰会通过空间耦合或者电源线传导进入 ADC,导致采样结果异常。
我踩过的坑第一版板子没有把模拟输入走线做保护,PT1000 的信号线在 PCB 上穿过了继电器驱动电路区域,测试时读数最大跳了 2℃。后来把传感器信号线都走内层,两侧用地线包住,继电器驱动信号尽量远离模拟区,情况改善了很多。
软件上也做了配合。ADC 的采样速率不是越快越好,20 SPS 模式下内置数字滤波器对 50Hz/60Hz 工频干扰有很强的抑制作用,这是 Δ-Σ 架构的天然优势。在 EMC 严酷区域,我会把 ADC 配成 20 SPS,配合软件的三次采样中值滤波,实测继电器动作对读数的影响降到 0.05℃ 以下。
工业现场还有一个重要干扰源:变频器。变频器的 PWM 开关频率从几百赫兹到十几千赫兹,如果不做电源滤波,ADC 的参考基准会被污染。我建议在 ADS122U04 的电源引脚附近加大容量电容,并串联磁珠形成 π 型滤波。实测加了磁珠后,靠近变频器测试时读数跳动幅度降低了 60%。
5.3 低功耗设计中的经验:睡眠唤醒与 ADC 的启动时间
如果这套方案要做成电池供电的无线温度传感器节点,功耗控制就是核心指标。ADS122U04 本身有低功耗模式,不转换时可以关掉内部电路,电流降到微安级。
PIC18F55K42 同样有低功耗休眠模式。我的低功耗策略是:MCU 休眠,ADC 也进入低功耗状态,定时器定期唤醒 MCU,MCU 唤醒后向 ADC 发送启动转换命令,等待 DRDY 中断,读取数据,然后再次进入休眠。整个周期的有效工作时间非常短,平均电流可以控制在几十微安。
这里要特别注意 ADC 从低功耗恢复到转换完成的时间。24 位 Δ-Σ ADC 的数字滤波器需要几个转换周期才能稳定输出,如果使用单次转换模式,第一次读到的数据往往不准。我的处理办法是启动转换后丢弃前两次读数,从第三次开始采集有效数据。代价是多等两个转换周期,换来的是数据可靠性。
实测下来,采用 PT1000 + 20 SPS 采样,每十秒上报一次数据的电池节点,两节 AA 电池可以用半年以上。如果改成每五分钟上报一次,寿命可以轻松超过两年。这个功耗水平在 HVAC 无线传感器市场里很有竞争力。
最后再分享一个我这套方案里的细节习惯。ADS122U04IPWR 的数据手册有六十多页,很多人只看引脚和寄存器表就开始画板,结果在通信协议和时序上反复踩坑。我的经验是把第 9 章之后的寄存器描述部分整章打印出来,放在办公桌上,调试时遇到奇怪现象就翻一翻,比自己在网上搜大半天快得多。另外,ADC 的 UART 返回帧格式在不同配置下会有差异(比如有没有 CRC 字节、数据位是否包含状态位),写驱动前先在逻辑分析仪上确认一遍帧结构,能省下一整天的排查时间。
这套"UART 接口高精度 ADC + 8 位 MCU"的组合,解决了我之前用 SPI 方案时最头痛的长线传输和隔离问题。如果你手头也有类似的应用——传感器放在远处、环境嘈杂、又要保证温度精度,我建议可以拿这套架构去打一版样板试试。