拓十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

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

LMV321电流检测电路设计:原理、计算与校准

LMV321电流检测电路设计:原理、计算与校准 做电子设计这几年电流检测电路一直是我绕不开的模块。无论是电池电量估算、马达堵转保护还是充电电流监控、电源负载监测本质都是同一个需求把流过的电流变成单片机可以读的电平。现在专用电流检测芯片很多但真遇到成本压力、货期紧张或者只是想用一个可调增益、顺带能当比较器用的通道时我通常还是会回到LMV321这颗单运放上。这篇就把LMV321搭建低成本电流检测电路的原理、公式推导、元件计算、PCB布局和实测校准一次性讲透内容按我实际调板子的顺序来适合正在做电源管理、电池供电设备、传感器项目的人参考。1. 为什么低成本电流检测绕不开LMV321这类通用运放市面上专门的电流检测放大器比如INA180、MAX4080、ZXCT系列内部集成了匹配好的电阻网络共模抑制比高增益固定用起来确实省事。但这类芯片有一个现实问题价格不算低小批量购买时单片往往要几块钱甚至十几块钱部分型号交期长越急用越容易卡壳。更麻烦的是增益是固定的你选了50倍后面想改成20倍就得重新换料、重新改板。对于做产品试产、DIY项目、教学实验的场景这些限制很碍事。LMV321走的是另一条路。它只是一颗最普通的单通道运算放大器SOT23-5封装焊盘小但机器贴片和手工焊接都能搞定。单独买一颗的价格通常在几毛到一块出头国产兼容型号更便宜而且到处都有货。它本身不具备“电流检测”功能但只要配四个电阻和一个采样电阻就能变成一个完整的差分放大器增益由电阻比例决定想改多大就改多大。更划算的是这颗料不需要额外占一个功能模块——同一颗运放这周做电流检测下周改成电压比较器或缓冲器电路改起来非常灵活。1.1 专用电流检测IC和通用运放怎么选选专用IC还是通用运放我个人的判断标准很简单如果产品量很大、精度要求高、或是电池保护这类对共模电压有特殊要求的场合直接用专用芯片省去的调试时间可能比多花的物料成本更值。但如果是做功能验证、小批量设备、课程设计或者电路里已经有一颗闲置运放那就完全没有必要单独为电流检测再加一颗专用IC。LMV321这颗运放的定位就是“够用且便宜”。数据手册里几个关键参数对电流检测电路影响很大下面我把它们逐一拆开看你就能理解为什么用它做差分放大是顺理成章的事。1.2 LMV321的关键参数逐个对照电流检测需求看运放选型不能只看“能放大”要把参数落到具体的电流检测场景里。参数LMV321典型值为什么对电流检测重要供电电压2.7V ~ 5.5V覆盖3.3V和5V单片机系统不需要额外电源轨静态电流约130μA视厂家批次电池供电设备中不会成为耗电大头输入失调电压典型约1mV最大约7mV直接叠加到采样电阻压降上决定小电流检测精度输入偏置电流几十nA量级需查阅具体手册流过外部电阻会产生额外压降影响输出输入/输出轨到轨输入可以接近GND和电源轨输出可以接近供电轨动态范围大增益带宽积约为1MHz电流检测多数是直流或低频信号完全够用封装SOT23-5 / SOIC-8小封装适合空间紧张的产品板轨到轨输入输出是选它做电流检测的一个很关键的理由。很多老款运放输入范围要求比电源轨高1.5V左右3.3V供电下如果采样电阻两端接近GND运放可能直接就“罢工”了。LMV321允许输入一直贴近两个电源轨低边检测时采样电阻一端接近0V信号依然能正常放大。输出轨到轨意味着在5V供电时满量程输出可以很接近5VADC的动态范围能用得更满。失调电压Vos是这颗芯片做精密电流检测时的短板。举个直观的例子如果采样电阻是0.1Ω1mV的失调电压折算到输入端等效于10mA电流误差。手册标的最大值7mV对应的就是70mA误差。所以LMV321更适合做几十毫安以上的电流检测而不是微安级微弱电流的测量。后面第4部分我会专门讲怎么估算和校准这个误差。2. 先弄清电流检测的拓扑低边、高边与LMV321的适配度搭建电路之前得先确定电流采样电阻放在哪。电流检测的拓扑分两类低边检测和高边检测。这个选择不是拍脑袋决定的它会直接影响运放的共模输入范围也是新手最容易踩坑的地方。2.1 低边检测简单直接但有个“接地”代价低边检测就是把采样电阻R_sense串联在负载和地之间然后用运放放大电阻两端的电压。这种方式最大的好处是采样电阻的一端直接接到系统地另一端电压也只是一个很小的压降几十毫伏运放的两个输入都在接近0V的低电压区域处理起来非常轻松。LMV321的轨到轨输入特性在这里发挥得很好即使输入信号只有10mV级别也不会因为输入共模电压过低而无法工作。但低边检测有一个结构性的缺点负载的地不是“纯净”的0V而是经过了一个采样电阻。对很多系统来说这没问题但对那些要求负载必须直接接地、或者对参考地极其敏感的设备比如汽车大灯、无线模块的射频地就不适合用低边方案。另外大电流流过采样电阻会在回路里引入额外的压降这个压降会随着电流变化可能导致负载供电电压波动。2.2 高边检测不打断负载回路却对运放更苛刻高边检测把采样电阻放在电源正极和负载之间。这样负载可以直接接地对地回路没有任何影响还能检测到负载短路到地这类故障所以在汽车电子、工业控制里很常见。代价是高边检测的采样电阻两端电压叠加在较高的电源电压上。比如12V系统采样电阻下端是11.9V上端是12V运放要放大的是这两者之间0.1V的差但它的两个输入端对地都接近12V。如果运放的输入共模范围不支持这么高的电压输出就完全不正确。LMV321的供电上限在5.5V左右所以它做高边检测时只适合电源电压在5V或3.3V的低压系统。如果系统是12V、24V要么用专用高边电流检测芯片要么先用电阻分压把共模电压降到运放可接受的范围但分压会引入衰减和误差复杂度就上去了。如果你只用一节锂电池或USB供电LMV321放在高边完全可以正常工作。2.3 差分放大电路的工作过程用一次负载变化说清楚确定了采样位置后下一步就是把采样电阻两端的微小差压放大。常用电路是四电阻差分放大器也是LMV321做电流检测最顺手的接法。电路拓扑是这样的采样电阻两端分别接一个电阻R_in到运放的同相输入端和反相输入端同相输入端还有一个电阻R_f连接到GND反相输入端也通过一个电阻R_f接到运放输出端。如果两个R_in阻值相同、两个R_f阻值相同那么运放输出与输入差压的关系是Vout (V_sense_high - V_sense_low) × (R_f / R_in)可以写成更直观的形式Vout I_load × R_sense × (R_f / R_in)我用一个具体场景说明它是怎么工作的。假设负载电流从0.3A突然增加到0.8A采样电阻0.1Ω流过它的压降从30mV变为80mV。这两个电压分别通过R_in进入运放的同相和反相输入端运放内部比较这两个输入的差值然后乘以增益20输出就从0.6V变成1.6V。变化量是1V正好等于0.5A×0.1Ω×20。这里有个新手常犯的错认为运放放大的只是某个引脚对地的电压。实际上差分放大器要的是两个输入端的电压差同相输入和反相输入都在0V附近的一个小信号绝不能用单端去理解。这也是为什么这个电路要求四个电阻严格对称一旦R_in或R_f之间有偏差原本应该被抵消掉的共模电压会泄露到输出端造成额外的误差。3. 手把手搭建原理图、元件计算与实例原理清楚了就开始实际搭电路。我按最常用的低边差分放大方案来因为它在5V/3.3V系统里最简单易用也是我能算得最准、实测最容易复现的版本。3.1 核心电路结构与元件清单完整电路由五个核心部分组成负载回路、采样电阻、差分放大电阻网络、LMV321运放、输出滤波。完整的元件清单建议如下元件推荐参数数量说明U1LMV3211单运放SOT23-5或SOIC-8R_sense0.05Ω ~ 0.1Ω1%1采样电阻功率按2A以上留余量R_in10kΩ1%2差分输入电阻两边严格同阻值R_f200kΩ1%2反馈与匹配电阻两边严格同阻值C1100nF1LMV321电源引脚去耦电容C2100nF1输出端滤波电容可选R_out100Ω1输出端串联电阻配合C2构成RC滤波采样电阻的功率不能只看阻值。0.1Ω的电阻通过2A电流时功耗是I²×R0.4W。如果选0603封装额定功率0.1W过一会儿就会发热甚至烧毁。采样电阻功耗到0.4W时至少要选2512封装额定1W或者双电阻并联分摊功率。这个细节很容易被忽略但它直接影响电路的可靠性。3.2 增益电阻与采样电阻的计算思路选采样电阻要找一个平衡点。电阻太小压降小运放失调电压和噪声的影响就大电阻太大压降大损耗和发热也跟着大还会影响负载两端的实际电压。工程上一般把满量程压降设计在50mV到200mV之间。比如满量程电流2A选0.1Ω时满量程压降200mV选0.05Ω时只有100mV后者损耗减半但对运放的精度要求更高。增益设定的原则是让满量程输出电压尽量接近ADC基准但又要留出运放输出摆幅的余量。比如5V供电输出最大能到4.9V左右那我通常把满量程输出设计在4V左右留出0.9V的头部空间防止输出饱和时信号被“削顶”。增益计算式如下Gain Vout_max / (I_max × R_sense)确定了增益后接下来决定R_in和R_f的阻值。R_in不宜太大因为输入偏置电流会在上面产生压降也不宜太小否则R_f会对应变小整个网络的分流功耗上升。常规选择是R_in取10kΩR_f按增益倍数计算例如增益20则R_f200kΩ。3.3 一个完整实例0~2A检测范围输出0~4V我给一个可以直接照着抄的设计参数。目标是检测0~2A的电流单片机ADC采用5V参考输出范围设计为0~4V。采样电阻R_sense 0.1Ω2512封装额定功率1W以上满量程采样压降2A × 0.1Ω 200mV所需增益4V / 200mV 20取R_in 10kΩR_f 20 × 10kΩ 200kΩ输出公式Vout I_load × 0.1 × 20 2 × I_load把几个关键电流值代入算一遍负载电流采样电阻压降运放输出0A0mV0V0.5A50mV1.0V1.0A100mV2.0V1.5A150mV3.0V2.0A200mV4.0V这样的设计输出和电流是严格的线性关系单片机端不用做任何非线性修正只需要用公式反推电流I_load Vout / (R_sense × Gain) Vout / 2如果单片机用10位ADC、5V参考那么每1个LSB对应电压4.88mV换算成电流约2.44mA。这个分辨率对绝大多数充放电监测、负载监测都已经很够用。如果你用的是12位ADC分辨率能做到0.6mA左右精度瓶颈基本就不在ADC上而在运放失调电压和电阻精度上了。3.4 直接把输出接ADC时的注意事项LMV321输出直接接单片机的ADC引脚原则上没有问题但建议在输出到ADC之间加一个RC低通滤波滤掉电源纹波和感应噪声。我给常用参数R_out100ΩC2100nF转折频率约16kHz。如果ADC采样速率很低比如每秒采100次可以把这个电容加大到1μF转折频率降到1.6kHz滤波效果更好只是输出响应会变慢需要你自己权衡。另外要注意运放输出的驱动能力不是无限大的。LMV321输出电流能力在几十毫安级别驱动ADC输入完全没问题但如果想在输出端直接带一个继电器线圈或LED就不合适了需要额外加一级驱动。还有一点在接ADC前一定要确认单片机的ADC参考电压如果单片机是3.3V系统那上面5V设计里的4V满量程输出肯定会超过ADC量程这时要么把系统改成3.3V供电并把增益降到20以下要么用电阻分压把4V降到3.3V以下否则ADC读出来会一直停在满量程。4. 实测误差分析与校准公式只能参考一半这个标题里写了附计算公式公式确实能算出一个理想值但实际拿万用表测的时候你会发现输出和理论值总有一截差距。这不是公式错了而是没有把运放的非理想参数算进去。下面我说说误差从哪里来以及怎么在校准阶段把它消掉。4.1 先从数据手册把“误差预算”算出来用LMV321做电流检测最大的不确定性来自输入失调电压。所谓失调电压就是运放两个输入端电压差为0时输出并不是0而是有一个偏移为了把输出拉回0必须在输入端额外施加一个小电压。这个电压就是Vos。把失调电压折算到电流测量里可以用下面的式子等效电流误差 Vos / R_sense以R_sense0.1Ω为例手册典型值1mV对应10mA误差最大值7mV对应70mA误差。这意味着如果负载实际电流是100mA你可能读到的输出对应的电流是110mA甚至是170mA。对于满量程2A的设计来说70mA误差约占3.5%不算致命但如果你要检测的是0~200mA的小电流这个误差就非常讨厌了。解决思路有三个方向。一是选LMV321的低失调版本或同封装的其他低失调运放等位替换之前先核对引脚定义二是在软件里做零点和增益校准只靠一颗普通LMV321也能把误差压下来三是把采样电阻加大让采样压降远大于失调电压但这会增加损耗。工程实践中通常结合第一种和第二种方案。4.2 电阻精度与温度漂移带来的增益误差失调电压是“零点”误差它影响的是输出整体偏移。放大器实际增益不准则是另一类误差来源于四个电阻的阻值精度。电路增益由R_f/R_in决定。四个电阻都选1%精度单个电阻的阻值误差最大±1%R_f和R_in各取“最坏反向”增益误差最大可到±2%。换算到输出上如果理想输出是2V实际可能是1.96V到2.04V。对大多数监测应用2%的增益误差完全能接受成本也划算。但如果你做的是计量类产品就必须把电阻升级到0.1%精度市面上有贴片精密电阻价格会高一些但比用可调电阻去人工校正可靠得多。温度漂移要考虑的是另一个场景采样电阻和增益电阻的阻值都随温度变化。普通贴片金属膜电阻温漂约±50~100ppm/°C也就是温度变化50°C时阻值会变化0.25%到0.5%。如果设备在户外或高温环境工作这部分漂移会体现为测量值随温度慢慢跑偏。要求高时采样电阻应选合金电阻或专门的低温度系数采样电阻增益电阻选精密薄膜电阻。综合来看一个未校准的LMV321电流检测电路在常温下最坏总误差大概在5%到8%左右包括失调、电阻精度和采样电阻误差。对电池电量估算、电机过流保护来说足够了但如果要显示当前电流值最好还是走一遍校准。4.3 输出饱和、噪声与地弹低频采集也要关注误差不仅是静态的还有动态的。首先要知道LMV321的输出做不到绝对0V即使输入差压为0输出也可能会有一个较小的残压通常在十几毫伏到几十毫伏。这会造成小电流区域的“测量盲区”。比如输出残压20mV按公式反推就等于10mA的电流实际上负载并没有电流。这个盲区无法靠硬件完全消除只能在校准时把它当成零点偏移处理。地弹是另一个容易被低估的问题。当负载电流快速变化时大电流流经PCB上的地线会在导线阻抗上产生一个瞬态压降。低边检测的采样电阻一端接系统GND如果GND上存在这种波动它就会直接叠加到采样信号里。减少地弹的办法是让采样电阻的地端用独立的宽走线回到电源地不要和数字电路共用一段细地线。示波器看输出波形时如果发现叠加了高频毛刺十有八九不是运放本身的噪声而是地弹和电源噪声。电源去耦对运放也很重要。LMV321电源引脚和GND之间要放一个100nF的陶瓷电容并且尽量靠近引脚放置。待测电流比较大的时候电源电压可能会被瞬间拉低如果去耦不足运放供电不稳输出也会跟着抖。4.4 零点校准和满量程校准流程硬件焊好后校准我一般分两步操作。第一步是零点校准。让负载电流为0也就是断开负载或者让负载不工作记录ADC读取到的输出值。这个值理论上应该是0V但由于运放失调和输出残压它会是一个较小的正数或负数因为单电源下负电压会被钳到GND所以通常表现为一个正偏移。在程序里把这次读数保存为offset后续所有采样值都先减去它。第二步是增益校准。用一个已知的稳定电流加载到负载上最好是用电子负载或恒流源比如设定1.000A。读取实际输出电压V_measured理论电压是2.000V于是校准系数gain_cal I_cal / (V_measured - offset)之后每次测量的电流值就按这个系数计算I_real gain_cal × (V_adc - offset)做了两步校准后电路的误差主要由噪声和温漂决定通常能控制在0.5%以内。很多人问为什么校准后还差一点我建议你先检查数字万用表本身的精度以及恒流源电流是否真的准很多“电路误差”实际上是参考源不准。5. PCB布局与实物调试比想象中更容易出问题LMV321这种运放芯片本身不容易坏电路也不复杂但搭出来的板子性能差很多问题往往出在PCB布局上。尤其是采样电阻的走线方式对低阻值采样来说影响大到可以改变测量结果。5.1 采样电阻用开尔文连接避免覆铜“偷走”毫伏这是电流检测PCB布局里最重要的一条经验。很多人画板时让大电流从采样电阻一端流入然后直接从焊盘拉一根粗线到负载同时把差分放大电路的输入端也接在这根粗线上。这样做会引入一个隐患粗铜箔本身有电阻大电流流经它时会产生压降而运放输入的“采样点”如果落在这段压降的中间测到的就不再是采样电阻上的真实压降而是采样电阻压降加上一段铜箔的压降。铜箔电阻有多大1盎司铜厚、1mm宽、10mm长的走线电阻大约是5mΩ左右。如果采样电阻是50mΩ多出来的5mΩ就是10%的额外电阻测量结果会明显偏大。正确的做法是开尔文连接也叫四线接法。大电流路径从采样电阻两端流过同时从采样电阻焊盘内侧或外侧单独引出两根细小的采样线专门接到运放的差分输入电阻上。采样线上几乎没有电流所以它的电阻不会造成压降误差。你可以理解为大电流走“高速公路”电压测量走“小路”“小路”只负责把电压信号送过去不在里面传送功率。画板时还要注意运放的差分输入走线要短并且远离电感、开关节点等干扰源。如果板子底层有完整的GND参考平面对噪声抑制会好很多。5.2 电源去耦和地线规划LMV321的电源和整个采样回路的电源管理比想象中更重要。运放电源引脚的去耦电容我要求必须放在芯片1mm范围内引脚先到电容再到过孔这样才有效果。电容位置放远了去耦效果大打折扣。地线规划上建议把功率地和模拟地分开。负载的大电流回路、采样电阻、LMV321的GND应该在一个节点处单点汇合。如果板子上还有单片机数字部分的地回到系统电源地时不要穿过采样电阻下方。低频情况下单点地是没问题的频率升高后要注意回流路径但电流检测电路通常是低频应用单点地完全够用。还有个容易被忽略的点LMV321输出到ADC之间如果要加滤波电容滤波电容的地要回到模拟地不能和数字开关噪声地混在一起否则滤波电容反而成了噪声耦合点。5.3 接上负载实测调试中的典型波形和故障排查焊完板子先别急着接大电流我习惯按下面顺序逐步验证第一步先不给负载供电只给LMV321上电测输出。如果输出接近0V说明运放和电源基本正常。如果输出接近电源电压大概率是同相和反相输入端接反了或者反馈电阻虚焊。第二步接一个小电流比如100mA。用万用表直接量采样电阻两端电压正常应是10mV0.1Ω×0.1A。如果这个电压不对问题在采样电阻或负载回路先不关运放的事。确认采样电阻压降正确后再去量运放输出应该约为200mV10mV×20。第三步把电流加到1A再测采样电阻压降和输出。如果输出明显低于理论值看看是不是运放输出饱和或者采样电阻发热导致阻值变大。用手摸一下采样电阻如果烫手说明封装功率选小了。调试时最典型的“假故障”是输出随电流变化但比例不对。比如1A时理想输出2V实际只有1.8V。这时先检查四个电阻的实际阻值用万用表确认R_f和R_in的匹配情况很可能贴错了阻值。另一个可能是采样电阻焊好后引脚被覆铜分流实际有效采样电阻比标称值低这时看PCB走线就能找到原因。6. 几个实用变体阈值告警、滤波和低功耗优化基础电路能稳定工作后这颗LMV321其实还能干不少额外的事。因为它是单独的运放只要电流检测链路里不占用特殊外设就可以在同一个封装里玩出更多花样。6.1 把LMV321当比较器用做电流阈值告警如果你只需要判断“电流是不是超了”而不是精确读数可以让LMV321工作在开环比较器模式。把电流检测放大后的输出接到同相输入端反相输入端接一个由电阻分压得到的阈值电压当检测电压超过阈值时输出电平翻转。开环状态下运放的增益极大即使输入只有几毫伏差异输出也会很快摆到供电轨。可以直接用推挽输出驱动单片机引脚或LED指示灯。需要注意的是如果负载电流在阈值附近抖动输出会快速振荡这时可以在同相端和输出之间加一个几百千欧的正反馈电阻构造迟滞比较器。迟滞电压约等于输出电压摆幅乘以反馈比例具体值按实际抖动幅度调整。6.2 输出端RC滤波与ADC采样率匹配基础电路里我建议的100Ω加100nF转折频率约16kHz。如果AD采样率只有1kHz这个滤波明显还不够。此时可以把C2增大到1μF转折频率降到1.6kHz。要注意滤波电容变大会让输出响应变慢做动态过流保护时可能会错过快速电流峰值。更好的办法是软件滤波。单片机端连续采样多次去掉最大最小值后取平均再换算成电流这样既不影响硬件响应速度又能把随机噪声压下去。我在项目里通常两种方式同时用硬件上做一个截至频率稍高的RC负责抗混叠软件上做滑动平均负责平滑显示。6.3 低功耗场景下的静态电流优化LMV321自身静态电流约130μA对很多电池供电设备来说这个电流能接受但如果系统平时大部分时间处于休眠状态电流检测链路一直工作就不划算了。可以给运放电源加一个MOSFET开关或负载开关只在需要检测电流时给LMV321上电采样完成后立即断电这样待机功耗能压到微安级。注意重新上电后输出和滤波电容需要一点建立时间要等几十毫秒再启动ADC采样。如果希望进一步降低功耗可以把R_in和R_f从10k/200k改为100k/2M但这会让输入偏置电流的影响更加明显需要在精度和功耗之间反复权衡。除非你的应用要求极严格否则我一般维持10k级别不变。我个人在实际项目里的经验是先用未校准的电路跑一遍观察输出噪声和温漂再决定要不要上校准和滤波器。LMV321这套方案最大的价值不是极致精度而是用极低的成本给你一个可以自由调整、能理解每一个误差来源的电流检测通道。硬件设计里的“低成本”从来不等于“低质量”关键是清楚地知道自己把成本省在了哪里、误差又从哪里补回来。
返回列表