ADS122U04+STM32L162:工业温度采集与UART通信实战指南

发布时间:2026/11/5 5:04:35
ADS122U04+STM32L162:工业温度采集与UART通信实战指南 做工业测温和HVAC系统的人大概都绕不过这样一个场景传感器线拉出去十几米甚至几十米沿途经过变频器、电磁阀、继电器这些大功率干扰源回来还得把微伏级别的信号变成稳定、可用的温度数字。ADS122U04IPWR配合STM32L162ZE这套组合是我这两年反复在用的解法之一。ADS122U04IPWR是TI那颗24位Δ-Σ ADC的UART版本自带可编程增益放大器、激励电流源和内部温度传感器STM32L162ZE则是意法半导体的超低功耗Cortex-M3串口资源充足、休眠功耗低。两颗芯片凑在一起能解决工业温度采集里“高分辨率采样长距离稳定通信低功耗运行”这三个最关键的问题。这篇文章打算把整套方案摊开了讲从系统架构、传感器选型、硬件电路参数计算到固件寄存器配置和现场抗干扰调试全部按实战来写。适合正在做工业变送器、HVAC控制器、设备状态监测或者想用UART接口ADC构建低成本高精度采集链路的人参考。已经做过温度采集但被现场噪声、通信乱码折磨过的朋友看完也能少走不少弯路。1. 项目整体设计思路为什么是这两颗芯片1.1 ADS122U04IPWR 到底解决了什么痛点很多人做温度采集喜欢直接上MCU自带的ADC或者选一颗带SPI接口的ADC芯片。但真正到了工业现场你会发现问题不止“采到电压”那么简单。热电偶输出的是几十微伏级别的直流信号PT100在零度附近一个摄氏度的变化也只有零点几欧姆普通MCU的12位ADC配合外部仪表放大器想把精度做进0.1℃基本是奢望。另外SPI接口在长距离和强干扰环境下并不好用通信时钟容易受串扰线缆稍微长一点就要降速率、加驱动。ADS122U04IPWR就是冲着这些痛点来的。一个是分辨率高24位Δ-Σ架构满量程输入配合内部PGA可以把热电偶、RTD这些微弱信号直接放大到ADC可分辨的范围。另一个是它内置了两个可编程激励电流源做电阻型传感器时可以走比例测量电流源本身的温漂和绝对精度影响被抵消掉这一招比用外部恒流源省事得多。再有一个是接口它走UART而不是SPIUART在工业现场用两根线就能可靠传输硬件上做隔离也方便这对HVAC这种控制器分散安装、通信距离较远的场景特别友好。1.2 STM32L162ZE 在这里扮演的角色有了ADC做模拟前端MCU这边的任务其实是三个配置ADC寄存器、接收转换结果、把原始码值换算成温度并跑应用逻辑。STM32L162ZE在这三个任务上都有它的优势。这颗MCU基于Cortex-M3内核市面上的资料和库函数积累非常多上手快它属于STM32L1系列超低功耗特性做得很突出HVAC设备常年通电控制板待机电流和运行电流都是硬指标低功耗MCU能省下不少散热和功耗预算。更重要的是STM32L162ZE的USART外设足够用。与ADS122U04IPWR通信占掉一个USART还能剩好几个串口给触摸屏、上位机、协议转换模块使用。加上DMA支持UART接收数据不需要CPU一个一个字节去处理可以等整帧转换结果到了再统一处理这套机制在实时性要求不高的温度采集场合非常省心。1.3 系统架构预览整个系统的信号流是这样走的温度传感器接入ADS122U04IPWR的模拟输入通道ADC内部PGA将信号放大经过Δ-Σ调制器和数字滤波器得到24位转换结果UART把结果送到STM32L162ZEMCU基于内部寄存器配置和校准数据把原始码值换算成摄氏温度最终温度值通过现场总线、RS-485或者本地显示输出。电源部分如果做隔离ADC和传感器在隔离侧MCU在系统侧中间的UART用数字隔离器跨过隔离带这是工业变送器非常经典的结构。2. 传感器选型解析热电偶、RTD 还是 NTC2.1 三类温度传感器的应用边界温度传感器选型决定了整个ADC配置方向。工业现场最常见的是热电偶和RTDHVAC系统里NTC热敏电阻也用得不少。热电偶测量范围宽能到上千摄氏度但输出信号小且需要冷端补偿RTD线性度好、重复性好适合-200℃到850℃的中低温测量但需要激励电流源NTC便宜、响应快但非线性严重只适合窄范围测量。我做项目时会先问三个问题测量范围是多少、现场有没有剧烈振动、系统需不需要长期标定。以前做过一个锅炉排烟温度监测温度范围从常温到600℃这时就只能用K型热电偶因为PT100到不了这么高NTC更不用想。另一个HVAC冷冻水管温度测量范围只有5℃到35℃首要要求是稳定和精度这种就老老实实用PT1000选它是因为信号比PT100更强在长线上抗干扰更好而且HVAC系统里水流振动不会对铂电阻造成什么问题。2.2 热电偶通道的冷端补偿设计热电偶的痛点在于只能测温差热端和冷端的温度差对应电动势如果冷端温度飘了读数就跟着飘。常见做法是在冷端位置放一个温度传感器测到冷端温度后在软件里查表修正。ADS122U04IPWR内部集成了一颗温度传感器把内部温度读出来就能当冷端补偿用。实际操作时要注意一点ADC内部温度传感器测的是芯片结温不是PCB上冷端那根铜线的温度。如果芯片和热电偶冷端之间隔得太远或者芯片附近有发热元件直接用内部温度做CJC会产生几摄氏度的误差。我做产品时倾向于在外接冷端位置放一颗高精度热敏电阻接到ADC的另一个输入通道软件里把冷端电压换算成温度。对于精度要求没那么高的HVAC项目直接读ADC内部温度传感器、做好热设计也够用关键是让ADC芯片和冷端接线端子待在同一个等温区域里。2.3 RTD 比例测量原理与激励电流RTD测量的核心是比例测量。激励电流从IDAC流出一路流过RTD产生电压信号另一路流过外部精密参考电阻产生参考电压。ADC最后的转换结果不是绝对电压而是RTD电压与参考电压的比值。由于两路使用同一个激励电流源电流的波动和温度漂移在比值里互相抵消了。这样一来即使IDAC电流随温度变化了百分之二对最终温度读数几乎没有影响。这一点非常关键因为恒流源的长期稳定性想要做到很高成本是很贵的而比例测量用普通精度就能达到很好的效果。ADS122U04IPWR有两个IDAC输出可以把一个接到AIN0、另一个接到AIN3也可以两个并联。我一般推荐把IDAC电流设到0.5mA到1mA之间。电流太小RTD上的信号幅度不够容易被噪声淹没电流太大RTD自身发热会造成额外的测量误差铂电阻的I²T发热效应会直接反映到温度值上。0.5mA对PT100来说0℃时信号只有50mV再乘以PGA增益后被ADC采样性能表现很理想。3. 硬件电路设计与关键参数计算3.1 电源、参考电压与滤波电容的布置ADS122U04IPWR的数字电源AVDD和DVDD建议分开处理模拟电源用低噪声LDO供电数字电源可以共用系统的3.3V但中间用磁珠串一下。参考电压引脚附近是模拟性能的生命线。使用比例测量时外部参考电阻Rref两端电压直接作为ADC的参考源这个参考电阻的温漂系数必须选好的25ppm/℃以下的金属箔电阻或者精密薄膜电阻比较稳妥阻值精度不影响最终精度只是影响满量程范围但温漂一定要低。每个电源引脚附近都放一个0.1μF陶瓷电容加一个10μF钽电容这样的组合数字隔离器两侧的电源也要单独退耦UART跨隔离屏障时隔离器前后的地和电源必须严格分开不能图省事连在一起。以前我在一个HVAC控制器上把隔离后的地和MCU数字地共了结果串口数据每一帧都有错位后来把两地彻底分开才恢复正常。3.2 模拟前端滤波与输入保护ADC虽然是24位Δ-Σ架构但模拟输入前端的处理仍然不能马虎。差分输入引脚之间并联一个100nF到1μF的电容能显著抑制射频干扰和共模噪声。对于热电偶这种高源阻抗的信号还要在输入端串接RC低通滤波截至频率设在几百赫兹到几千赫兹之间滤掉高频干扰的同时不影响直流测量。输入保护同样重要。工业现场的传感器线可能接错线、可能被雷击浪涌打一下ADC输入引脚耐压有限必须要做保护。常见做法是在输入端串接限流电阻再在对地和对电源之间接TVS管或者用低漏电的钳位二极管把输入电压限制在电源轨附近。以前在风机盘管控制器上没有加TVS管的结果是一台现场设备因为附近电焊操作烧掉了ADC输入通道焊机的感应电压看似不大但尖峰能量足够打穿CMOS输入结构。3.3 典型PT100测温通道的参数计算以一个PT100的四线制比例测量方案为例完整走一遍参数计算。假设IDAC电流I0.5mA参考电阻Rref1620Ω参考电压VrefI×Rref810mV。这个参考电压不高所以需要PGA把小信号放大。PT100在0℃时阻值100Ω信号电压VsI×100Ω50mV选择PGA增益GAIN16则ADC输入端的差分电压为50mV×16800mV仍然小于810mV满量程不会过载。当RTD阻值变化ΔR时ADC的数字输出码D满足下面这个关系D (I × Rrtd × GAIN) / (I × Rref) × 2^23 (Rrtd × GAIN / Rref) × 2^23可以看到I被约掉了这就是比例测量。把GAIN16、Rref1620代入Rrtd120Ω时D120×16/1620×8388607≈9944320对应温度约51.6℃。实际项目中我在固件里直接建立一张RTD阻值-温度的分度表线性插值求温度比用复杂公式省时间且不易出错。需要说明的是这套参数是从工程实践中验证过的典型组合具体增益和参考电阻值请以传感器量程和ADC参考电压范围为基准做最终确认。4. 固件实现UART通信与寄存器配置实战4.1 ADS122U04IPWR 的寄存器配置框架ADS122U04IPWR有四个配置寄存器从Config0到Config3分别管输入多路选择、PGA增益、数据速率、转换模式、参考电压来源、IDAC电流和传感器检测。基于ADS1220系列寄存器位域一致的设计基础项目里我通常先把转换速率设为20SPS这个速率下内置的50Hz/60Hz工频抑制效果最好转换模式按现场需要选择连续转换或单次转换跑电池供电时用单次转换更省电。配置时最需要想清楚的是参考电压设置。如果做RTD比例测量参考源要选“外部参考”也就是用Rref两端的电压做参考如果做热电偶测量可以直接选内部2.048V参考。下表是我常用的配置参考组合实际使用时需要逐项对照数据手册确认。工作模式MUX输入PGA增益IDAC电流参考源典型用途PT100四线制差分AIN0-AIN1160.5mA外部Rref工业冷热水温度PT1000三线制差分AIN0-AIN180.25mA外部RrefHVAC回风温度K型热电偶差分AIN0-AIN132无内部2.048V锅炉排烟温度NTC直接测电压单端AIN0-GND1无内部2.048V空调环境温度配置完成之后启动一次转换等待DRDY信号拉低再通过UART读取24位转换结果。整个流程用状态机管理避免在等待转换期间把CPU占死。4.2 UART命令帧的标准交互流程ADS122U04IPWR与MCU之间的UART通信以命令帧为基础。主机发送命令字节、寄存器地址和写数据从机返回状态和读取数据。实际调试时最影响稳定性的就是帧格式和校验。我曾经一味追求省事只发数据不做校验结果在实验室一切正常到了现场变频器一启动通信就直接乱掉。后来在帧尾增加CRC校验单片机对收到的每一帧做校验校验失败就丢弃并从新的一帧重新同步这才彻底解决了问题。这里给出一个简化但实用的帧结构起始位固定0xAA命令字节数据字节按命令可变CRC低位CRC高位。收到数据时用状态机先找起始字节再按帧长收完整帧最后验CRC。这个思路不局限于ADS122U04IPWR所有长距离UART通信都适用。4.3 温度转换算法的软件实现原始24位码值转换为温度是整个固件中最需要用心的一步。对RTD先把码值换算成电阻值再查分度表对热电偶先换算成热电势再叠加冷端温度对应的补偿电动势最后查热电势表得到热端温度。ADS122U04IPWR内部温度传感器读出的值可以作为冷端温度但软件里要对它做滤波处理一般连续采样64次取平均再放进查表函数。下面是一段RTD测量的C语言框架代码演示了从原始码到电阻再到温度的核心换算思路static int32_t adc_read_conversion(void) { uint8_t rx_buf[3]; /* 通过UART发送读取转换结果命令然后接收3字节24位数据 */ uart_send_cmd(CMD_READ_DATA); uart_receive_bytes(rx_buf, 3); return ((int32_t)rx_buf[0] 16) | ((int32_t)rx_buf[1] 8) | rx_buf[2]; } static float raw_adc_to_resistance(int32_t raw, float rref, float gain) { float ratio (float)raw / 8388608.0f; /* 24位码符号位前移 */ return ratio * rref / gain; } /* 查表线性插值根据电阻值找对应温度 */ static float resistance_to_temp(float resistance, const float *table, int table_len);这个代码框架里有一个关键点24位ADC的原始值是二进制补码格式正满量程对应0x7FFFFF负满量程对应0x800000转换成float时要先除以2^23而不是2^24否则幅值会差一倍。这个坑我踩过做过一次测试时读到的电阻值整体偏小查了半天才发现是这里的问题。4.4 STM32L162ZE侧的低功耗与DMA配合STM32L162ZE的功率管理策略对整个系统长期运行很关键。温度采集不需要高速连续跑我可以让MCU进入睡眠模式由外部定时器周期性唤醒唤醒后通过UART向ADC发送单次转换命令等待DRDY信号到来再读取转换结果处理完温度换算后再次入睡。这种间歇式工作方式下系统平均电流可以降到微安级别特别适合需要电池供电的无线温度节点。UART接收建议用DMA配合空闲中断。ADS122U04IPWR确实不需要编译器参与每个字节的中断尤其当数据帧长度较短时DMA接收整帧数据后统一解析CPU休眠时间更长。这里有个细节DMA传输完成中断和UART空闲中断要配合好防止只收到半个帧就误判成完整帧。我在代码里用超时机制兜底收到部分帧后超过一定时间没有新数据就清掉缓冲区等待重新同步这是在现场通信噪声大时的保命手段。5. HVAC与工业现场的抗干扰实战5.1 干扰源到底从哪里来把实验室里调试好的设备搬到现场最常出现的问题是读数跳动、通信乱码、偶尔死机。工业现场有几个典型的干扰源变频器产生的强烈谐波干扰通过电源和空间辐射两条路径进入信号链路大功率电磁阀通断时产生的瞬态电流在线缆上感应出尖峰电压还有强电线路和信号线束走同一个线槽时50Hz工频磁场在传感器回路里感应出工频噪声。HVAC场景有它的特殊性空调主机、风机、水泵都在附近几台变频器同时运行的情况非常常见而传感器线往往跟着动力电缆一起走。这种情况下单靠ADC内部的数字滤波是不够的还需要从系统层面做抑制。5.2 关键布线策略屏蔽、隔离与单点接地温度传感器的屏蔽层要正确处理。屏蔽层应该在电源一侧单点接地不要两端都接地否则屏蔽层里会形成地环路电流反而把干扰耦合进信号回路。如果现场传感器线和强电线路实在无法分开敷设至少要让传感器线穿金属管金属管做好接地这一条能达到非常可观的干扰屏蔽效果。有的工程师为了省成本把ADC和传感器之间的信号隔离省掉了。在只有一两个测温点的简单场景里隔离也许可有可无但在大型HVAC系统中不同设备的电位差可能高达十几伏不隔离的话不仅测量不准还可能烧毁芯片。我在设计中用数字隔离器放在ADC UART输出侧这样模拟部分和数字部分彻底地分开通信信号通过隔离器传输既保证了可靠性又降低了成本。5.3 现场实测50Hz工频干扰的抑制效果在一台带变频器的空调机组上实测过传感器线走线长度约12米与变频器输出电缆平行距离15厘米左右。未做任何滤波处理时ADC原始码值的峰峰值跳动大约是65个LSB换算成温度约为0.8℃。软件里把数据速率设为20SPS时内置50Hz抑制生效跳动降至15个LSB约0.18℃。前端再加上RC滤波后最终跳动稳定在6个LSB以内温度波动小于0.08℃。这个实测数据说明数字滤波和模拟滤波不是互相替代的关系而是互补的。RC模拟滤波负责抑制高频共模干扰ADC内部数字滤波负责抑制工频和整数倍谐波两者叠加后效果才有保障。干扰抑制措施原始码值波动LSB等效温度波动无滤波处理650.80℃ADC数字滤波20SPS150.18℃RC滤波数字滤波60.08℃6. 常见问题与调试经验速查表6.1 高频踩坑案例项目做得多了几乎每个温度采集项目都会碰到类似的问题。我把它们整理成速查表供同行直接对照排查。现象可能原因排查方向读数整体偏小24位码值除以了2^24而不是2^23检查符号扩展和比例因子温漂厉害读数随现场温度变化参考电阻温漂系数太大或IDAC电流设置不合理换低温漂参考电阻检查激励电流大小某一路读数异常其他路正常多路复用器的某个通道接触不良或保护器件损坏测量该通道输入对地电阻检查TVS管UART通信间歇性乱码波特率偏差、无校验或地电位不稳用示波器看信号质量校准波特率增加CRC校验读数在变频器启动瞬间跳变电源和信号线受干扰屏蔽接地不良检查屏蔽层接地方式加强前端RC滤波6.2 几个值得记住的经验心得经验一做RTD测量时别上来就用最高PGA增益。增益高虽然能提高分辨率但PGA输出范围有限如果参考电压偏低信号稍大一点就会削顶读数直接卡在满量程。做设计时先计算最大被测温度对应的信号电压再决定增益留出20%左右的余量。经验二我建议刚开始调试时把ADS122U04IPWR的配置参数打印出来配合上位机读到的原始码值一起分析。单纯看温度输出很难判断是传感器问题、配置问题还是通信问题。从原始码值出发排查能快速定位故障环节。自己写一个简单的串口调试助手或者用现成的上位机工具对项目调试帮助很大。经验三HVAC和工业温度项目的校准方法不太一样。HVAC现场一般用冰水混合物和恒温水浴做两点校准工业项目则要按产品的精度等级和量程做全量程校准通常要采集5到8个标准温度点用最小二乘法拟合出增益误差和偏移误差系数。这部分校准系数要存到STM32L162ZE内部的EEPROM或Flash里设备重启后自动加载不要每次开机都重新校准。最后再分享一个我在实际项目中坚持的小习惯给每块板子保留一个调试用的UART接口哪怕量产时焊不焊这个接口PCB上也要预留。ADS122U04IPWR和STM32L162ZE的通信问题有时候用万用表量半天都摸不着头脑接上调试串口把原始帧打印出来立刻能看清是ADC没响应、寄存器没写进去还是数据解析错了。这个习惯帮我省掉的排查时间远远超过那多画出来的几根走线。温度测量这条路硬件软件各占一半哪边偷懒现场都会加倍还回来。

关于本文作者

来自尧图内容编辑团队

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

尧图内容编辑团队

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

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

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

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

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

网站改版的5个关键决策

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

获取专属建站方案

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

立即免费咨询