基于ADS122U04与MK64FX512的高精度温度测量系统设计 1. 工业与HVAC温度测量系统的整体设计思路1.1 为什么选择ADS122U04IPWR与MK64FX512VDC12这个组合工业现场和HVAC系统的温度测量跟实验室里拿个万用表测室温完全是两码事。工业场景下传感器可能离采集板十几米远走线要穿过变频器、接触器、电机这些强干扰源旁边信号线上耦合的共模噪声动辄几伏甚至十几伏。HVAC场景虽然电磁环境稍好但同样面临长线传输、多点轮询、宽温区覆盖的问题。这种条件下如果直接用MCU内部的12位ADC去采样分辨率不够、抗干扰能力差读数跳得没法看。ADS122U04IPWR这颗芯片就是冲着这类场景设计的。它是TI的一款24位Δ-Σ型ADC内置PGA可编程增益放大器、双匹配电流源IDAC、以及一个UART接口。注意它用的是UART而不是常见的SPI这个选择很关键——UART接口在长距离板间通信和隔离设计上比SPI省心得多SPI在长线上容易受时钟沿畸变影响而UART异步通信对时序容忍度更高。24位分辨率意味着在PGA增益为1时理论最小可分辨电压可以到纳伏级别当然实际有效位数ENOB受噪声限制通常在20-22位左右但这已经足够把PT100那点微弱的电阻变化精确捕捉到了。MK64FX512VDC12是NXP Kinetis K64系列的一款MCUCortex-M4内核120MHz主频带FPU和DSP指令1MB Flash、256KB RAM封装是BGA。选它来配ADS122U04主要看中三点第一它有足够多的UART外设K64系列最多能到6个UART可以同时挂多路ADS122U04做多通道采集第二它的DSP指令和FPU在做温度线性化、滤波、冷端补偿这些运算时速度够快不用外挂协处理器第三工业级温度范围-40到105°C跟ADS122U04的-40到125°C能匹配上整板温漂可控。这个组合的核心逻辑是用高精度Δ-Σ ADC把传感器信号在源头就数字化用带DSP的MCU做实时处理和通信中间用UART做可靠的数据链路。整套方案适合做4通道以内的温度采集模块比如HVAC的冷冻水供回水温度监测、工业炉窑的热电偶多点测温、或者环境试验箱的温度巡检。1.2 温度传感器选型与信号链的匹配逻辑温度测量第一步是选传感器。工业HVAC场景下常见的有三类PT100/PT1000铂电阻、K型/J型热电偶、以及NTC热敏电阻。这三类跟ADS122U04的配合方式完全不同得分开说。PT100是铂电阻0°C时100Ω温度系数约0.385Ω/°C。它的优点是线性度好、稳定性高、互换性强缺点是电阻变化量小——从-50°C到150°C电阻从80.31Ω变到157.33Ω变化量77Ω。如果用恒压源激励1mA电流下电压变化只有77mV再除以增益到ADC输入端的信号就更小了。所以PT100必须用比例法或者恒流源激励ADS122U04内置的双IDAC就是干这个的。用IDAC输出1mA或0.5mA电流流过PT100产生电压直接进ADC同时用另一个IDAC流过参考电阻产生参考电压这样激励电流的温漂和噪声就被比例消掉了。热电偶输出的是热电动势K型在0°C时0mV100°C时约4.096mV灵敏度约41μV/°C。这个信号更小而且是非线性的还需要冷端补偿。ADS122U04的PGA可以设到128倍增益把41μV/°C放大到5.25mV/°C再进24位ADC分辨率绰绰有余。但热电偶的难点不在ADC在于冷端补偿和断线检测。ADS122U04有专门的激励电流源可以用于断线检测也有内部温度传感器可以粗略测冷端温度但要做高精度还是得外挂一颗高精度温度芯片测接线端子处的温度。NTC热敏电阻便宜、灵敏度高但线性度极差而且互换性不好每个批次都要单独标定。在工业场景下除非成本压得极死否则不建议用NTC做多点测温标定工作量太大。如果非要用ADS122U04的高分辨率倒是能弥补NTC的非线性但MCU端的查表或Steinhart-Hart方程计算量会上去。注意传感器选型决定了整个信号链的拓扑。PT100走比例法、热电偶走PGA冷端补偿、NTC走恒压分压软件线性化三条路在PCB布局和软件配置上都不一样必须在画板子之前就定死。1.3 系统架构与数据流规划整套系统的数据流是这样的传感器信号→ADS122U04的模拟输入→PGA放大→Δ-Σ调制器→数字滤波器→UART输出→MK64FX512VDC12的UART接收→MCU做温度换算和滤波→通过RS485/CAN/以太网上报。这里有个关键设计点ADS122U04的UART是命令-响应模式的MCU发命令它才回数据不是连续输出。所以MCU端的UART接收要用中断或者DMA不能轮询否则120MHz的M4核光在那儿等UART数据太浪费。K64的UART支持DMA触发可以配成收到固定字节数后触发DMA搬运到缓冲区MCU只在缓冲区满了之后处理一次这样CPU占用率能压到5%以下。另一个设计点是多路复用。ADS122U04本身是4通道输入两对差分或者四路单端如果要做8路或16路温度采集要么用多颗ADS122U04挂在不同UART上要么外挂模拟开关做通道扩展。外挂模拟开关的缺点是引入额外导通电阻和漏电流对PT100这种低阻传感器影响很大——模拟开关导通电阻通常几十欧姆跟PT100的100Ω比不能忽略。所以如果精度要求高建议直接用多颗ADS122U04每颗管4路MCU用UART地址区分。ADS122U04的UART支持地址配置可以挂多条总线。数据上报部分HVAC场景常用BACnet或Modbus RTU工业场景常用Modbus RTU或CANopen。K64有以太网MAC和CAN控制器做协议转换很方便。如果只是做温度采集模块建议先做Modbus RTU从站实现简单、兼容性好上位机随便找个组态软件就能读。2. ADS122U04IPWR的核心配置与实操要点2.1 寄存器配置流程与关键参数计算ADS122U04的配置全靠寄存器一共4个寄存器配置寄存器0到3。上电后默认是掉电模式必须发命令唤醒并配置。配置流程一般是发RESET命令→发START/SYNC命令→写配置寄存器0输入多路复用器、增益、数据速率→写配置寄存器1模式、转换模式、滤波器→写配置寄存器2IDAC电流、参考选择→写配置寄存器3IDAC路由、断线检测。配置寄存器0的MUX[3:0]位选输入通道。比如要测PT100接在AIN0和AIN1之间就设MUX0000AIN0为正AIN1为负。GAIN[2:0]位选PGA增益PT100用1mA激励时信号约100mV参考电压2.048V增益设1就够了热电偶信号41μV/°C增益要设到128。数据速率DR[3:0]位选20SPS到2000SPS温度测量用20SPS或45SPS就够了速率越低噪声越小。这里有个计算要说明数据速率和噪声的关系。ADS122U04在增益128、20SPS时RMS噪声约1.5μV在2000SPS时RMS噪声约15μV。热电偶41μV/°C如果用2000SPS噪声等效温度约0.37°C根本没法用用20SPS噪声等效0.037°C勉强够。所以温度测量必须用低速档这是Δ-Σ ADC的固有特性——速率换精度。配置寄存器1的CM位选转换模式单次转换还是连续转换。温度测量通常用连续转换MCU定时读就行。滤波器选择上ADS122U04有sinc1、sinc2、sinc3和sinc4可选sinc3在50Hz/60Hz工频抑制上表现最好工业场景建议用sinc3配合20SPS正好把50Hz和60Hz都压下去。配置寄存器2的IDAC[2:0]位选激励电流关断、10μA、50μA、100μA、250μA、500μA、1000μA、1500μA。PT100用1mAPT1000用100μA到250μA避免自热。参考选择REF[1:0]位选内部2.048V参考、外部参考、或者模拟电源做参考。比例法测量时选外部参考参考电阻上的电压进REF引脚。配置寄存器3的IDAC路由要跟硬件设计对上。比如IDAC1走AIN0IDAC2走AIN3那就要设I1MUX0000、I2MUX0011。断线检测位BCS使能后IDAC会轮流从两个方向注入电流通过检测电压异常来判断传感器是否断线。实操心得配置寄存器写完一定要回读验证。ADS122U04的UART没有CRC如果通信受干扰写错了寄存器读数会莫名其妙。建议每次上电配置完后回读所有寄存器跟预期值比对不一致就重新配置。2.2 UART通信协议与命令时序ADS122U04的UART是9600bps固定波特率8位数据、无校验、1位停止位。命令分两类一类是短命令1字节比如RESET0x06、START/SYNC0x08、POWERDOWN0x02、RDATA0x10另一类是寄存器读写命令2字节第一个字节是命令码RREG是0x20|地址WREG是0x40|地址第二个字节是数据。时序上有个坑命令之间要留延迟。ADS122U04内部处理命令需要时间连续发命令如果不留间隔第二条命令会被忽略。实测下来RESET之后要等至少50μs才能发下一条命令WREG之后要等至少10μs。如果MCU的UART发送是阻塞式的发完一个字节等TC标志那自然就有间隔了如果用DMA连续发就要在命令之间插延时。读数据用RDATA命令发0x10之后ADS122U04会回3个字节24位转换结果MSB在前。注意RDATA读的是最近一次转换结果如果转换还没完成读到的可能是旧数据。所以要么用DRDY引脚判断转换完成要么用连续转换模式定时读。ADS122U04有DRDY引脚转换完成会拉低MCU可以用外部中断接这个脚中断里发RDATA读数据这样最可靠。UART的TX和RX要交叉接ADS122U04的TX接MCU的RXRX接MCU的TX。如果中间要加隔离用数字隔离器比如ISO7721注意隔离器的传输延迟不能太大否则9600bps下可能丢位。9600bps一个位104μs隔离器延迟通常几十纳秒完全够。注意ADS122U04的UART不支持多机通信的地址识别如果一条总线上挂多颗要么用MCU的多个UART分别接要么外挂模拟开关切换TX/RX。不要试图在一条UART上并联多颗的TX会冲突。2.3 参考电压与激励电流的稳定性设计比例法测量的核心思想是传感器上的电压和参考电阻上的电压用同一个激励电流产生ADC测的是两者比值激励电流的漂移被约掉。具体接法是IDAC1从AIN0流出经过PT100到AIN1再经过参考电阻RREF到地IDAC2可以悬空或者用于第二路。ADC的REF接RREF高端REF-接地。这样ADC读到的码值 (VPT100 / VREF) × 2^23 × 增益。RREF的选择要算PT100在最高温时电阻最大比如150°C时157.33Ω1mA电流下电压157.33mV。参考电压要大于这个值否则ADC会饱和。选RREF1.65kΩ1mA下参考电压1.65V小于内部参考2.048V留了余量。RREF的精度直接影响测量精度要用0.1%精度、低温漂10ppm/°C以内的金属膜电阻。普通厚膜电阻温漂100ppm/°C在-40到85°C范围内阻值变化0.5%直接引入0.5%的温度误差不能用。IDAC的电流精度本身不高ADS122U04的IDAC初始精度约±1%温漂约50ppm/°C。但比例法下这些误差都被约掉了因为分子分母同时变化。真正影响精度的是RREF的绝对精度和PT100本身的精度。PT100选A级0°C时100±0.06Ω对应±0.15°C误差选AA级±0.04Ω对应±0.1°C。PCB布局上RREF要靠近ADS122U04的REF引脚走线短而粗避免引入热电动势。PT100的走线要用三线制或四线制两线制会把导线电阻算进去——每米铜线约0.02Ω10米线就是0.2Ω对应0.5°C误差。三线制可以补偿导线电阻四线制最准但多一根线。HVAC现场通常用三线制工业高精度场合用四线制。3. MK64FX512VDC12端的软件实现与温度换算3.1 UART驱动配置与DMA数据搬运K64的UART驱动配置分几步先使能UART时钟配置波特率寄存器设置数据位、停止位、校验位然后使能收发。9600bps在120MHz总线时钟下波特率分频值SBR 120000000 / (16 × 9600) 781.25取781实际波特率120000000 / (16 × 781) 9603.07bps误差0.03%完全在容忍范围内。接收用DMA最省心。K64的DMA控制器eDMA可以配成UART接收触发每次收到一个字节就搬运到缓冲区收满3字节后触发中断。中断里把3字节拼成24位有符号数做温度换算。发送也可以用DMA把命令字节放进缓冲区DMA自动发完。这里有个细节UART的接收超时。如果ADS122U04因为干扰没回数据DMA会一直等MCU不知道。所以要配一个定时器做超时检测比如发RDATA后启动10ms定时器定时器到了还没收满3字节就报通信错误重新初始化UART。10ms是9600bps下3字节传输时间3×10/9600≈3.1ms的3倍余量足够。DMA缓冲区要用volatile修饰因为DMA在后台改编译器不能优化掉。缓冲区大小至少3字节如果要做连续采集可以用双缓冲DMA收满一块触发中断中断里切换缓冲区这样不会丢数据。3.2 24位ADC码值到温度值的换算方法ADS122U04输出的是24位二进制补码范围-8388608到8388607。换算成电压V CODE × VREF / (2^23 × GAIN)。注意是2^23不是2^24因为满量程是±VREF/GAIN正负对称。PT100的比例法换算CODE (VPT100 / VREF) × 2^23 × GAIN。VPT100 IPT100 × RPT100VREF IDAC × RREF。如果IDAC1和IDAC2是同一电流源镜像出来的IPT100 ≈ IDAC那CODE ≈ (RPT100 / RREF) × 2^23 × GAIN。所以RPT100 CODE × RREF / (2^23 × GAIN)。算出RPT100后用Callendar-Van Dusen方程反算温度。Callendar-Van Dusen方程T 0°C时R(T) R0 × (1 A×T B×T²)T 0°C时R(T) R0 × (1 A×T B×T² C×(T-100)×T³)。A3.9083e-3B-5.775e-7C-4.183e-12。反算T没有解析解要用迭代或者查表线性插值。工程上常用查表法把-200到850°C按1°C间隔建表表里存PT100电阻值测量值落在哪两个表项之间就线性插值。1°C间隔下线性插值误差小于0.01°C够用。表大小1051个float4KB FlashK64的1MB Flash随便放。热电偶的换算更复杂。先算热电动势Vtherm CODE × VREF / (2^23 × GAIN)。然后加冷端补偿Vtotal Vtherm VcoldVcold是冷端温度对应的热电动势。冷端温度用ADS122U04内部温度传感器或者外挂LM75测。然后查热电偶分度表反算温度。K型热电偶的分度表是非线性的-200到1372°C用查表插值。表大小1573项每项2字节mV值×1000存成整数约3KB Flash。实操心得热电偶的冷端补偿误差是主要误差源。ADS122U04内部温度传感器精度约±0.5°C对应K型热电偶±0.5°C误差。如果要求±0.2°C必须外挂±0.1°C精度的温度芯片而且要放在接线端子旁边不能放在MCU旁边否则测的是板温不是端子温。3.3 数字滤波与工频抑制的工程实现ADS122U04内部已经有sinc3滤波器20SPS时对50Hz和60Hz的抑制约80dB这已经很强了。但工业现场还有低频干扰比如电机启动时的电压跌落、接触器动作时的脉冲群这些靠ADC内部滤波器不够MCU端还要做数字滤波。最简单的是一阶低通滤波Y(n) α×X(n) (1-α)×Y(n-1)α取0.1到0.3。这个滤波计算量小但相位滞后大适合温度这种慢变量。温度变化通常几秒才0.1°C采样率20SPS下α0.1对应时间常数约10个采样周期即0.5秒完全够。如果干扰是周期性的可以用滑动平均Y(n) (X(n) X(n-1) ... X(n-N1)) / N。N取20对应1秒窗口对50Hz干扰有很好的抑制。滑动平均的相位滞后是(N-1)/2个采样周期N20时约0.5秒也能接受。更讲究的可以用IIR陷波器专门滤50Hz但K64的DSP指令做二阶IIR只要几个周期20SPS下CPU占用率忽略不计。不过陷波器对频率匹配要求高电网频率波动±0.5Hz就会让陷波效果变差所以工业场景还是滑动平均更稳。滤波后的数据再做限幅如果新值和旧值差超过5°C认为是个野点丢弃。这个逻辑能挡住大部分脉冲干扰。限幅阈值要根据实际温度变化率设HVAC水温变化率通常小于1°C/分钟5°C阈值很宽松工业炉窑可能变化快阈值要放大。4. 常见问题与排查技巧实录4.1 读数跳动大、噪声高的排查思路读数跳动是最常见的问题。排查顺序是先看电源再看参考再看输入最后看配置。电源方面ADS122U04的AVDD和DVDD要分开滤波AVDD用10μF钽电容0.1μF陶瓷电容DVDD同样。如果AVDD和DVDD共用一路LDOLDO的PSRR要够高至少60dB1kHz。实测中遇到过LDO选型不当DVDD上的数字噪声耦合到AVDD读数跳动从±0.1°C恶化到±2°C。换用TPS7A4700这种低噪声LDO后恢复正常。参考方面RREF的走线要远离数字信号。如果RREF和UART走线平行走了一段UART翻转时会耦合噪声到参考上读数会出现跟通信同步的跳动。解决方法是RREF走线包地或者把UART走线远离模拟区。输入方面PT100的引线要屏蔽屏蔽层单点接地。如果引线没屏蔽50Hz工频会耦合进来20SPS下虽然sinc3滤了一部分但共模转差模后还是会残留。用双绞屏蔽线屏蔽层接模拟地能改善很多。配置方面检查PGA增益和数据速率。增益设太高会让PGA饱和读数卡在满量程数据速率设太高噪声大。用示波器看DRDY引脚如果DRDY频率跟配置的速率不符说明配置没写进去回读寄存器确认。4.2 通信失败与数据错位的定位方法UART通信失败通常有三种表现完全没数据、数据错位、数据偶尔错。完全没数据先查硬件TX/RX有没有接反ADS122U04的电源和地有没有接RESET引脚有没有拉高。ADS122U04的RESET是低有效如果悬空可能被干扰拉低芯片一直复位。建议RESET接10k上拉到DVDD或者直接接MCU的GPIO控制。数据错位通常是波特率不匹配或者停止位不对。ADS122U04固定9600bps、8N1MCU端如果设成9600bps但时钟源不准比如用内部RC振荡器误差2%累积到第10位就可能错。K64用外部晶振做UART时钟源误差通常小于0.1%没问题。如果MCU端用了波特率自动检测要确认检测结果确实是9600。数据偶尔错多半是干扰。UART线加磁珠或者共模电感能压住高频干扰。如果线长超过1米建议用双绞线TX和RX各绞一对再跟地线绞在一起。软件上加校验虽然ADS122U04的UART没有CRC但可以在MCU端做合理性检查比如连续读3次如果3次差异超过阈值就丢弃重读。注意ADS122U04的UART在收到无效命令时会忽略不会回错误。所以如果MCU发了命令但没收到预期响应不要等直接超时重发。重发3次还失败就报故障。4.3 温度换算偏差大的校准与补偿温度换算偏差大先分清是增益误差还是偏移误差。增益误差表现为全量程范围内偏差成比例偏移误差表现为零点偏、满量程也偏同样值。校准方法用高精度电阻箱代替PT100分别输入0°C、100°C、200°C对应的电阻值100Ω、138.51Ω、175.86Ω记录ADC码值和换算温度。如果0°C时偏差0.5°C200°C时偏差1.0°C说明有增益误差需要调整RREF的标定值。如果0°C和200°C都偏0.5°C说明是偏移误差在换算结果上减0.5°C就行。RREF的标定值不要用标称值要用实测值。拿6位半万用表测RREF的实际阻值比如标称1.65kΩ实测1.6492kΩ换算时用1.6492kΩ能消掉0.05%的增益误差。PT100的R0也要标定A级PT100的R0偏差±0.06Ω对应0.15°C如果要求高精度每颗PT100单独标定R0。热电偶的偏差主要来自冷端补偿。如果冷端温度测不准整个量程都会偏。校准方法是把热电偶短接模拟0°C热端读出的温度应该等于冷端温度。如果读出25°C但实际冷端是23°C说明冷端补偿有2°C偏差在软件里减掉。4.4 常见问题速查表现象可能原因排查方法解决措施读数跳动±2°C以上电源噪声大示波器看AVDD纹波换低噪声LDO加π型滤波读数跳动跟通信同步参考走线耦合数字噪声示波器看REF引脚RREF走线包地远离UART读数卡在满量程PGA饱和读配置寄存器确认增益降低增益或增大RREF通信完全无响应RESET被拉低万用表测RESET引脚电压RESET上拉或接GPIO控制数据偶尔错位波特率偏差累积示波器测位宽用外部晶振做UART时钟温度整体偏0.5°C偏移误差0°C点校准软件减偏移温度随温度升高偏差增大增益误差多点校准标定RREF实际值热电偶读数偏低冷端补偿不准短接热电偶读冷端温度校准冷端或换高精度温度芯片断线检测误报IDAC路由配置错回读配置寄存器3按硬件连接重配IDAC路由多路采集互相干扰模拟开关导通电阻大测开关两端电压差改用多颗ADS122U045. 工业与HVAC场景的落地经验与扩展思路5.1 工业现场的抗干扰加固措施工业现场的电磁环境比实验室恶劣得多。除了前面说的电源滤波、参考走线、屏蔽线还有几个加固措施值得做。隔离是工业产品的标配。ADS122U04的UART侧加数字隔离器电源侧加隔离DC-DC把现场侧和系统侧完全隔开。隔离耐压至少2500V工业场景建议5000V。隔离器选ISO7721这类电容隔离速率100Mbps延迟几纳秒对9600bps完全无影响。隔离DC-DC选带稳压的比如SN6501变压器输出5V再LDO到3.3V。TVS保护也不能少。PT100引线可能感应雷击浪涌虽然能量不大但足以打坏ADC输入。在AIN0/AIN1对地各加一颗TVS钳位电压选5V或6V结电容要小小于10pF否则影响ADC采样。TVS要放在连接器入口走线先过TVS再进ADC。共模扼流圈对长线传输很有用。PT100引线用共模扼流圈比如ACM系列阻抗选100Ω100MHz能压住共模噪声。注意扼流圈的直流电阻要小否则跟PT100的100Ω比不能忽略。选直流电阻小于1Ω的型号。PCB分区要严格。模拟区、数字区、电源区分开地平面用单点连接或者磁珠连接。ADS122U04放在模拟区UART走线跨到数字区时用地平面隔离。晶振远离模拟区至少10mm以上。5.2 HVAC多路温度巡检的扩展方案HVAC系统通常要测十几路温度冷冻水供回水、冷却水供回水、室内外温湿度、风管温度等。用单颗ADS122U04只能测4路要扩展。方案一多颗ADS122U04多UART。K64有6个UART可以挂6颗ADS122U04共24路。每颗独立配置互不干扰。缺点是成本高每颗ADS122U04加外围约20元6颗就是120元。优点是精度高、隔离方便每颗可以单独隔离。方案二多颗ADS122U04UART多路复用。用模拟开关切换UART总线MCU只有一个UART分时跟每颗通信。缺点是切换时要有稳定时间而且模拟开关引入电容会影响UART波形。9600bps下问题不大但要多路复用芯片比如TMUX1574导通电容几pF对9600bps影响可忽略。方案三单颗ADS122U04外部模拟开关。ADS122U04的4路输入通过模拟开关扩展到16路。缺点是模拟开关导通电阻影响PT100精度要用低导通电阻的开关比如ADG1408导通电阻4Ω而且要做导通电阻补偿——在软件里减掉开关电阻。这个方法成本最低但精度最差适合对精度要求不高的场合。实操心得HVAC场景温度测量精度通常要求±0.5°C方案三的模拟开关引入的误差约±0.2°C加上PT100本身±0.15°C总误差±0.35°C勉强够。但如果要求±0.2°C必须用方案一或方案二。5.3 低功耗设计与电池供电的可行性有些HVAC场景比如无线温度传感器要用电池供电。ADS122U04的功耗在连续转换模式下约1.5mAMK64FX512VDC12在120MHz全速运行约50mA加起来50mA以上电池供电撑不了多久。低功耗设计思路间歇工作。MCU大部分时间休眠定时唤醒比如每10秒一次唤醒后给ADS122U04上电等稳定后读一次温度然后断电休眠。ADS122U04从掉电到稳定需要约1msMCU从休眠到唤醒约10μs整个采集过程约5ms占空比0.05%。平均电流MCU休眠约10μAADS122U04断电约1μA采集时50mA×5ms/10s25μA总平均约36μA。用2000mAh电池可以撑约6年实际考虑电池自放电和温度影响2-3年没问题。K64的低功耗模式有VLPR、STOP、VLPS等。STOP模式电流约200μAVLPS约50μA。如果要求更低可以用RTC唤醒RTC在VBAT域电流约1μA。但K64从STOP唤醒要重新配置时钟和外设唤醒时间约100μs对温度采集来说可以接受。ADS122U04的POWERDOWN命令可以关断模拟部分电流降到0.1μA。但要注意掉电后配置寄存器会丢失唤醒后要重新配置。配置时间约1ms加上ADC稳定时间总共约5ms。5.4 从原型到产品的工程化注意事项原型验证通过后转产品还有几个坑要填。EMC测试是必过的。工业产品要过IEC 61000-4-2静电、4-3辐射抗扰、4-4快速瞬变、4-5浪涌、4-6传导抗扰。ADS122U04的模拟输入对快速瞬变很敏感4-4测试时如果PT100引线没加TVS和共模扼流圈读数会跳。加TVS和扼流圈后能过4-4 Level 3。4-5浪涌能量大TVS要选功率大的比如SMBJ5.0A峰值功率600W。温度循环测试也要做。-40到85°C循环100次看RREF的阻值有没有漂移PT100的焊点有没有开裂。RREF选低温漂的焊点用无铅焊锡但无铅在低温下容易脆-40°C时可能开裂。如果产品要过-40°C建议用有铅焊锡或者导电胶。长期稳定性方面PT100会随时间漂移每年约0.05°C。如果要求长期精度每年要校准一次。ADS122U04的增益也会漂移但比例法下被RREF的漂移抵消了一部分。RREF选Vishay的PTF系列年漂移25ppm对应0.0025°C/年可以忽略。生产校准要设计校准工装。用高精度电阻箱模拟PT100在0°C、100°C、200°C三点校准记录每块的增益和偏移写入Flash。校准工装用继电器切换电阻箱MCU通过UART读温度自动计算校准系数。每块校准时间约30秒产线可以接受。这个方案我在几个HVAC项目上用过冷冻水温度测量精度做到±0.3°C工业炉窑热电偶测量做到±1°C主要是冷端补偿限制。ADS122U04的UART接口在长线传输上确实比SPI省心MK64FX512VDC12的DSP做温度换算也绰绰有余。如果要做更高精度可以考虑ADS122U04的SPI版本ADS1220但SPI在隔离和长线上要多花心思。后续如果要扩展可以加以太网做Modbus TCPK64的MAC支持RMII外挂PHY就行软件用lwIP协议栈实现起来不难。