24位ADC与STM32的多通道温度采集板设计:从PT100到HVAC工程实践

发布时间:2026/11/5 1:03:43
24位ADC与STM32的多通道温度采集板设计:从PT100到HVAC工程实践 工业现场和暖通空调HVAC里的温度采集很多人一开始想简单了接个 NTC、几百毫伏信号、单片机内置 ADC 读完就完事。可真到现场就发现送风温度差 0.5 度PID 整定全乱水管温度在高共模干扰下读数能像心电图一样波动。最近我基于 ADS122U04IPWR 和 STM32F217ZG 做了一套多通道温度采集板专门用在小型组合式空调箱的送风/回风温度、冷冻水供回水管温以及工业过程控制柜里几个 PT100 测温点上。这里把这套方案的选型、电路、软件和现场调试经验一次性拆干净给做嵌入式仪表、楼宇自控和工业过程控制的同行当个参考。ADS122U04IPWR 是一颗 24 位 delta-sigma ADC带 UART 接口、内置可编程增益放大器、精密基准和匹配恒流源特别适合把 RTD、热电偶、热敏电阻这些“低电平传感器”变成稳定数字量。STM32F217ZG 则是意法半导体 Cortex-M3 内核的中高端 MCU120MHz 主频1MB Flash外设资源非常宽裕还带以太网 MAC。这个组合最直接的价值是模拟前端不用搭一堆运放MCU 侧也不必为资源发愁从探头到上位机的完整链路都能吃得下。1. 项目整体设计与选型思路1.1 常规方案为什么不够从“运放内置ADC”到独立24位ADC我以前给一个小型风柜做温度采集时用的还是运放加 STM32 内置 ADC 的路子。PT100 在 0℃时电阻是 100 欧姆用 1mA 恒流源激励信号也就 100mV 左右。一级仪放、一级滤波进单片机 ADC理论上够用。可问题往往出在“理论上”三个字运放选型、偏置电流、温漂、PCB 布局、电源纹波每一项都是坑。尤其 HVAC 控制柜里还有变频器、接触器、电动阀电磁环境一言难尽内置 ADC 那点抗干扰能力稍微一叠加工频噪声就露馅。改用独立 24 位 ADC 不是说每一路都必须要 0.001℃ 的绝对精度而是要它的整体鲁棒性。ADS122U04IPWR 把 PGA、基准、激励源、通道选择都集成在芯片里模拟路径在出厂时就是匹配好的我只要管好外围电源和基准电阻就能把“模拟设计能力”这个变量压到很低。再加上它自带 50Hz/60Hz 工频抑制用在市电环境里优势很明显。还有一个容易被忽略的点是接口。很多工业现场已经有成熟的隔离 UART 方案你塞一片 SPI 接口的 24 位 ADC 到控制柜里往往还得考虑 SPI 时钟速度、隔离芯片带宽、菊花链拓扑麻烦事一堆。ADS122U04 直接走 UART波特率不高隔离成本低而且很多 PLC 和 DTU 也有现成串口调试起来方便得多。1.2 MCU 选型STM32F217ZG 的角色不只是“读数据”STM32F217ZG 有一个很容易被低估的优势它不只是够用而是给你留足了“后手”。温度采集本身的计算量并不大即使加上查表、线性化、数字滤波Cortex-M3 的 120MHz 主频也绰绰有余。但实际项目里数据拿到之后还要上来要么通过 RS485 走 Modbus RTU要么通过以太网走 Modbus TCP要么在板上做报警逻辑和历史存储这些才是吃掉资源的地方。我选 F217ZG 而不是更小容量的 F103 系列核心原因是三个字不折腾。它有多路 UART可以同时挂一个 UART 接口 ADC 和一个 RS485 模块USB OTG 可以用来本地固件升级以太网 MAC 更是让我在楼宇自控对接时省掉了外挂以太网控制器。1MB Flash 放热电偶查表、RTD 曲线、FreeRTOS 和 lwIP 协议栈都绰绰有余跑满了也不焦虑。当然如果你只做单机两路温度监控F103、F207 甚至 C 系列都行。但当你有四个以上的模拟输入、又要联网上报时F217ZG 的多外设优势会直接体现到开发周期上。1.3 系统架构与信号流整套系统从物理量到网络数据的路径是这样的温度探头把温度变成电阻或毫伏信号进入 ADS122U04IPWR 的模拟输入通道。ADC 按照配置好的 PGA 增益和数据速率进行量化和滤波结果通过 UART 输出 24 位原始码。STM32F217ZG 通过 UART 与 ADS122U04 通信读取转换结果做滤波、线性化和单位换算。换算后的温度值在 MCU 里统一成工程单位℃、℉和状态标志再通过 RS485、以太网或 CAN 上报到 BMS、PLC 或者云网关。同时板上还保留本地 LED 指示、按键设置地址和端子输出方便现场无电脑调试。这套架构里ADC 负责“把模拟世界翻译成数字”MCU 负责“让数字变成可用的业务信息”分工很清楚。后期如果从 HVAC 扩展到工业过程控制无非是换传感器类型和配置寄存器上层通信和数据处理不用推倒重来。2. 硬件连接与关键电路设计2.1 ADS122U04IPWR 最小系统与供电ADS122U04 的量测核心是 24 位 ADC最敏感的是电源和基准。我的做法是 AVDD 和 DVDD 分别从 3.3V 通过铁氧体磁珠进来模拟地和数字地在 ADC 下方单点汇合再通过完整地平面回到电源入口。供电细节上有几个经验值AVDD 上放 10µF 钽电容和 0.1µF 陶瓷电容DVDD 上至少放 0.1µF 和一个 1µF电容尽量贴着电源引脚放。如果板上有开关电源不要在 ADC 附近走 PWM 信号线尤其是不要和模拟输入线平行走长距离。内部基准在数据手册里会要求特定引脚外接去耦电容我用的是 1µF 和 0.1µF 并联位置就在器件旁边几毫米内。我一开始画板把去耦电容放到了 1cm 开外结果低温漂基准的稳定时间明显变长后来挪到器件下方才正常。这类 24 位 ADC 对“电容位置”比很多人想象中敏感得多。未使用的模拟输入也不要悬空。ADS122U04 的输入通道是很多路复用进 ADC 的悬空输入在切换时可能把不明电荷耦合进转换结果。我用的是软件里把没用到的通道配置成固定连接到模拟地或者在硬件上直接把对应引脚接到低阻节点这样切换通道时读数稳定得多。2.2 PT100/PT1000 探头接线与恒流源配置ADS122U04 最让我满意的一点是内置两个匹配电流源这对工业 RTD 测温是刚需。PT100 的电阻变化率大约是 0.385Ω/℃如果激励电流源不稳定算出来的温度就会有系统性漂移。用匹配电流源配合外部精密基准电阻做比例测量可以很大程度上抵消激励电流的慢漂移。以三线制 PT100 为例我的典型接法是精密参考电阻 RREF 接在 REFP、REFN 之间也就是 AIN1、AIN0 的复用引脚上。RREF 选 3300Ω 或 3480Ω要求 0.02% 精度、温度系数 5ppm/℃ 以内。PT100 两端的电压接 AIN3 和 AIN2作为差分管脚。IDAC1 输出给 RTD 及其引线IDAC2 输出给另一根引线做补偿两个电流源的匹配度由 ADS122U04 内部的电流镜保证。比例测量的原理说起来也简单ADC 输出的数字码本质上是输入电压与参考电压之比。输入电压是 IDAC 流过 PT100 产生的参考电压是同一个或匹配的IDAC 流过 RREF 产生的。它俩都受到激励电流漂移影响比值却不受影响。这就像两个人站在同一条船上测距离船漂了相对位置不变。热电偶场景另说。热电偶输出是几十毫伏的微弱电压我会把 PGA 增益设高用内部温度传感器做冷端补偿。冷端放在 PCB 端子附近STM32 读回 ADS122U04 的内部温度值再结合标准热电偶分度表做叠加计算。四线制 RTD 接线更简单激励电流走独立的两根线测量走另外两根引线电阻完全不参与回路。如果现场端子排够用我倾向于四线制省心。2.3 UART 接口与隔离处理ADS122U04 的 DIN 接 STM32 的 TX 引脚DOUT/DRDY 接 STM32 的 RX 引脚同时把 DOUT/DRDY 尽量引一个分支到 GPIO 外部中断方便做“转换完成再读数据”的时序。有人图省事只用轮询方式读 DOUT 电平也可以但功耗和效率不如中断方式。工业控制柜和 HVAC 现场经常有电位差和地环路。我做的板卡上ADC 侧和 STM32 侧之间加了数字隔离器隔离电源用隔离 DC-DC 模块。UART 本身波特率不高普通 ISO7721、ISO7741 这类数字隔离器完全够不需要额外复杂处理。隔离后的 UART 线上还要加 TVS 二极管防止调试器、端子排引入的静电打坏芯片。一个容易踩的细节是极性。ADS122U04 的 DOUT 平时处于高阻或高电平转换完成时会产生一个低电平脉冲这个脉冲在示波器上看起来像 UART 的起始位。我第一次调试时没看数据手册直接把它当成普通 RX 数据线接到 STM32结果收到一堆乱码。后来才发现要先用 DRDY 中断做“触发”再发起 RDATA 命令读数据而不是盲目等串口自发消息。2.4 PCB 布局经验这是整个项目里最容易翻车、最后的成果也最依赖的一块。几个关键原则基准电阻 RREF 必须离 ADS122U04 尽可能近并且要开尔文连接不要让采样电流和信号电流共用一条细长铜箔。模拟输入走线短而粗RTD 信号线如果必须穿过数字区域优先走底层并两侧包地。晶振、MCU、UART 隔离器和 ADC 模拟区尽量分开MCU 的高速数字信号不要绕着 ADC 走一圈。电源层和地层完整不要让模拟区域被电源走线割裂成孤岛。我第一版板卡就是因为把 UART 走线和模拟输入线平行铺了几厘米导致 20SPS 下的数据噪声明显偏大。第二版调整了布局把模拟输入从板边直接引进 ADC数字线远离同样配置下 RMS 噪声降了一个数量级。PCB 布局对高精度 ADC 的影响往往比选哪颗芯片更大。3. 软件实现与核心流程3.1 STM32 UART 驱动与通信时序ADS122U04 的通信由主机发起命令格式不复杂RREG 读寄存器、WREG 写寄存器、RDATA 读转换结果。寄存器数量很少0x00 是 ID 寄存器0x01 是通用控制0x02 是输入多路复用0x03 是系统功能0x04 是数据速率/转换模式0x05 是 PGA 增益和校准相关。具体位定义以手册为准我这里是按实际项目验证过的流程写。上电后第一步永远不要急着读温度先读 ID 寄存器确认通信链路正常。命令帧要放在同一个 UART 发送缓冲区里一次发出避免两次 HAL_UART_Transmit 之间有间隙导致状态机错乱。uint8_t wrbuf[3]; uint8_t rdbuf[1]; // 读寄存器 0x00确认器件存在 wrbuf[0] 0x20; // RREG wrbuf[1] 0x00; // 寄存器地址 wrbuf[2] 0x00; // 连续读 1 个寄存器 HAL_UART_Transmit(huart2, wrbuf, 3, 100); HAL_UART_Receive(huart2, rdbuf, 1, 100);如果读回的值符合器件的 ID再开始写配置。写寄存器同样是一次性把“命令长度数据”放在一起发不要拆开。实际调试时我发现缩短两次通信之间的间隔能减少不少因边界条件造成的通信异常最好直接上 DMA 发送。3.2 寄存器配置的关键项寄存器配置分几个维度模拟输入通道、PGA 增益、数据速率、激励电流、参考源、转换模式。我在 HVAC 温度测量中最常用的一组配置是这样的模拟输入AIN2/AIN3 作为差分对接 PT100 或 PT1000。PGA 增益8 或 16。PT100 用 8 足够PT1000 因为输出电压大可以降到 4。数据速率20SPS。这个速率下内置数字滤波对 50Hz/60Hz 工频干扰抑制最好温度响应也够用。激励电流500µA。PT100 上 500µA 约 50mV自热可控信噪比也够。参考源外部参考也就是 RREF 上的电压。工作模式连续转换模式。对大多数温度采集场景连续转换加“准备好再读”是最稳妥的。这一步我要特别强调一下“为什么用 20SPS”delta-sigma ADC 的采样率和工频抑制是一对矛盾体20SPS 时积分周期正好覆盖一个完整的 50Hz 甚至 60Hz 周期共模干扰和差模干扰都会被滤波器压下去。如果为了追求速度切到 1000SPS噪声会明显变大HVAC 里完全没有这个必要。3.3 温度换算从原始码到物理温度ADS122U04 输出的 24 位代码是二进制补码。读三个字节后要做符号扩展否则低温时会变成莫名其妙的大正数。读取代码如下uint8_t cmd 0x10; // RDATA uint8_t raw[3]; int32_t code; HAL_UART_Transmit(huart2, cmd, 1, 100); HAL_UART_Receive(huart2, raw, 3, 100); code ((int32_t)raw[0] 16) | ((int32_t)raw[1] 8) | raw[2]; if (code 0x800000) { code - 0x1000000; // 符号扩展 }从原始码换算到 RTD 电阻利用比例关系。代码满量程对应 PGA 倍后的满量程输入电压而参考电压是 RREF 上的压降所以#define RREF 3300.0 #define PGA 8.0 double rtd ((double)code * RREF) / (PGA * 8388608.0);这里 8388608 是 2 的 23 次方对应 24 位双极性 ADC 的正满量程代码。得到 RTD 电阻后再根据 IEC 60751 标准反解温度。PT100 在 0℃以上可以用二次方程近似double A 3.9083e-3; double B -5.775e-7; double d rtd / 100.0 - 1.0; // R/R0 - 1 double disc A * A 4.0 * B * d; double temp (-A sqrt(disc)) / (2.0 * B);这个公式只适合 0℃以上。0℃以下需要带 C 系数的三次方程或者直接用分度表线性插值。我项目里的做法是把 -50℃ 到 300℃ 按 1℃ 间隔生成一张表存储在 Flash 里程序通过二分查找定位区间再用线性插值算温度。这样负温范围、正温范围都能覆盖代码也更直观。3.4 数字滤波、温度上报与系统集成ADC 本身有滤波但到了现场变频器起停瞬间还是可能带来少量突跳。我在 STM32 端加了一阶低通滤波和一个简单的限幅突变检测单次跳变超过 5℃ 视为异常丢弃当前值连续三次取平均后再输出。这个策略在风柜里实测非常有效既不会让 PID 控制被瞬时毛刺带偏也不会因为滤波太狠导致响应迟钝。数据上报方面STM32F217ZG 的资源可以同时支撑两套路径一条 RS485 走 Modbus RTU一条以太网走 Modbus TCP。对楼宇自控系统来说通常会优先做 Modbus RTU因为老的 BA 系统基本都认新建项目往往直接走 TCPF217ZG 片内 MAC 加一个 PHY 芯片就能实现不用外挂以太网控制器。我在项目里是把温度值、ADC 原始码、设备内部温度统一封装到一个寄存器映射表里方便上位机一次读取。4. 常见问题与排查技巧实录4.1 实测数据与精度表现拿我的板卡做实验室比对用二级铂电阻温度计作为标准测试点在 25℃ 恒温槽下两个通道的读数差异如下通道标准温度板卡读数偏差CH1 PT10025.00℃25.03℃0.03℃CH2 PT10025.00℃24.98℃-0.02℃CH3 热电偶25.00℃25.10℃0.10℃RTD 通道经过一次两点校准后稳定偏差基本能做到 ±0.05℃ 以内这对 HVAC 的送风、回风、水管温度监测完全足够。热电偶通道因为有冷端补偿和分度表插值误差绝对精度会差一点但也在可接受范围。现场风柜里观察连续 24 小时的温度曲线读数波动范围在 ±0.15℃ 以内而且没有看到周期性跳变。这在有变频器和电动调节阀的控制柜旁边已经很不错了。4.2 常见问题速查问题现象可能原因解决方案读寄存器无响应UART 接线接反、波特率配置不一致、未正确上电复位检查 DIN/DOUT 极性示波器测 DOUT 波形确保 ADC 完成上电复位后再通信数据是乱码DOUT 上电后不是纯数据混有 DRDY 脉冲通信时序不对不要在没有触发的情况下盲目读串口用 DOUT 低电平事件后再发 RDATA读数跳得很厉害模拟输入线靠近干扰源去耦电容距离太远PCB 地平面不完整优化布局缩短模拟走线移开开关电源走线读数零点偏移明显RTD 引线电阻太大三线制补偿电流不匹配输入端有接触电阻改用四线制检查端子压接对引线电阻造成的偏移做软件校准温度整体漂移RREF 温漂大激励电流设置异常参考电压受温度影响换低温度系数的精密电阻检查 IDAC 配置用恒温校准通道切换后第一拍偏高MUX 通道建立时间不够寄存器设置里没有预留稳定时间切换后丢弃前几次采样或等到下一个 DRDY 中断再采4.3 现场调试技巧我每次到现场调这种板卡流程都很固定第一步只接一个探头、一根串口线用 USB-TTL 转接板直接连到电脑先不碰 STM32把 ADS122U04 单独读通。这能最快地区分“ADC 问题”和“MCU 问题”。如果电脑端都读不回来那就别急着改软件先量电压、看波形、查接线。第二步用电阻箱代替 PT100接入 ADC 输入给一个固定电阻值看原始码换算出来的电阻对不对。这一步可以验证激励电流、参考电阻、PGA 和线性化公式是不是都正确。电阻箱是温度调试最好的朋友比拿热水壶靠谱多了。第三步当原始码和电阻都对上了再用真正 PT100 探头做冰水混合物和室温两点对比。冰水混合物只要搅拌充分0℃ 是很好的参考点不用恒温槽也能把零点校准做得差不多。最后顺手说一个容易被忽视的小事现场如果测量点和控制柜离得远RTD 引线一定要走屏蔽双绞线屏蔽层在控制柜侧单端接地。我见过不少板卡在实验室精度极漂亮装到现场就漂最后查出来就是引线长而且不屏蔽。5. 扩展从单板采集到多栋楼宇温度网络这套 ADS122U04IPWR STM32F217ZG 的方案做完单板后其实还能顺着两条线继续延伸。一条是分布式。F217ZG 有多路 UART可以级联多个 UART 接口的 ADC或者通过 RS485 挂多个远程采集小模块。每个风柜、每台冷水机组、每个电控间放一个小采集单元主机定期轮询数据汇总后统一上报。相比把所有信号线全部拉回一个机柜工程量少非常多。另一条是联网化。现在的楼宇自控已经很少满足于只看几个模拟量温度趋势、能耗预测、设备健康度诊断都在往边缘计算方向走。STM32F217ZG 的以太网能力意味着采集板本身可以成为 Modbus TCP 从站或者轻量级边缘节点把滤波后的温度数据以固定周期推给上位机同时本地记录运行时长和温度异常事件。这两块板的组合正好把“模拟采集”和“网络化”之间的断层补上了。如果你只是做一两个点这方案确实是杀鸡用牛刀。但当你有四路以上模拟输入、有楼宇自控对接需求又不想在 PCB 上堆一堆分立运放的时候就能理解这种看似“冗余”的选型实际上是为了把风险降下来。工业温度测量这件事真正贵的不是芯片是返工。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询