首页 / 资讯中心 / 文章详情

INA333仪表放大器:便携式传感器信号调理的微功耗零漂移解决方案

INA333仪表放大器:便携式传感器信号调理的微功耗零漂移解决方案 ★ FEATURED ARTICLE
1. 便携式传感器信号调理的痛点与INA333的破局思路搞过便携式传感器项目的人都有一个共同体会传感器本身往往不是最难的难的是它输出的信号太弱、太脏根本没法直接喂给单片机的ADC。比如应变片电桥满量程输出可能只有几毫伏热电偶在常温段的输出更是只有几十微伏每摄氏度心电电极拾取的信号也不过1mV上下。这些信号如果直接进STM32或者Arduino的ADC基本就是被噪声淹没的命——工频干扰、电源纹波、PCB走线耦合、甚至你手靠近电路板都会让读数跳得没法看。解决这个问题的核心器件就是仪表放大器。它和普通运放最大的区别在于输入阻抗极高、共模抑制比极强、增益通过单颗电阻就能精确设定而且内部三运放结构保证了两个输入端的对称性。市面上仪表放大器不少ADI的AD620、TI的INA128都是经典款但如果你做的是便携设备供电是单节锂电或者两节纽扣电池那这些老牌器件就会让你很头疼——它们大多需要双电源供电或者单电源下输入范围受限严重。INA333这颗芯片就是冲着这个痛点来的。它是TI推出的一款微功耗零漂移仪表放大器静态电流只有50μA供电范围1.8V到5.5V单电源就能跑而且输入共模范围可以低到负电源轨以下0.1V。这意味着什么意味着你可以用一节3.7V锂电直接给它供电输入信号可以贴着地走输出还能轨到轨摆到接近电源正极。对于便携式传感器信号调理来说这几乎是量身定做的。我第一次用INA333是在一个便携式肌电采集项目上。当时用AD620搭的前端双电源±5V光电源部分就占了大半块板子续航也撑不住。换成INA333之后整个模拟前端缩到指甲盖大小单节锂电供电连续采集8小时电量还有富余。从那以后但凡是电池供电的弱信号采集项目我第一反应就是先看看INA333能不能用。这篇文章面向的是正在做便携式传感器项目、被信号噪声折磨过的嵌入式开发者。不管你是用Arduino做植物灌溉监测还是用STM32做毕业设计里的空气质量检测只要涉及到弱信号调理INA333都值得你花时间研究。接下来我会从芯片选型逻辑、电路设计细节、实操步骤、到常见问题排查把这块“小钢炮”的用法彻底讲透。2. INA333核心特性与选型逻辑拆解2.1 为什么是INA333而不是普通运放搭仪表放大很多人第一反应是仪表放大器不就是三个运放搭一下吗我用LM358自己搭一个不行吗理论上行实际上坑很多。自己搭三运放结构第一关就是电阻匹配。仪表放大器的共模抑制比直接取决于电阻匹配精度差0.1%的匹配度就能让CMRR掉到60dB以下。而INA333内部激光修调过的电阻网络CMRR典型值100dB你用手工电阻根本追不上。第二关是温漂。普通运放的失调电压温漂动辄几μV/°C而INA333是零漂移架构内部有斩波稳零电路失调电压最大25μV温漂只有0.1μV/°C。这个指标对于需要长时间稳定采集的便携设备来说太关键了——你不会希望设备开机半小时后读数慢慢飘走吧。第三关是功耗和供电。自己搭三运放至少三颗运放每颗静态电流就算100μA加起来也300μA了还不算电阻网络上的损耗。INA333一颗芯片50μA搞定单电源1.8V就能工作这在便携设备里是数量级的优势。2.2 关键参数解读与便携场景的匹配INA333的 datasheet 里有一堆参数但便携式传感器信号调理最需要关注的是这几个参数典型值对便携项目的意义供电范围1.8V ~ 5.5V单节锂电、两节干电池都能直接供静态电流50μA电池续航的关键比普通运放低一个量级失调电压25μV max微弱信号不被直流误差淹没失调温漂0.1μV/°C长时间采集不飘增益范围1 ~ 1000单电阻设定覆盖大多数传感器带宽350kHz (G1)对生理信号、应变信号绰绰有余共模抑制比100dB (G≥10)强抗工频干扰能力输入共模范围(V-)-0.1V ~ (V)-0.9V单电源下可测地电平信号这里重点说两个参数。一个是输入共模范围INA333在单电源3.3V供电时输入共模可以低到-0.1V高到2.4V左右。这意味着你可以直接测量接地的传感器信号比如热电偶冷端接地、应变片电桥下端接地不需要额外的偏置电路。很多老款仪表放大器单电源下输入不能到负轨必须把传感器输出抬到Vcc/2多了一堆麻烦。另一个是增益设定。INA333的增益公式是G 1 (100kΩ / Rg)其中Rg是接在引脚1和引脚8之间的增益电阻。比如你要G100Rg 100kΩ / 99 ≈ 1.01kΩ。这个公式很简单但实际选电阻的时候要注意Rg的精度直接影响增益精度建议用0.1%精度的金属膜电阻。另外Rg的温漂也会影响增益稳定性25ppm/°C以下的电阻比较稳妥。2.3 单电源供电的偏置设计思路单电源供电是便携设备的必然选择但单电源下有个绕不开的问题输出不能到负轨。INA333的输出是轨到轨的但只能摆到接近V-和V的范围。如果你放大的是双极性信号比如有正有负的交流信号输出就会在负半周被削掉。解决办法是给输出加一个直流偏置让静态输出落在电源中点附近。具体做法有两种一种是在REF引脚上加Vcc/2的参考电压这样输出就以Vcc/2为中心摆动另一种是在输入端加偏置让传感器信号本身抬到Vcc/2。推荐第一种因为REF引脚的输入阻抗高用两个等值电阻分压加一个电容滤波就能搞定不影响传感器本身的直流工作点。REF引脚的偏置电压精度直接影响输出的直流精度。如果REF电压有纹波输出就会有同样的纹波。所以分压电阻后面一定要加滤波电容典型值10μF并联0.1μF。如果对直流精度要求高可以用一颗低功耗基准源比如REF3033但会增加成本和功耗一般便携项目用电阻分压就够了。3. 硬件电路设计与关键细节实操3.1 最小系统电路搭建先给一个INA333的最小工作电路这是所有便携式信号调理的基础。你需要的东西不多INA333一颗、增益电阻Rg一颗、REF分压电阻两颗、滤波电容几颗、电源去耦电容两颗。电源去耦是很多人容易忽略的地方。INA333的供电引脚V和V-旁边必须各放一颗0.1μF的陶瓷电容尽量靠近芯片引脚。如果电源走线比较长再并一颗1μF到10μF的钽电容或MLCC。我见过有人省掉去耦电容结果输出上叠了几十毫伏的开关噪声查了半天以为是传感器问题。增益电阻Rg的选型前面说了0.1%精度、25ppm/°C温漂是底线。封装上0603或0805都行但注意Rg两端走线要对称不要一边长一边短否则会引入额外的失调。如果增益不高G10Rg值比较大走线电阻的影响小一些如果G1000Rg只有100Ω左右这时候PCB走线的几毫欧都会影响增益精度要特别注意。REF引脚的分压电路用两颗10kΩ电阻从V分到GND中点接REF中点对GND并一颗10μF电容。这样REF电压就是V/2。如果V是3.3VREF就是1.65V输出静态就在1.65V附近。分压电阻的精度不要求很高1%就够了因为REF的误差只是让输出直流偏移不影响交流增益。3.2 输入保护与滤波设计传感器接口是最容易出问题的地方。便携设备经常要插拔传感器人体静电、电源浪涌都可能打到INA333的输入端。INA333的输入有内部ESD保护但只能扛2kV人体模型如果使用环境恶劣建议外加保护。输入串联电阻加TVS管是最简单的保护方案。串联电阻取100Ω到1kΩ太大引入热噪声太小保护效果不够。TVS管选低电容的比如0.5pF以下的否则会影响高频信号。对于大多数便携传感器项目输入串联100Ω电阻加一颗双向TVS就够了。输入滤波方面INA333的带宽在G100时大约3.5kHz对生理信号和应变信号足够。如果传感器信号本身带宽很低比如称重传感器只有几十赫兹可以在输入端加RC低通滤波。差分滤波电容跨接在两个输入端之间共模滤波电容分别对地。注意差分电容和共模电容的匹配否则会把共模信号转成差分信号反而降低CMRR。实操心得差分滤波电容建议取共模滤波电容的1/10左右。比如共模电容各100nF差分电容取10nF。这样截止频率主要由共模电容决定差分电容只做高频旁路。3.3 PCB布局的几条硬规矩模拟电路的PCB布局规矩不多但每条都要命。INA333虽然抗干扰能力强但布局不好照样出问题。第一条模拟地和数字地分开。如果你用的是STM32或者ESP32数字部分的开关噪声很容易通过地线耦合到模拟前端。正确做法是模拟部分用独立的模拟地在电源入口处单点连接到数字地。如果板子空间紧张至少保证INA333的地线不要和MCU的晶振、DC-DC电路共用一段走线。第二条输入走线尽量短且对称。INA333的两个输入端走线长度要一致尽量靠近最好用地线包围。如果传感器离得远用屏蔽线或者双绞线屏蔽层单端接地。我做过一个应变片项目传感器引线30cm一开始没屏蔽工频干扰大到没法看换成屏蔽双绞线后立刻干净了。第三条REF引脚走线要远离数字信号。REF引脚是高阻抗节点任何耦合到REF上的噪声都会直接出现在输出上。分压电阻和滤波电容尽量靠近REF引脚走线不要穿过MCU或者DC-DC下方。第四条增益电阻Rg的走线要短。Rg两端是敏感节点走线长了容易拾取噪声。如果Rg用0603封装直接放在INA333引脚旁边走线不超过2mm。4. 从传感器到MCU的完整信号链实操4.1 以应变片电桥为例的完整计算过程拿一个实际案例来走一遍完整流程。假设你用350Ω应变片搭半桥激励电压3.3V满量程应变1000με应变片灵敏度系数2.0。电桥输出差分电压是多少半桥输出公式Vout Vex × (ΔR/R) / 2。ΔR/R GF × ε 2.0 × 1000e-6 0.002。所以Vout 3.3V × 0.002 / 2 3.3mV。满量程只有3.3mV如果直接进STM32的12位ADC参考电压3.3VLSB 3.3V / 4096 ≈ 0.8mV。也就是说满量程只占4个LSB根本没法用。现在用INA333放大。目标输出摆幅设为REF附近±1V这样ADC能充分利用。增益G 1V / 3.3mV ≈ 303。取G300Rg 100kΩ / 299 ≈ 334Ω。选330Ω标准值实际增益G 1 100k/330 ≈ 304。输出摆幅3.3mV × 304 ≈ 1.003V。REF设为1.65V输出范围0.65V到2.65V在3.3V供电下完全没问题。ADC读数分辨率1.003V / 0.8mV ≈ 1254个LSB比直接接电桥的4个LSB好了300多倍。这个计算过程每一步都要在纸上过一遍不要凭感觉选Rg。我见过有人随便拿个1kΩ电阻当Rg结果增益只有101输出才0.33VADC读数跳得厉害还以为是芯片坏了。4.2 与STM32/Arduino的接口电路INA333输出到MCU的ADC中间要不要加东西看情况。如果INA333和MCU在同一块板子上输出直接连ADC引脚就行但建议加一个RC低通截止频率设在信号带宽的2到3倍。比如信号带宽100HzRC取1kΩ1μF截止频率约160Hz。如果MCU的ADC输入阻抗比较低比如STM32的ADC输入阻抗在采样时只有几十kΩ而INA333的输出阻抗很低直接连没问题。但要注意ADC采样瞬间的电荷注入可能会在INA333输出上产生小毛刺。加一个100Ω串联电阻和1nF对地电容就能解决。Arduino的ADC是10位的参考电压默认5VLSB约4.9mV。如果你用Arduino UnoINA333输出摆幅1VADC读数只有204个LSB分辨率有点紧张。建议用Arduino的外部基准或者换用STM32的12位ADC。如果非要用Arduino可以把REF电压设低一点比如用TL431产生2.5V基准但要注意INA333的输出范围要相应调整。ESP32的ADC非线性比较严重尤其是接近电源轨的时候。用INA333的时候尽量让输出避开0.2V以下和Vcc-0.2V以上的区域。REF设在中点输出摆幅控制在0.5V到2.8V之间3.3V供电ESP32的ADC在这个范围线性度还可以。4.3 软件端的滤波与校准硬件做完了软件端还有活。INA333的输出虽然干净但ADC采样总会有噪声尤其是MCU内部ADC。最简单的软件滤波是滑动平均取16次或32次采样平均能压掉大部分随机噪声。但滑动平均会降低响应速度如果信号变化快可以用一阶IIR滤波。校准是必须做的。INA333的失调电压虽然只有25μV但放大300倍后就是7.5mV对应ADC大约9个LSB。如果不校准零点就有偏差。校准方法很简单传感器零负载时采集100次取平均作为零点偏移后续所有读数减去这个偏移。增益校准需要已知参考。如果有精密基准源输入一个已知电压看ADC读数算出实际增益然后在软件里修正。没有基准源的话可以用万用表测INA333输出和ADC读数对比也能校准个大概。注意校准要在设备预热5分钟后做。INA333虽然是零漂移但整个系统的热平衡需要时间刚上电时读数会有轻微漂移。5. 常见问题排查与避坑经验实录5.1 输出饱和或削顶怎么办这是新手最常遇到的问题。输出要么贴到电源正极要么贴到地怎么调都没反应。排查顺序如下先查REF电压。用万用表量REF引脚应该是Vcc/2。如果REF是0V或者Vcc输出肯定饱和。检查分压电阻有没有焊错、虚焊滤波电容有没有短路。再查输入共模范围。INA333的输入共模范围是(V-)-0.1V到(V)-0.9V。如果你用3.3V供电输入共模最高只能到2.4V。如果传感器输出共模是2.5V就超范围了输出会饱和。解决办法是把传感器共模降到2.4V以下或者提高供电电压到5V。最后查增益。如果Rg焊错或者虚焊增益可能变成1或者无穷大。Rg开路时增益理论上是1但实际可能因为内部电路饱和而输出贴轨。用万用表量Rg两端的电阻值和计算值对比。5.2 噪声大、读数跳动的排查思路噪声问题最头疼因为来源太多。按以下顺序排查第一步断开传感器把INA333两个输入端短接到REF电压。这时候输出应该稳定在REF附近跳动只有几个LSB。如果还是跳问题在INA333本身或者电源。第二步查电源纹波。用示波器看V引脚交流耦合如果纹波超过1mV说明电源不干净。便携设备用DC-DC升压的话开关噪声很容易串进来。在DC-DC输出后面加LC滤波或者用LDO再稳一级。第三步查地线环路。如果传感器和电路板之间有多个接地点会形成地环路工频干扰直接串进来。确保传感器信号地单点连接到电路板模拟地。第四步查输入滤波。如果传感器引线长没有屏蔽工频干扰会直接耦合到输入端。加共模扼流圈或者屏蔽线。5.3 常见问题速查表现象可能原因排查方法解决方案输出贴正轨REF电压过高、输入超范围、Rg开路量REF、量输入共模、量Rg调整REF、降低共模、换Rg输出贴负轨REF电压过低、输入反接量REF、检查传感器极性调整REF、纠正接线读数跳动大电源纹波、地环路、输入无滤波示波器看电源、检查接地、加滤波加LDO、单点接地、加RC滤波增益不对Rg精度差、Rg走线不对称量Rg实际值、检查PCB换0.1%电阻、重新布局温漂大Rg温漂大、REF分压电阻温漂大加热测试、量电阻温漂换低温漂电阻工频干扰输入引线未屏蔽、地环路观察50Hz/60Hz成分屏蔽线、共模扼流圈5.4 几个容易踩的坑第一个坑忽略REF引脚的驱动能力。REF引脚输入阻抗不高如果用高阻值分压电阻REF电压会被拉偏。分压电阻建议不超过10kΩ如果要用更大阻值加一个运放缓冲。第二个坑Rg用贴片电阻但焊盘太大。0603电阻的焊盘如果设计成0805焊锡量不好控制虚焊概率高。按标准焊盘设计回流焊温度曲线要调好。第三个坑输入滤波电容用错类型。C0G/NP0电容温度稳定性好适合滤波。X7R电容容值随电压变化大用在滤波上会导致截止频率漂移。差分滤波和共模滤波都用C0G。第四个坑忘记给INA333留测试点。调试的时候要量REF、量输出、量电源如果没有测试点表笔容易打滑短路。在PCB上留几个1mm的测试焊盘调试效率翻倍。第五个坑用杜邦线连接传感器。杜邦线没有屏蔽而且接触电阻不稳定弱信号项目里就是噪声源。传感器引线要么直接焊要么用屏蔽连接器。6. 便携场景下的功耗优化与扩展思路6.1 电池续航的实测数据INA333静态电流50μA这个数字在数据手册里看着很小但实际系统里还有其他耗电大户。我实测过一个便携式应变采集节点INA333 50μASTM32L051在低功耗模式下5μAADC采样时约200μA无线模块发送时20mA但占空比很低。整体平均电流约150μA用一颗1000mAh的锂电理论续航6600小时实际因为电源转换效率和其他损耗大约能跑4000小时也就是半年左右。如果换成普通运放搭的仪表放大器静态电流至少300μA整体平均电流翻倍续航直接砍半。这就是INA333在便携场景的核心价值。6.2 低功耗模式下的信号链管理便携设备不能一直全速跑要根据采集需求动态管理。我的做法是MCU定时唤醒给INA333供电等待1ms让INA333稳定启动ADC采集采完断电MCU继续休眠。INA333的启动时间在数据手册里是约100μs到1ms取决于增益和负载。G100时大约200μs就能稳定留1ms余量足够。INA333没有关断引脚要控制功耗只能在电源上做文章。用一个PMOS管或者负载开关控制INA333的V供电MCU的GPIO控制开关。注意PMOS的导通电阻要小否则会在电源上产生压降。负载开关选静态电流nA级的比如TPS229系列。6.3 多通道扩展与STM32内部PGA的对比有些项目需要多路传感器比如三轴应变或者多导联生理信号。INA333单通道多路就要多颗芯片。这时候可以考虑STM32内部集成的PGA但STM32的PGA输入失调和噪声性能远不如INA333只适合信号幅度较大的场合。如果信号在毫伏级还是老老实实用INA333。多颗INA333的REF可以共用同一个分压电路但每颗芯片的REF引脚要单独加滤波电容。输出到MCU的多路ADC注意ADC的采样顺序和建立时间通道之间切换时留足够的采样时间。6.4 从INA333到完整产品化的几步如果你要把这个信号调理方案做成产品还有几步要走。第一步是EMC测试便携设备虽然不强制但抗静电和抗射频干扰要做好输入端的TVS和滤波不能省。第二步是标定工装批量生产时每台设备都要标定零点和增益工装要能自动完成。第三步是温度补偿如果使用环境温度变化大软件里要根据温度传感器读数做补偿INA333本身的温漂很小但传感器和Rg的温漂要考虑进去。我个人在实际操作中的体会是INA333这颗芯片最大的价值不是某个参数特别突出而是它在功耗、精度、供电灵活性之间找到了一个很好的平衡点。便携式传感器项目最怕的就是某个指标拖后腿INA333让你不用在电源方案上妥协也不用在精度上让步。踩过几次双电源方案的坑之后我现在做弱信号采集第一版原理图里基本都会放一颗INA333哪怕最后因为成本换掉它也是我验证信号链的基准。
阅读完成 · 觉得有帮助?
咨询建站