ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

TL431+惠斯登电桥低成本PT100测温方案详解

TL431+惠斯登电桥低成本PT100测温方案详解 手上正好在做一批PT100的测温板子最开始方案选的也是专用ADC芯片后来算了下BOM成本再加上实际调试中遇到的基准源稳定性和共模干扰问题干脆换了个思路TL431惠斯登电桥配合MCU内置ADC整体精度反而更好。这个方案不算新但每次分享给同事时都发现还是有不少人习惯于“测温就上高精度ADC芯片”忽略了前端电桥和基准源的设计才是决定精度的关键。这篇文章就围绕“TL431电桥搞定PT100测温”这条主线把电路设计思路、参数计算、实测校验的完整过程拆开来讲适合正在做工业温度采集、仪表设计或者准备用最低成本实现可靠测温的工程师参考。1. 为什么用TL431电桥方案而不是直接堆ADC芯片很多搞嵌入式的朋友一提到PT100测温第一反应就是“选一颗高精度ADC芯片比如ADS1220、ADS1247之类”然后把PT100的电阻变化直接接到ADC的模拟输入端。这个思路本身没错但你在真正设计的时候会发现整个系统的精度瓶颈往往根本不在ADC的分辨率上而在前端的基准源、激励方式和信号调理电路。1.1 高精度ADC芯片方案的痛点用专用ADC芯片时通常会给PT100提供一个恒流源激励然后测PT100两端的电压再结合ADC的参考电压把电压值转换出来。这时候有两个绕不开的问题第一是基准源。ADC的转换精度直接依赖于参考电压VREF的稳定性。很多设计中图省事直接用3.3V LDO的输出做VREF但普通LDO的温度系数通常在30~50ppm/°C温度一变化参考电压自己就飘了转换结果自然不准。如果芯片内部有基准还好否则就得另外加基准源芯片比如REF5025一片就要十几块成本直接上去。第二是共模干扰。PT100的引线往往要拉到几米甚至几十米外工业现场电机、变频器一开线缆上感应出来的共模噪声很大。如果前端不做差分测量单端采样的结果会被干扰信号直接淹没。专用ADC芯片虽然也带差分输入但前端激励源和布线上处理不好同样白搭。1.2 TL431电桥方案的核心优势换到TL431电桥方案之后几个痛点刚好被对应解决掉TL431作为可调精密基准源输出电压典型值2.5V不同型号在2.495V~2.5V之间温漂可以做到30ppm/°C左右一片才几毛钱远低于专用基准芯片的成本。惠斯登电桥天然是差分结构PT100和参考电阻分别位于电桥的两个桥臂输出的是差分电压。对于电源波动、线缆感应等共模信号理论上有很强的抑制能力。电桥输出的信号量级从几毫伏到上百毫伏经过一级差分放大器放大之后完全可以用MCU自带的12位ADC来采样。也就是说不需要额外的高精度ADC芯片只要一颗普通运放配合内置ADC就能完成整个链路。1.3 这个方案适合谁、用在哪些场景这个方案的定位很明确适合成本敏感、精度要求中等偏上0.1~0.5°C级别、且希望用最少的器件在MCU端完成温度采集的场景。比如温控仪表、变送器、工业数据采集模块、电热设备控制板这类产品。它不适合的量程要求极高比如±0.01°C、需要超低温漂、或者需要做高精度计量校准的场景那种情况下还是老老实实上高精度ADC和专用恒流源吧。另一个要注意的点是这个方案本质上是“用电路设计换器件成本”。你需要在电桥的对称性、参考电阻的精度、放大器的失调和温漂上花心思调校如果对这些底层参数完全不熟悉直接照搬电路反而容易踩坑。所以下面我把原理和实操一起讲清楚方便你真正吃透这套方案。2. 核心原理PT100、TL431与惠斯登电桥要真正理解这套方案不能只停留在“照着接就能用”的层面。PT100的阻值随温度怎么变、TL431在这条链路里到底干什么、电桥是怎么把电阻变化转换成电压的这三件事是环环相扣的。2.1 PT100到底怎么测先搞懂电阻-温度特性PT100是铂热电阻0°C时阻值为100Ω。它利用铂金属电阻值随温度升高而增大的特性来测温测量范围通常在-200°C~850°C但在工业控制中应用最多的是0~200°C或者0~400°C区间。根据IEC 60751标准PT100的阻值-温度关系在0°C以上可以用二次多项式近似R(t) R0 × (1 A×t B×t²)其中R0100ΩA3.9083×10⁻³ /°CB-5.775×10⁻⁷ /°C²。带进去算几个典型值0°C时R100.00Ω50°C时R≈119.40Ω100°C时R≈138.51Ω150°C时R≈157.33Ω200°C时R≈175.86Ω可以看到温度每升高1°C阻值大约增加0.385Ω左右。这个变化量在总阻值中的占比非常小所以直接测单端电压时有用信号会被很大的直流偏置淹没。这也是为什么必须要用电桥结构来测它能通过桥臂平衡把“零温度对应的电压”抵消掉只放大温度变化引起的差值。2.2 TL431在电路里扮演什么角色TL431是一颗三端可调分流基准源在很多开关电源的反馈电路里都能看到它的身影。它内部的参考电压Vref大约是2.5V实际为2.495V不同批次有差异通过外部两个电阻分压可以把阴极电压稳定在任意的2.5V以上电压。在这个测温电路里TL431最重要的作用是给电桥提供一个稳定的直流激励电压。你可能会有疑问为什么不用稳压芯片或者直接接电源原因在于电桥的输出虽然差分对称但电源电压的缓慢漂移依然会影响最终测量结果。如果直接用开关电源或LDO输出给电桥供电其纹波和温漂都会叠加到电桥输出上。TL431本质上是利用内部高增益误差放大器和2.5V带隙基准来稳定输出电压所以它既不需要外部提供高精度参考又能对抗输入端电压波动非常适合给电桥供电用。典型接法是这样TL431的阴极串一个限流电阻接到电源正极参考脚通过两个分压电阻接到阴极输出调节分压比让输出固定在2.5V。这里的限流电阻需要保证TL431正常工作电流在1mA~100mA范围内。2.3 惠斯登电桥如何把微小阻值变化变成电压信号惠斯登电桥是最经典的差分测量结构四个桥臂电阻接成菱形两对边接激励电压另外两个节点输出差分电压。当电桥处于平衡状态即两桥臂的分压比相等时输出为0V当其中一个桥臂阻值变化时平衡被打破输出一个与变化量相关的差分电压。具体到PT100测量电路我把电桥设计成如图1所描述的结构两个上桥臂电阻R1和R2相等下桥臂分别是精密参考电阻R3和PT100热电阻RT。激励电压VREF由TL431提供。这样两条分压支路的输出电压分别为VA VREF × R3 / (R1 R3) VB VREF × RT / (R2 RT)当RTR3时VAVB差分输出VOUTVB-VA0。温度升高后RT增大VB随之升高VOUT就变成随温度单调变化的电压信号。这个电压信号经过差分放大器放大后送给ADC采样就完成了从电阻变化到数字量的转换。这种结构的精髓在于VREF的波动会同时作用于两条支路在差分输出时大部分被抵消掉。这就是“桥式测量”能抑制电源扰动的根本原因。3. 完整电路设计与实操原理理解了之后下面进入实操环节。我会把完整电路连接关系、元件参数计算、放大和采样链路以及温度换算方法逐一说明。这套电路我在实际项目中已经量产过一批稳定性和一致性都经得起验证。3.1 完整电路连接关系电路图文字版因为文章里不好直接贴PCB工程文件我先把电路的节点连接关系完整列出来你可以照着这个关系在立创EDA或者Altium里画图序号节点名称连接关系1VREFTL431阴极输出电压2.5V接电桥两个上桥臂R1、R2的上端2V电桥正输出R1下端与参考电阻R3上端的连接点3V-电桥负输出R2下端与PT100上端的连接点4GNDR3下端、PT100下端、TL431阳极共同接地5放大器输入V接仪表放大器同相输入V-接仪表放大器反相输入6放大器输出接MCU ADC采样引脚对地并联100nF滤波电容TL431供电端电源正极比如12V串一个1kΩ限流电阻R4接到TL431阴极TL431阳极接地TL431的REF引脚通过分压电阻连接到阴极和GND。设置输出电压为2.5V时可以直接把REF接到阴极上因为TL431内部参考就是2.5V这样最简单也避免外部分压电阻引入额外温漂。关键提醒R1和R2务必选用精度0.1%、温漂25ppm/°C的金属膜电阻或精密贴片电阻。这两个电阻低于0.1%精度时电桥的初始不对称会产生一个较大的固定偏置电压后期全靠软件校准去补偿补偿起来麻烦不说温度一变化又会重新漂移。3.2 关键参数计算与元件选型我采用的是R1R21kΩ、R3100Ω精密电阻的组合。为什么这样选前面算过如果上桥臂也用10kΩ电桥在0°C时的共模电压只有约24.75mV差分信号最大才几毫伏到十几毫伏对后级放大器的失调电压和噪声要求太高。把上桥臂降到1kΩ后0°C时两条支路的电压约为227mV差分信号在0~200°C范围内可以到146mV信噪比明显改善。具体参数计算如下VREF 2.5VR1R21kΩ精度0.1%R3100Ω精度0.1%温漂25ppm/°CRT为PT1000°C时 VA 2.5 × 100/(1000100) ≈ 227.27mV VB 2.5 × 100/(1000100) ≈ 227.27mV 差值VOUT0mV100°C时RT≈138.51Ω VB 2.5 × 138.51/(1000138.51) ≈ 304.13mV 差值VOUT 304.13 - 227.27 ≈ 76.86mV200°C时RT≈175.86Ω VB 2.5 × 175.86/(1000175.86) ≈ 373.85mV 差值VOUT 373.85 - 227.27 ≈ 146.58mV也就是说在0~200°C测温区间内电桥差分输出从0mV变化到约146.58mV平均灵敏度约0.73mV/°C。这个量级对于MCU内置ADC来说还是太小需要放大。放大器的选择上我用的是INA128仪表放大器增益G20倍。设置方法是引脚1和引脚8之间接一个外部电阻RG增益公式为G150kΩ/RG。要得到20倍增益RG约等于2.63kΩ实际可取2.7kΩ实测增益约19.5倍靠软件标定校准即可。放大后的电压范围为0°C时约0V100°C时约1.50V200°C时约2.86V这个范围正好落在3.3V ADC的输入量程内且不会触及满量程留出了约0.44V的余量有效避免采样饱和。如果你用的是STM32ADC参考电压是3.3V12位分辨率对应的每个LSB约为0.806mV。结合前端约0.73mV/°C×20的灵敏度温度分辨率理论可达0.055°C/LSB完全够用。3.3 从差分信号到MCU ADC放大与采样运放选型上除了INA128也可以用国产的AD620替代或者用双通道低失调运放OP07搭建三运放仪表放大器结构。如果温度测量范围不大用单运放做差分放大也可以但要注意输入共模电压范围和电阻匹配精度。PCB布局需要注意的是放大器输入走线尽量短且两条差分线要等长、贴近走减少差模干扰。TL431输出的2.5V基准线要走粗一点电桥供电节点处加10μF钽电容和100nF陶瓷电容并联去耦。PT100如果通过线缆引出线缆建议用屏蔽双绞线屏蔽层单端接地。ADC采样前必须加RC滤波。我在实际设计中用的是100Ω串联电阻加100nF对地电容截止频率约16kHz可以滤掉大部分高频干扰。如果现场干扰特别严重可把电容加大到1μF但要注意ADC采样时间是否足够否则电容充电时间过长会导致采样值偏低。MCU内部ADC配置使用12位分辨率采样时间尽量拉长。以STM32F103为例ADC采样周期建议设在55.5周期以上给内部采样电容足够充电时间。连续转换或单次转换都可以但建议每次取16次采样去掉最大最小值后取平均这个软件滤波对降低随机噪声效果很明显。以下是STM32的HAL库ADC采集核心代码单通道、DMA方式ADC_HandleTypeDef hadc1; DMA_HandleTypeDef hdma_adc1; uint16_t adc_buf[16]; uint32_t adc_sum 0; uint16_t adc_filtered 0; // 在main函数中初始化ADC和DMA后循环执行 for (uint8_t i 0; i 16; i) { HAL_ADC_Start_DMA(hadc1, (uint32_t*)adc_buf[i], 1); while (HAL_ADC_GetState(hadc1) ! HAL_ADC_STATE_READY); } // 去掉最大值和最小值后求平均 uint16_t max_val 0, min_val 4095; uint32_t sum 0; for (uint8_t i 0; i 16; i) { if (adc_buf[i] max_val) max_val adc_buf[i]; if (adc_buf[i] min_val) min_val adc_buf[i]; sum adc_buf[i]; } sum sum - max_val - min_val; adc_filtered sum / 14; float voltage (float)adc_filtered * 3.3f / 4095.0f;注意HAL的DMA方式在连续采集时需要处理好时序我这里每次只转换一次再等待虽然效率不高但稳定可靠。如果想用连续模式需要注意DMA缓冲区半满和全满中断的处理防止数据覆盖。3.4 温度换算从ADC码值到实际温度放大后的电压最终要换算成温度。换算链路是这样的反向推导VADC VOUT × G (VB - VA) × G而VB和VA本身又是RT的函数。所以理论上有两条路一是公式反推。把VA当成已知量用测量到的VADC反算出VB、RT再用PT100分度公式反解温度。但二次方程反解比较麻烦还要用浮点运算。二是查表插值。在代码里建一张PT100分度表以1°C为步进存储0~200°C对应的ADC值前提是你已经把放大器增益和电桥参数固化到程序里然后用线性插值求出任意ADC值对应的温度。这个方法计算量小结果稳定适合MCU场景。实际项目中我用的是查表插值法。核心思路是先用代码生成一张0~200°C的ADC查找表这张表可以通过实测标定得到也可以用理论计算得到。理论计算表在批量生产时可能存在个体差异所以建议每台设备在生产时做一次两点标定然后对查表进行偏移修正。查表法的C语言示例如下const uint16_t adc_table[201] { // 0~200°C对应的ADC码值由前端增益和电桥参数计算/标定得到 0, 42, 85, 128, ... , 3548 }; float get_temperature(uint16_t adc_val) { if (adc_val adc_table[0]) return 0.0f; for (uint8_t i 1; i 200; i) { if (adc_val adc_table[i]) { float ratio (float)(adc_val - adc_table[i-1]) / (float)(adc_table[i] - adc_table[i-1]); return (float)(i - 1) ratio; } } return 200.0f; }如果不想存201个点的表也可以用分段线性近似。比如0~200°C之间每20°C取一个标定点共11个点误差可以控制在0.2°C以内适合对存储空间特别敏感的单片机。4. 调试经验与常见问题排查实录这个方案量产和调试过程中我踩过不少坑。很多问题不是出在电路原理上而是出在实际应用场景中的细节上。这里整理几个典型问题都是真实项目里的第一手经验。4.1 最容易被忽视的温漂问题第一次调试样机时室温28°C下精度非常好误差不到0.1°C。结果放到老化箱里升温到60°C温度显示比实际偏高将近1°C。排查后发现问题出在参考电阻R3用的是普通贴片电阻温漂100ppm/°C60°C时阻值就偏了0.3Ω以上等效温度误差接近0.8°C。后来把R3换成了25ppm/°C的精密电阻同时把R1、R2也升级到25ppm/°C这个问题就基本解决了。各位在设计时不要为省几毛钱选普通电阻电桥方案里这四个桥臂电阻的温漂直接决定系统的温度稳定性。4.2 三线制接法解决导线电阻误差PT100测温的接线方式有2线制、3线制、4线制三种。2线制最简单但导线的自身电阻比如1米长的导线可能有0.1~0.5Ω会直接叠加到PT100的阻值上造成很大的测量误差。10米导线误差等效到温度上可能偏好几度根本没法用。我的方案中推荐采用3线制接法。具体实现方式是PT100的一端直接接电桥的负输出节点另一端引出两根导线一根接PT100的桥臂电阻R2下端另一根接ADC的参考地或放大器的参考地。利用惠斯登电桥的对称性导线电阻在两条支路中产生的压降可以相互抵消从而消除导线电阻的影响。实际项目中PT100探头到电路板的距离在5米左右使用3线制后温度显示稳定波动小于0.1°C导线电阻的影响基本清零。4.3 ADC采样值跳动的排查方法如果ADC采样值一直跳不要第一个怀疑ADC芯片先检查这几个方面TL431是否振荡。TL431的阴极对地一定要有电容否则在特定输入电压和负载条件下会自激振荡输出电压出现高频纹波。我第一次做的时候漏加了阴极对地的10μF电容示波器上能看到约50mV的高频振荡。放大器电源是否干净。仪表放大器的供电如果直接从开关电源输出取纹波会耦合到输出端。建议在放大器电源引脚加100Ω10μF的RC去耦。采样时序是否足够。MCU内置ADC的采样电容通常是pF级别如果外部信号源阻抗太高采样时间不够会采到不准确的值。可以软件增大采样周期或者在前级加一级运放缓冲输出。4.4 精度校准与误差分析最后说说精度校准。硬件设计再完善也不可能做到零误差所以量产时必须做校准。我的做法是两点校准在0°C冰水混合物和100°C沸水两个温度点记录ADC值然后对查表做线性偏移修正。具体来说如果0°C实测ADC值比理论值大了Δ0100°C实测比理论值大了Δ100那就在整个量程范围内做线性插值修正有效消除电路电阻精度、放大器增益误差带来的系统误差。校准后的整体误差表现在0~200°C范围内实测最大误差约0.3°C未校准前最大误差约1.2°C完全满足一般的工业测控需求。从成本角度看这套方案的核心器件成本大约只有专用ADC芯片方案的30%。用“TL431精密电阻仪表放大器MCU内置ADC”的组合换来的是系统整体精度可控、供应链简单、成本低而且调试熟练后调参并不复杂。如果你手头的项目也在做PT100测温且对成本比较敏感我建议你把这套方案当成首选去评估而不是一上来就选高端的ADC芯片。
返回列表