做硬件这些年,我发现自己踩得最深的坑,往往不在芯片选型,而在最基础的测量方式上。有次调一个12V直流无刷电机驱动器,想监控母线电流做堵转保护,刚开始顺手把采样电阻放在了负载下面做低边检流,结果电机一转,MCU的ADC采集数据乱跳,板子上的传感器读数也跟着飘,折腾了一整天,最后才发现问题出在检流位置。把电阻挪到电源正端,换成High-Side Current Sensing,整个系统瞬间安静了。从那时起我就意识到,电流检测的电阻放哪,比用哪颗芯片重要得多。
High-Side Current Sensing,也就是高边电流检测,翻译过来就是把采样电阻串在电源正端和负载之间,通过测量电阻两端微小压差来算出电流。听上去很简单,但它背后牵扯到共模电压处理、放大器选型、PCB布局、精度校准一堆问题。这篇文章我把自己这些年在高边检流上积累的实现方案、设计思路、调试经验全部整理出来,从原理讲到器件选型,再到实测排错,希望能让你少走点弯路。
1. 为什么非要测高边:低边方案解决不了的真实问题
1.1 低边检流的“地弹”,不是简单把电阻换位置就能理解
先说低边电流检测。它的做法是把采样电阻放在负载和系统地之间,负载电流经过电阻回到GND,电阻上产生压降,用一个放大器去测这个压降。因为电阻两端都在地附近,放大器的输入共模电压很低,对芯片的要求也低,电路做起来很简单,很多低成本方案都会优先选它。
但这里有个致命问题:负载的“地”不再是真正的0V。当电流流过采样电阻时,负载那一端的地电位被抬高了I×R。如果电流是5A,电阻是10mΩ,那这个地就会被抬高50mV。听起来不大,但在电机驱动这类有高频开关电流的场景里,这个地变成了一个上下波动的“脏地”。MCU的ADC参考地、模拟前端的地、甚至逻辑芯片的参考地如果和它共用,后果就是采样值乱跳、传感器输出异常、通信偶尔误码。
还有一类场景是负载必须直接接地的,比如负载是金属外壳的设备、某些必须单点接地的电路,或者需要短路保护到地的应用,低边检流根本没有位置放采样电阻。这些问题不是换个更低阻值的电阻或者换个放大器能解决的,是拓扑结构本身决定的。
1.2 高边检流的真正难点,在于共模电压
高边检流的结构正好反过来:采样电阻放在电源正端和负载之间,负载一端直接接系统地。这样负载的地是干净的,但代价是——采样电阻两端的电压都处于电源电位附近。
比如12V供电的系统,采样电阻一端是12V,另一端是12V减去I×R,通常只有几毫伏到几百毫伏的压差。你要检测的差分信号很小,但放大器两个输入端的共模电压都在12V附近。如果电源是48V、60V呢?共模电压也跟着变成48V、60V。
这就像一个场景:你手里拿着一根在高压电线上测两个接线柱之间几毫伏差的电压表,你的手(放大器的输入端)已经搭在高压上了。普通放大器的输入共模范围远不够,轻则输出不准,重则直接烧芯片。所以高边检流的核心技术难点从来不是“怎么放大几十毫伏的小信号”,而是“在高压共模的前提下精确放大几十毫伏的小信号”。
1.3 哪些场景真正离不开高边检流
我刚入行时觉得低边检流够用就行,直到碰到的项目越来越多,才发现高边检流在很多场景是刚需。
- 直流无刷电机控制(BLDC/PMSM):需要监测母线电流做堵转保护、过流保护、力矩估算,采样电阻只能放在高端。
- 电池充放电管理:充电和放电都要检测电流,而且电池包的负端要直接作为系统地,充电器和负载都要以它为参考,只能用高边。
- 开关电源输出侧恒流控制:电源输出端的负端通常就是系统地,负载设备都挂在系统地上,检流电阻必须放在输出正端。
- 汽车电子和工业设备:工作电压多为12V/24V甚至更高,还伴有大量瞬态干扰,低边检流引入的地噪声会污染整个系统。
在这些场景里,高边检流不是“更好的选择”,而是“唯一的选择”。理解了为什么必须测高边,接下来最自然的问题就是:怎么测。
2. 实现方案的取舍:从运放搭差分到专用检测放大器
2.1 通用运放搭差分放大:能跑,但坑很深
很多工程师的第一反应是用一个通用运放搭差分放大电路。原理很简单:四个等值电阻接成桥式差分结构,将采样电阻两端的差分电压放大。这个方案确实能工作,但只限于“要求不高”的场合。
第一个坑是电阻匹配精度。这四个电阻的匹配度直接决定共模抑制比(CMRR)。用1%精度的电阻,CMRR只有大约40dB。什么意思呢?在一个12V系统里,共模电压是12V,假设共模变化是1V,那么1V除以40dB对应的100倍衰减,就有10mV的等效误差混进信号里。而你的真实信号可能只有50mV,误差占了20%。要想把CMRR做到80dB以上,电阻匹配度要优于0.01%,这意味着要用精密网络电阻或者逐个筛选,成本一下子上去了。
第二个坑是输入共模范围。通用运放的输入共模范围大多限制在电源轨以内,如果你用5V供电的运放去测12V高边共模,早就超范围了。解决办法是先电阻分压衰减共模再进运放,可一分压,差分信号也跟着衰减,信噪比急剧恶化。
所以我的建议是:通用运放搭差分只适合实验验证和学校课程设计,用在产品上性价比很低,还容易给自己埋雷。
2.2 专用电流检测放大器:目前的主流方案
相比用通用运放自己搭,现在最主流的做法是选一颗专用的电流检测放大器(Current Sense Amplifier,CSA)。这类芯片内部做了三件事:高精度匹配的电阻网络、电平转换电路、低失调放大级。它们专门为高边检流设计,输入引脚可以直接接在电源电压上,输出是相对地的低电压信号,可以直接送给ADC。
芯片内部把共模处理、精密电阻匹配这些问题都解决了,大大降低设计难度。实际设计中我常用的几颗:
| 型号 | 共模电压范围 | 增益选项 | 失调电压 | 突出特点 |
|---|---|---|---|---|
| INA240 | -4V ~ 80V | 20/50/100/200 V/V | ±25µV(典型) | 增强PWM抑制,适合电机驱动 |
| INA282 | -14V ~ 80V | 50 V/V | ±10µV(典型) | 零漂移,REF引脚可做双向检流 |
| AD8210 | 2V ~ 65V | 20 V/V | ±1mV | 汽车级,性价比高 |
| MAX4080 | 4.5V ~ 76V | 5/20/60 V/V | ±0.6mV | 静态电流低 |
这里要特别提一下INA240。它的内部集成了增强型PWM抑制技术,当高边共模电压受PWM开关影响剧烈跳变时,输出依然能保持平稳。这在电机驱动场景里太关键了,我后面会专门展开讲。
2.3 需要隔离时怎么办:隔离放大器与霍尔电流传感器
在某些场景里,高边检流还不只是共模电压高的问题,而是整个高边区域和大电流回路需要和低压控制侧电气隔离。这时候有两种常见选择。
隔离放大器,比如AMC1300、AMC1200这类。它们的输入端连接高边采样电阻,内部通过电容隔离栅把模拟信号数字化后传输到输出侧,输出侧以低压控制侧地作为参考。隔离电压可以做到几千伏,非常适合电机驱动里的三相电流采样、光伏逆变器、或者需要保证人不接触高压的工业设备。
另一种是霍尔电流传感器,比如ACS712、ACS724,以及各种开环、闭环霍尔模块。霍尔传感器直接穿过被测电流,不需要采样电阻,因此没有插入损耗,同时自带隔离。用起来非常简单,接上供电和输出就能测。但代价是精度和带宽通常不如采样电阻加检测放大器的方案,特别小电流时失调比较明显,大电流场景下体积和成本也会上去。
2.4 四类方案横向对比
我把上面几种方案整理成一个表,方便你做快速选型:
| 方案 | 优点 | 缺点 | 典型场合 |
|---|---|---|---|
| 通用运放+分立电阻 | 成本低、电路熟悉 | CMRR差、受共模限制、精度差 | 学习验证、精度要求极低 |
| 专用电流检测放大器 | 精度高、共模高、设计简单 | 需要采样电阻、需考虑功耗 | 电机驱动、电源、电池管理 |
| 隔离放大器 | 电气隔离、抗干扰、耐高压 | 成本高、带宽有限 | 高压电机驱动、光伏、工业 |
| 霍尔电流传感器 | 插入损耗低、自带隔离、使用方便 | 精度一般、带宽受限、小电流不准 | 电流较大、精度要求中等的系统 |
选型逻辑其实不复杂:优先选专用电流检测放大器,绝大多数高边检流需求它都能覆盖;如果系统要求隔离,再考虑隔离放大器或者霍尔;通用运放搭差分基本可以排除。
3. 手把手搭一个12V系统的高边检流电路
3.1 采样电阻选型:阻值、功率、温漂一个都不能少
以最常见的场景为例:12V供电,最大负载电流5A,用INA240(增益50档)做高边检流,输出直接接3.3V ADC。
第一步是算采样电阻阻值。3.3V ADC满量程是3.3V,但实际我不会让输出太接近满量程,通常留10%-15%余量,按2.7V算。INA240增益50倍,那么满量程对应的输入差分电压是2.7V / 50 = 54mV。要测5A满量程,采样电阻就是54mV / 5A = 10.8mΩ。取整选10mΩ,实际满量程输出是5A × 0.01Ω × 50 = 2.5V,非常合适。
第二步是算电阻功率。P = I²R = 5² × 0.01 = 0.25W。这只是理论值,实际选型我会至少要留2倍以上余量,也就是选0.5W到1W的电阻。如果电路可能长时间工作在接近满量程的状态,建议直接选1W,因为采样电阻的温升会直接影响阻值和测量精度,温度高还会降低可靠性。
第三步是看温度系数。普通贴片电阻的温度系数一般在100ppm/°C以上,而精密合金采样电阻可以做到50ppm/°C以内,甚至更低。比如10mΩ电阻,温升50°C,100ppm/°C的电阻阻值会变化5%,这个误差足以让高边检流整体失准。所以在电流检测这种场景里,优先选专门为检流设计的合金贴片采样电阻,别为了省几毛钱去用普通电阻。
3.2 放大器接法与关键外围元件
INA240的典型接法并不复杂。IN+和IN-分别接采样电阻的两端,注意方向要对应电流流向,交换接法会导致输出反向。OUT接ADC,GND接地,VS接工作电压。
这里必须重点强调一个容易翻车的点:INA240的工作电压(VS)范围是2.7V到5.5V,它虽然有80V的共模输入能力,但芯片本身的供电并不高。在你的系统电源是12V的情况下,VS绝对不能直接接12V,必须接3.3V或5V的低压电源。我第一次用这颗芯片时就差点在这翻车,当时想着“既然感应对象是12V,那就用12V供电”,幸好画板前看了眼数据手册。
外围元件主要有三个。一是VS脚的去耦电容,0.1µF陶瓷电容尽量贴近芯片引脚摆放。二是输入端滤波电容,在IN+和IN-之间加一个差模电容,同时在每个输入引脚对地加共模电容,作用是滤除采样电阻上叠加的高频噪声。三是输出端的RC低通滤波,用于平滑送给ADC的信号,典型值取100Ω串联电阻加1nF对地电容,对应的截止频率约1.6MHz,足够平滑PWM电流纹波又不会明显拖慢响应。具体参数根据你的PWM频率和目标带宽调整。
3.3 双向电流检测怎么搭
很多场景需要检测双向电流,比如电池充放电、电机四象限运行。这时候就需要用到带REF引脚的电流检测放大器,INA282就是典型例子。
原理很简单:把REF引脚设置到输出量程的中点,当被测电流为零时,输出等于REF电压;正向电流使输出高于REF,反向电流使输出低于REF。以INA282为例,增益固定为50,REF接1.65V,那么输出范围是0到3.3V时,输入差分电压范围是-33mV到+33mV,对应10mΩ采样电阻就是±3.3A的双向量程。
REF电压的来源需要注意。理想情况下,零点精度完全取决于REF电压的精度,所以REF不能直接从MCU的IO口拉,最好用精密基准源或者从ADC的基准电压分压后加一个运放buffer来驱动。我早期偷懒直接用了电阻分压,结果零点偏差了几十毫安,在小电流充电时误差被放得很大,后来改成从ADC基准分压加buffer,问题才解决。
4. 实测波形毛刺多的根因排查:共模瞬态与PCB布局
4.1 高dv/dt PWM共模瞬态干扰
电路搭好之后,很多人会发现一个头痛的问题:静态测试时输出很干净,一跑起来(比如电机转起来)输出波形全是毛刺,看起来完全不像电流波形。这个问题的根因往往不是电路原理错了,而是高边共模电压在PWM开关瞬间发生了大斜率跳变。
在电机驱动或开关电源里,开关节点(SW)的电压以极高的dv/dt在电源轨和地之间切换,高边采样电阻两端的共模电压也跟着瞬间跳变。普通的电流检测放大器,即使静态CMRR标得很高,在高频共模跳变面前,内部电路的平衡速度跟不上,输出端就会出现尖峰或振荡。
解决思路有两条路。第一是从芯片层面解决,选带增强PWM抑制功能的检测放大器,这就是INA240存在的核心价值。它在内部通过特殊设计把PWM开关切换瞬间的干扰抑制掉,实测下来电机运行时的输出干净很多,不再是一堆毛刺。如果你的设计已经流过一版,舍不得换芯片,第二条路只能在输入端加滤波,把进入放大器的共模瞬态信号带宽压下来,但代价是检测带宽变窄,限流保护的响应速度会变慢,需要权衡。
4.2 输入滤波和输出滤波怎么加
刚才提到了滤波,这里把细节展开一下。输入端滤波有两种位置,效果完全不同。
在IN+和IN-之间并联一个电容,就是差模滤波,它主要滤除采样电阻两端的差模噪声,比如电流纹波噪声。但同时它也会和采样电阻一起构成一个低通滤波器,影响电流检测的带宽。电容值根据PWM频率来选择:如果PWM是20kHz,选择1nF到10nF的差模电容,对应的截止频率大约在几十kHz到几百kHz,可以在保留电流纹波信息的同时滤掉大部分辐射噪声。
另一种是共模滤波:在每个输入引脚对地分别加一个电容。这种接法对共模瞬态的抑制效果比差模电容好得多,因为PWM开关带来的干扰本质上就是共模信号。我自己的经验是:如果遇到输入干扰严重的情况,优先加共模电容,往往比盲目加大差模电容有效。
输出端的RC低通也需要结合ADC采样时间常数来设计。比如ADC的采样时间是1µs,那么RC低通的截止频率最好不低于ADC采样的奈奎斯特频率,否则会拖慢信号响应。具体参数可以在实际调试时用示波器观察,以“波形平滑且不过度变形”为准。
4.3 PCB布局:Kelvin连接和返回路径处理
搞高边检流的PCB布局,最重要的一个原则是:采样电压的走线必须采用开尔文(Kelvin)接法。
什么是开尔文接法?就是采样电压的采样走线不直接从大电流通路中间取,而是直接从采样电阻的两个端点上引出两条细线,把电压信号单独送到放大器输入端。这样做的原因是“铜箔也有电阻”,如果电压采样点选在大电流走线中间,采样走线上会叠加一段铜箔的压降,造成测量误差。
实际操作中要注意几点:采样走线要尽量短,差分信号的两根线要保持等长、靠近走,形成一个小的差分对,这样可以减少差模磁场的耦合;采样走线要远离开关节点和栅极驱动走线,这些地方的高频干扰非常强;放大器芯片本身要靠近采样电阻放置,输入引脚到采样电阻焊盘的距离越短越好;还有采样电阻下面不要铺大块地铜,否则会引入不必要的寄生电容。
另外大电流路径本身也要注意:采样电阻的两个焊盘之间是大电流流经的区域,要保证大电流路径能承载5A以上的电流,走线宽度要足够,必要时加开窗加锡。不要让大电流走线绕到放大器的下面再回来,让大电流回路尽量紧凑,减小辐射环路面积。
5. 校准、精度以及几个容易翻车的操作
5.1 误差来源拆解
即使电路搭对了,也还是要有误差意识。高边检流的误差来源主要有这几块:
- 失调电压(Vos):放大器本身固有的零点偏移。比如INA240典型失调25µV,在10mΩ电阻上折算成电流误差就是25µV / 10mΩ = 2.5mA。看似不大,但如果要测几十mA的小电流,误差占比就上来了。
- 增益误差:芯片内部增益的偏差,典型在0.1%到0.5%左右。
- 共模抑制比(CMRR):共模电压越高,CMRR有限导致的误差越大。CMRR 100dB意味着10V共模变化会引入100µV的等效输入失调。
- 采样电阻温漂和精度:前面说的,这是误差的大头之一。
- REF电压误差(双向检流时):直接决定零点。
把这些误差合成起来,不校准的话整体精度能做到3%到5%就算不错了。如果系统对电流精度有更高要求,就得上校准。
5.2 校准方法:单点校准和两点校准
校准不需要复杂仪器,一个精确的恒流源或者一台过得去的电子负载就够了。我一般分两步。
先做单点校准。在系统零电流状态下(断开负载),记录ADC的输出值,这个值就是零点偏移。把这个值保存到固件里,运行时从ADC值里减去,就完成了失调校准。
再做两点校准。用一个较低电流比如0.5A,记录ADC输出;再用一个接近满量程的电流比如4A,记录ADC输出。用这两个点求出一条线性关系:实际电流 = k × ADC值 + b。k是增益系数,b是零点偏置。把这两个参数写进固件,之后每次测量都用这个公式换算,精度会大幅提升。
实际操作中有一个小建议:两点校准选择低电流点时不要选得太小,最好在满量程的10%以上,否则失调波动会影响拟合结果。校准数据建议写入Flash并在产线完成,而不是依赖芯片的典型参数做理论学习。
5.3 几个容易让高边检流失效的操作
这些年见过不少同行踩坑,整理几个最典型的,你直接对照排查:
- 用普通低压运放直接接高边共模:芯片要么不工作要么烧坏,电路上来就冒烟的情况很常见。
- 用电阻分压把共模电压衰减后再进运放:分压电阻的不匹配直接破坏CMRR,而且分压本身会从采样电阻抽取电流,导致测量值系统性偏差。
- 采样电阻额定功率不足:电阻过热后阻值漂移,严重时直接烧断,系统失去电流检测能力。
- INA240这类芯片的VS脚直接接12V:前面强调过,它的供电范围只有2.7到5.5V,接12V大概率直接损坏。
- 增益档选太大导致输出削波:小电流时精度是好了,但大电流时输出直接顶到电源轨,电流信号被削平,限流保护也跟着失效。
- 在高dv/dt的电机驱动里用普通CSA:输出毛刺严重,电流波形完全不可用。
如果你遇到高边检流不准或者波形异常,先按这几点排查,比漫无目的地换芯片效率高得多。
5.4 进阶思路:用MOSFET的RDS(on)做无采样电阻检流
最后聊一个进阶思路。如果电流非常大,比如几十安培,采样电阻即使是1mΩ,功耗也到了几瓦,发热和压降都不可接受。这时候有一种替代方案:利用功率MOSFET导通时的漏源导通电阻RDS(on)作为采样电阻,通过检测VDS来间接计算电流。
这个方案的结构是:不需要外部采样电阻,直接用MOSFET自身的导通电阻,测量漏极和源极之间的压差。优点是没有额外插入损耗,大电流下优势明显。很多DC-DC的逐周期限流和锂电池保护芯片内部就是用这个思路。
但这个方案的缺点也很明显。RDS(on)受温度影响极大,常温下有标称值,温度升高后可能变化50%甚至更多;还受栅极驱动电压影响,不同门极电压下RDS(on)差异也很大。再加上MOSFET只有在导通期间才有有效电流信号,死区时间内测量不到电流。所以它的精度天花板很低,只适合做粗略的过流保护判断,不适合做高精度电流计量。如果你的系统需要精确监测电流,老老实实上采样电阻加专用放大芯片,别在这个方案上硬省成本。
在我实际测试中,高边检流做到最后拼的往往不是芯片多高级,而是采样电阻选型认不认真、PCB布局规不规范、校准流程有没有落地。如果你现在要开始一个新设计,我的建议很直接:高边检流直接上专用电流检测放大器,采样电阻用合金贴片开尔文电阻,布局时严格按Kelvin接法走线,量产前做一次两点校准。这套组合下来,电流检测部分基本不会再给你添麻烦。