1. 工业与HVAC温度测量方案的整体设计思路
工业现场和HVAC系统里的温度测量,跟我们在实验室拿个万用表测室温完全是两码事。工业场景往往要求传感器能跑几十米甚至上百米的线,环境里充斥着变频器、接触器、电机这些干扰源,温度范围可能从零下几十度到几百摄氏度,精度还要求到0.1℃甚至更高。这种条件下,热敏电阻和普通数字温度芯片基本就歇菜了,RTD(铂电阻)才是主力,尤其是PT100和PT1000。
RTD的本质是一段随温度变化而改变阻值的铂丝,PT100在0℃时是100Ω,温度系数约0.385Ω/℃。这个变化量很小,PT100在100℃时也才138.5Ω左右,要测到0.1℃的分辨率,就得分辨出约0.0385Ω的阻值变化。用普通ADC根本做不到,所以需要高分辨率、低噪声的ΔΣ型ADC,而且得配一个稳定的激励电流源。ADS122U04IPWR正好就是干这个的:24位ΔΣADC,内置可编程增益放大器(PGA),两路可编程激励电流源,还带UART接口,可以直接跟MCU串口通信,省掉SPI或I2C的引脚占用。
STM32L021K4是ST的超低功耗ARM Cortex-M0+系列,16KB Flash、2KB RAM,封装小,价格便宜,跑一个温度采集和UART通信的任务绰绰有余。它跟ADS122U04IPWR搭配,一个负责高精度模拟前端,一个负责逻辑控制和通信,分工明确。这套组合在工业变送器、HVAC温控器、冷库监测、锅炉温度采集这些场景里非常常见。
我选这套方案的核心逻辑是:用ΔΣADC把模拟端的信噪比做上去,用低功耗MCU把系统功耗和成本压下来,用UART接口简化布线和隔离设计。下面我会把整个设计拆开,从芯片选型、电路计算、寄存器配置到实测调试,一步步讲清楚。
1.1 为什么不用MCU内置ADC直接测RTD
很多人第一反应是STM32L021K4内部有12位ADC,直接拿它测RTD不就行了?我试过,不行。原因有三:
第一,分辨率不够。12位ADC在3.3V参考下,1LSB约0.8mV。PT100在0.1℃时阻值变化0.0385Ω,如果激励电流是1mA,电压变化只有38.5μV,连1LSB的十分之一都不到,根本分辨不出来。就算用PGA放大,内部ADC的噪声和失调也会把信号淹掉。
第二,激励电流源不稳定。RTD是比例式测量,激励电流的精度直接影响结果。MCU的GPIO或DAC输出的电流源温漂大,负载调整率差,跑长线时压降还会变化。ADS122U04IPWR内部的两个激励电流源精度是1%初始误差,温漂50ppm/℃,比自己搭的电路稳得多。
第三,共模干扰和引线电阻。工业现场长线传输会引入共模电压和引线电阻,两线制接法下引线电阻直接叠加到测量结果里,每米铜线约0.02Ω,几十米下来误差就好几度。ADS122U04IPWR支持三线制和四线制RTD接法,可以消除引线电阻影响,内部PGA还能抑制共模干扰。
所以,模拟前端的活必须交给专用ADC,MCU只做数字处理和通信,这是工业温度测量的基本分工。
1.2 系统架构与信号链拆解
整套系统的信号链是这样的:RTD传感器 → 激励电流源 → 模拟前端(PGA+ΔΣADC) → UART数字输出 → STM32L021K4 → 温度换算 → 显示/上传/控制。
ADS122U04IPWR内部结构值得说一下。它有两个差分输入通道,一个内部2.048V基准(温漂5ppm/℃),一个24位ΔΣ调制器,一个数字滤波器,两个匹配的激励电流源(10μA到1.5mA可编程),还有UART接口。PGA增益从1到128可调,增益越大,能测的满量程越小,但分辨率越高。
对于PT100,我通常选1mA激励电流,因为1mA在PT100上产生的功耗是I²R=0.1mW,自热误差可以忽略。如果用1.5mA,功耗到0.225mW,在静止空气中PT100的自热可能到0.05℃,对高精度场景就不合适了。1mA下PT100满量程电压是100Ω×1mA=100mV到138.5Ω×1mA=138.5mV,这个信号用PGA增益16或32比较合适。
STM32L021K4这边,UART波特率设115200,8位数据,无校验,1位停止位。ADS122U04IPWR的UART接口支持自动波特率检测,但为了稳定,我一般固定波特率。MCU收到24位数据后,先做符号扩展,再根据配置的PGA增益和基准电压换算成电压,最后用Callendar-Van Dusen公式反算温度。
2. 硬件电路设计与关键参数计算
硬件设计是这套方案里最容易翻车的地方。RTD信号很小,PCB布局、地线处理、激励电流走线稍有不对,噪声就能把有效信号吃掉。我下面把关键电路和计算过程拆开讲。
2.1 RTD接口电路:三线制还是四线制
RTD接法有两线、三线、四线三种。两线制最简单,但引线电阻直接串在RTD上,每根线电阻Rw会引入误差。假设线长50米,铜线截面积0.5mm²,电阻率0.0175Ω·mm²/m,单根线电阻Rw=0.0175×50/0.5=1.75Ω。两线制下两根线共3.5Ω,对应温度误差约3.5/0.385≈9℃,完全不能接受。
三线制用三根线,其中两根接RTD两端,第三根接RTD一端作为补偿线。ADS122U04IPWR内部有两个激励电流源,可以配置成两个电流源分别从RTD两端注入,第三根线用于测量引线压降。三线制能把引线电阻误差降到很小,但要求三根线材质和长度一致。
四线制最准,两根线走激励电流,两根线走电压测量,电压测量线几乎没有电流,引线电阻压降为零。四线制适合高精度场合,但多一根线,成本高。
我在HVAC和工业变送器里一般用三线制,性价比最高。具体接法是:ADS122U04IPWR的IDAC1从RTD的A端注入,IDAC2从RTD的B端注入,RTD的A端接AIN0,B端接AIN1,第三根线从RTD的A端接到AIN2或REFN。这样两个激励电流源在引线电阻上产生的压降方向相反,可以抵消。
注意:三线制接法要求IDAC1和IDAC2的电流完全匹配,ADS122U04IPWR的两个电流源匹配度是0.1%,这个指标很关键。如果匹配度差,引线补偿就不准。
2.2 激励电流源与基准电阻的选择
ADS122U04IPWR的激励电流源有10μA、50μA、100μA、250μA、500μA、750μA、1000μA、1500μA几档。选1mA的理由前面说了,自热小,信噪比够。但1mA在长线上压降也大,如果线太长,激励电流源可能进入非线性区。ADS122U04IPWR的电流源输出 compliance voltage 是AVDD-0.9V,假设AVDD=3.3V,最大输出电压2.4V。1mA在100Ω RTD上压降0.1V,在引线电阻上假设3.5Ω压降0.0035V,总共0.1035V,远小于2.4V,没问题。
基准电阻Rref的选择要跟激励电流和PGA增益匹配。ADS122U04IPWR的基准电压来自外部Rref上的压降,内部基准是2.048V,但RTD测量通常用比例式接法,即Rref和RTD串联同一个电流源,ADC测的是RTD电压和Rref电压的比值,这样电流源的温漂被抵消。
Rref的计算:ADC的满量程输入电压是±Vref/PGA。对于PT100,最大阻值138.5Ω(100℃),如果PGA=16,Vref=1.65V(Rref=1.65kΩ,1mA),那么满量程输入是1.65/16=0.103V,对应RTD电压0.1385V,超了。所以PGA要选32,满量程0.0516V,还是超。实际上ADS122U04IPWR的输入范围是±Vref/PGA,但RTD电压是单极性,可以配置成单极性测量,满量程是Vref/PGA。如果Vref=1.65V,PGA=16,满量程0.103V,RTD最大0.1385V,还是超。
正确的做法是让Vref大于RTD最大电压。选Rref=2.2kΩ,1mA下Vref=2.2V,PGA=16,满量程2.2/16=0.1375V,RTD最大0.1385V,刚好卡边。选Rref=2.4kΩ,Vref=2.4V,满量程0.15V,有余量。但ADS122U04IPWR的基准输入范围是0.75V到AVDD,2.4V在3.3V AVDD下没问题。
我实际用Rref=2.4kΩ,0.1%精度,25ppm/℃温漂的金属膜电阻。这个电阻的温漂直接影响测量精度,2.4kΩ×25ppm/℃=0.06Ω/℃,对应温度误差0.06/0.385≈0.16℃/℃,太大了。所以Rref必须用低温柔漂的,我选10ppm/℃的,误差降到0.064℃/℃。如果要求更高,用5ppm/℃的,但价格贵不少。
2.3 电源与地线处理
ADS122U04IPWR的AVDD和DVDD可以分开供电,AVDD接3.3V模拟电源,DVDD接3.3V数字电源。我一般用同一个3.3V LDO,但在AVDD引脚加π型滤波:10μF钽电容+100nF陶瓷电容+10Ω电阻+100nF陶瓷电容。DVDD加100nF陶瓷电容就够了。
地线处理是重点。ADS122U04IPWR的AGND和DGND要单点接地,在芯片下方用0Ω电阻或直接连到模拟地平面。RTD的屏蔽线要接到模拟地,不能接数字地。STM32L021K4的数字地和模拟地也要分开,最后在电源入口处单点汇合。
实操心得:我踩过的最大坑是RTD屏蔽线接了数字地,结果变频器一启动,温度读数就跳十几度。后来把屏蔽线改接模拟地,跳变降到0.5℃以内。工业现场,地线就是生命线。
3. 寄存器配置与固件实现
硬件搭好了,接下来是配置ADS122U04IPWR和写STM32L021K4的固件。ADS122U04IPWR的寄存器不多,但每个位都影响测量结果,配错了要么没数据,要么数据乱跳。
3.1 ADS122U04IPWR寄存器映射与关键位
ADS122U04IPWR有4个配置寄存器,通过UART命令访问。UART命令格式是:55h + 命令字节 + 数据。比如写寄存器0,命令是55h 40h,后面跟一个字节数据。读寄存器0,命令是55h 20h,然后读一个字节。
寄存器0(CONFIG0)关键位:
- MUX[3:0]:输入多路复用器选择。0000是AIN0/AIN1,0001是AIN2/AIN3,0010是AIN1/AIN2,等等。三线制RTD我选AIN0和AIN1作为差分输入,AIN2作为引线补偿。
- GAIN[2:0]:PGA增益。000是1,001是2,010是4,011是8,100是16,101是32,110是64,111是128。我选100,增益16。
- PGA_BYPASS:PGA旁路。0是使能PGA,1是旁路。我选0。
寄存器1(CONFIG1)关键位:
- DR[2:0]:数据速率。000是20SPS,001是45SPS,010是90SPS,011是175SPS,100是330SPS,101是600SPS,110是1000SPS。温度测量不需要太快,20SPS或45SPS足够,噪声也低。我选000,20SPS。
- MODE[1:0]:转换模式。00是连续转换,01是单次转换。我选00,连续转换。
- CM:转换模式。0是单极性,1是双极性。RTD电压是单极性,选0。
- VREF[1:0]:基准选择。00是内部2.048V,01是外部REF0,10是外部REF1,11是模拟电源。我选01,外部REF0,即Rref上的压降。
- TS:温度传感器选择。0是禁用,1是使能。我选0。
寄存器2(CONFIG2)关键位:
- IDAC[2:0]:激励电流大小。000是关闭,001是10μA,010是50μA,011是100μA,100是250μA,101是500μA,110是750μA,111是1000μA。我选111,1mA。
- IDAC1_ROUT[1:0]:IDAC1输出引脚。00是AIN0,01是AIN1,10是AIN2,11是AIN3。我选00,AIN0。
- IDAC2_ROUT[1:0]:IDAC2输出引脚。我选01,AIN1。
- BCS[1:0]:烧毁电流源。00是关闭,01是1μA,10是10μA,11是100μA。我选00。
寄存器3(CONFIG3)关键位:
- DRDY_MODE:DRDY引脚模式。0是DRDY,1是DOUT/DRDY。我选0。
- CRC[1:0]:CRC校验。00是禁用,01是使能。我选01,使能CRC,提高通信可靠性。
- BC[1:0]:字节序。00是MSB优先,01是LSB优先。我选00。
配置顺序很重要:先写CONFIG3,再写CONFIG2,再写CONFIG1,最后写CONFIG0。因为CONFIG0的MUX和GAIN会影响后续配置,最后写可以避免中间状态。
3.2 STM32L021K4的UART通信与数据解析
STM32L021K4的UART配置:波特率115200,8位数据,无校验,1位停止位。用HAL库的话,初始化代码大概这样:
UART_HandleTypeDef huart1; huart1.Instance = USART1; huart1.Init.BaudRate = 115200; huart1.Init.WordLength = UART_WORDLENGTH_8B; huart1.Init.StopBits = UART_STOPBITS_1; huart1.Init.Parity = UART_PARITY_NONE; huart1.Init.Mode = UART_MODE_TX_RX; huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE; huart1.Init.OverSampling = UART_OVERSAMPLING_16; HAL_UART_Init(&huart1);ADS122U04IPWR的数据输出是24位,MSB优先。连续转换模式下,DRDY引脚会周期性拉低,表示数据就绪。STM32L021K4可以用外部中断检测DRDY下降沿,然后在中断里读UART数据。但UART读数据需要时间,中断里读容易丢数据。我一般用轮询方式:主循环里检测DRDY引脚状态,拉低就读UART。
读数据的命令是55h 10h,然后读3个字节。代码:
uint8_t cmd = 0x10; uint8_t rx_buf[3]; uint8_t tx_buf[2] = {0x55, cmd}; HAL_UART_Transmit(&huart1, tx_buf, 2, 100); HAL_UART_Receive(&huart1, rx_buf, 3, 100); int32_t adc_code = (rx_buf[0] << 16) | (rx_buf[1] << 8) | rx_buf[2]; if (adc_code & 0x800000) { adc_code |= 0xFF000000; // 符号扩展 }得到adc_code后,换算成电压:V = adc_code × Vref / (PGA × 2^23)。Vref是Rref上的压降,等于Iref × Rref。1mA × 2.4kΩ = 2.4V。PGA=16。所以V = adc_code × 2.4 / (16 × 8388608) = adc_code × 2.4 / 134217728。
然后算RTD阻值:Rrtd = V / Iref = V / 0.001。最后用Callendar-Van Dusen公式算温度:
对于T≥0℃:Rrtd = R0 × (1 + A×T + B×T²) 对于T<0℃:Rrtd = R0 × (1 + A×T + B×T² + C×(T-100)×T³)
PT100的系数:A=3.9083e-3,B=-5.775e-7,C=-4.183e-12。R0=100Ω。
反算温度用迭代法或查表法。STM32L021K4的Flash只有16KB,查表法占空间,我用牛顿迭代法,3次迭代就能收敛到0.01℃。
3.3 温度换算的精度优化
Callendar-Van Dusen公式本身有非线性,PT100在0℃附近线性度好,在100℃以上B项影响变大。如果只测0到100℃,可以简化成线性:T = (Rrtd - 100) / 0.385。但误差在100℃时约0.3℃,要求不高可以用。
我一般用分段线性插值:0到100℃用一段,100到200℃用一段,200到400℃用一段。每段用最小二乘法拟合,误差可以控制在0.05℃以内。STM32L021K4的RAM只有2KB,存3段系数没问题。
注意:ADS122U04IPWR的内部基准温漂是5ppm/℃,但外部Rref的温漂是主要误差源。如果Rref用10ppm/℃的,整个系统温漂约0.1℃/℃。要再高,就得用恒温槽校准,或者用比例式测量加软件补偿。
4. 实测调试与常见问题排查
板子焊好,固件烧进去,第一次上电往往不是惊喜就是惊吓。我下面把调试过程中遇到的典型问题和解决方法整理出来,都是真金白银换来的经验。
4.1 上电后读不到数据怎么办
第一步,检查电源。ADS122U04IPWR的AVDD和DVDD都要在2.7V到5.5V之间,我用3.3V。用万用表量AVDD引脚,应该是3.3V。如果偏低,检查LDO和滤波电路。
第二步,检查UART通信。用示波器看STM32L021K4的TX引脚,发55h 10h时应该有波形。如果没有,检查UART初始化代码和引脚配置。STM32L021K4的USART1默认引脚是PA9和PA10,但有些封装是PA2和PA3,要看数据手册。
第三步,检查ADS122U04IPWR的复位。上电后ADS122U04IPWR需要复位,发55h 06h命令。复位后延时1ms再配置寄存器。我遇到过没复位直接配置,寄存器写不进去的情况。
第四步,检查DRDY引脚。连续转换模式下,DRDY应该周期性拉低。如果一直高,说明ADC没启动。检查CONFIG1的MODE位是不是00,PGA_BYPASS是不是0,VREF是不是01。
4.2 温度读数跳动大的排查思路
读数跳动大是最常见的问题,原因可能有以下几种:
电源噪声。用示波器看AVDD上的纹波,如果超过10mVpp,就要加滤波。我在AVDD引脚加10μF钽电容+100nF陶瓷电容后,纹波从30mVpp降到5mVpp,跳动从2℃降到0.2℃。
地线环路。RTD的屏蔽线、模拟地、数字地如果形成环路,会引入工频干扰。解决方法是单点接地,屏蔽线只接模拟地一端。
激励电流源不稳定。ADS122U04IPWR的电流源需要外部电阻设定,如果电阻温漂大,电流就漂。我用0.1%精度的电阻,温漂25ppm/℃。
PGA增益过高。增益越高,噪声也放大。如果信号本身够大,降低增益反而更稳。我试过PGA=32时跳动0.5℃,PGA=16时跳动0.2℃。
数据速率太快。20SPS时ADC内部滤波器带宽窄,噪声抑制好。如果设成1000SPS,噪声明显增大。温度测量用20SPS足够。
4.3 常见问题速查表
| 现象 | 可能原因 | 排查方法 | 解决方法 |
|---|---|---|---|
| 读不到数据 | UART引脚接反 | 示波器看TX/RX波形 | 交换TX/RX |
| 数据全0 | ADC未复位 | 发55h 06h复位 | 复位后延时1ms |
| 数据全1 | 基准电压丢失 | 量Rref两端电压 | 检查Rref焊接 |
| 读数跳动大 | 电源纹波大 | 示波器看AVDD | 加π型滤波 |
| 读数偏置 | 引线电阻未补偿 | 短接RTD看读数 | 改三线制接法 |
| 温度非线性 | 公式系数错 | 用标准电阻箱校准 | 修正Callendar-Van Dusen系数 |
| 通信CRC错 | CRC未使能 | 读CONFIG3 | 使能CRC |
| 功耗高 | 连续转换模式 | 量AVDD电流 | 改单次转换模式 |
4.4 校准与精度验证
新板子做好后,我会用标准电阻箱代替RTD,分别设0℃(100Ω)、50℃(119.4Ω)、100℃(138.5Ω)、150℃(157.3Ω)、200℃(175.8Ω),记录ADC读数和换算温度,看误差。如果误差在±0.1℃以内,说明硬件和固件都没问题。如果误差大,先查Rref精度,再查PGA增益配置,最后查公式系数。
我实测下来,这套方案在0到200℃范围内,误差可以做到±0.15℃(不加校准),加两点校准后可以到±0.05℃。对于HVAC和工业应用,这个精度足够了。
实操心得:校准的时候,电阻箱的引线电阻也要考虑。我用四线制电阻箱,引线电阻自动补偿。如果用两线制电阻箱,要把引线电阻减掉。
5. 低功耗优化与HVAC场景适配
HVAC系统里,温度变送器往往是电池供电或者两线制环路供电,功耗要求很严。STM32L021K4的Stop模式电流只有0.4μA,ADS122U04IPWR的关断电流是0.1μA,整机平均功耗可以做到10μA以下,用一节锂亚电池能跑好几年。
5.1 单次转换模式与间歇工作
连续转换模式下,ADS122U04IPWR一直工作,电流约200μA。改成单次转换模式,MCU定时唤醒,发单次转换命令,等转换完成读数据,然后ADS122U04IPWR自动进入关断。这样平均电流可以降到20μA以下。
具体流程:STM32L021K4的RTC定时1秒唤醒,唤醒后发55h 08h启动单次转换,等DRDY拉低,读3字节数据,算温度,通过UART上传,然后ADS122U04IPWR发55h 02h进入关断,MCU进入Stop模式。整个唤醒到休眠约50ms,平均电流约15μA。
5.2 两线制环路供电的注意事项
HVAC里常见4-20mA环路供电,变送器从环路取电。ADS122U04IPWR和STM32L021K4的总功耗要小于4mA,否则环路电压不够。这套方案在连续转换模式下总电流约1.5mA,单次转换模式下平均20μA,完全满足。
但两线制环路供电有个问题:环路电流是4-20mA,变送器自身功耗要小于4mA,剩下的电流才是信号。如果变送器功耗波动,环路电流也会波动,影响信号。所以要用低 dropout 的LDO,并且加储能电容,在ADC转换瞬间提供峰值电流。
我一般用10μF钽电容+100nF陶瓷电容做储能,LDO选静态电流1μA的,比如TPS7A02。这样环路电流稳定在4mA,信号不受影响。
5.3 隔离与保护设计
工业现场RTD线可能感应雷击或浪涌,ADS122U04IPWR的输入引脚要加保护。我在AIN0到AIN3每个引脚加一个TVS二极管(如SMBJ3.3A)和一个100Ω限流电阻。TVS钳位电压3.3V,限流电阻限制浪涌电流。但限流电阻会引入噪声,所以用低噪声的金属膜电阻,并且放在TVS后面。
如果RTD线很长,还要考虑共模电压。ADS122U04IPWR的共模输入范围是AVDD-0.9V到AVDD+0.9V,如果共模电压超了,读数会错。我在RTD两端加偏置电阻,把共模电压拉到AVDD/2附近。
注意:TVS二极管的漏电流会影响高阻抗节点的测量。ADS122U04IPWR的输入阻抗很高,TVS漏电流可能到1μA,在100Ω上产生0.1mV误差,对应0.26℃。所以TVS要选低漏电流的,或者用气体放电管加TVS两级保护。
6. 从原型到产品的几个关键决策
原型跑通只是第一步,要变成能批量出货的产品,还有几个坑要填。
6.1 元器件选型与BOM成本
ADS122U04IPWR的单价在3美元左右,STM32L021K4在1美元左右,加上RTD、Rref、LDO、TVS、电容电阻,整套BOM约8美元。对于工业变送器,这个成本可以接受。如果要降成本,可以选ADS122U04的SPI版本ADS122S04,省掉UART转接,但STM32L021K4的SPI引脚更少,布线更简单。
Rref我选Vishay的PTF系列,2.4kΩ,0.1%,10ppm/℃,单价0.5美元。如果选0.05%的,单价1.5美元,精度提升有限,性价比不高。
6.2 PCB布局的实战经验
ADS122U04IPWR的PCB布局有几个原则:
第一,模拟部分和数字部分分区。ADS122U04IPWR放在模拟区,STM32L021K4放在数字区,中间用地线隔开。
第二,RTD输入走线尽量短,并且包地。AIN0和AIN1的走线要对称,长度一致,减少共模干扰。
第三,Rref靠近ADS122U04IPWR的REF0和REF1引脚,走线短而粗,减少压降。
第四,激励电流源的走线要远离数字信号线,避免耦合噪声。
第五,晶振靠近STM32L021K4,走线短,下面不要走其他信号线。
我画过一版板子,RTD走线跟UART走线平行走了10cm,结果温度读数跳1℃。后来把RTD走线改到板子另一面,跳变降到0.1℃。
6.3 固件升级与现场校准
产品出货后,现场可能需要校准。我在固件里留了UART命令接口,可以通过上位机发校准命令,把偏移量和增益系数写到STM32L021K4的Flash里。校准命令格式:55h A0h + 偏移量(4字节)+ 增益系数(4字节)。STM32L021K4收到后写到Flash的最后一页,重启后生效。
Flash写入要注意:STM32L021K4的Flash页大小是1KB,擦写次数1万次。校准命令不能频繁发,否则Flash会坏。我在固件里加了写保护,只有连续发两次校准命令才写入,防止误操作。
7. 这套方案的扩展方向
这套ADS122U04IPWR加STM32L021K4的组合,不止能测RTD,还能测热电偶、热敏电阻、应变片。ADS122U04IPWR的PGA增益可调,输入多路复用器可以切换通道,改一下配置就能测不同传感器。
比如测热电偶,需要冷端补偿,可以用ADS122U04IPWR的内部温度传感器测冷端温度,然后查热电偶分度表。测热敏电阻,需要线性化,可以用STM32L021K4做查表或多项式拟合。测应变片,需要桥式电路,ADS122U04IPWR的激励电流源可以给桥供电,差分输入测桥输出电压。
HVAC里还有湿度、压力、流量等参数,ADS122U04IPWR的多通道可以轮流采集,STM32L021K4做数据处理和通信。一套硬件平台,改固件就能适配不同传感器,这是这套方案最大的优势。
我个人在实际操作中的体会是,工业温度测量最难的不是芯片选型,而是细节处理:地线怎么接、屏蔽怎么走、滤波怎么加、校准怎么做。这些细节在数据手册里不会写,只有踩过坑才知道。ADS122U04IPWR和STM32L021K4这套组合,硬件设计不复杂,但要把精度做到0.1℃,需要耐心调试和反复验证。我建议新手先从两线制RTD加内部基准开始,跑通后再改三线制和外部基准,一步步来,不要一上来就追求最高精度。