尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

电流检测链路全解析:采样电阻选型、INA199电路与ADC换算

发布时间:2026/9/28 16:51:01

资讯中心
01
ARTICLE

电流检测链路全解析:采样电阻选型、INA199电路与ADC换算

电流检测链路全解析:采样电阻选型、INA199电路与ADC换算
从一块采样电阻塞进电路板到单片机能读出一个准确的电流值中间隔着的往往不只是几根飞线而是一整条需要认真对待的信号链路。最近帮朋友调试一块电机驱动板问题恰好出在电流检测上采样电阻明明选了毫欧级INA199也按手册接了可单片机读回来的数值就是抖动得厉害后来一路查下来从电阻封装、PCB走线到REF引脚驱动整整折腾了一个晚上。这篇文章就把这一整条链路——采样电阻选型、INA199外围电路、单片机ADC读取与软件换算——从头到尾拆开讲一遍把那些手册里不会明说但实际一定会踩的坑一并记录下来。1. 先想清楚再动手电流检测方案的整体设计思路1.1 INA199到底是什么为什么选它INA199是TI推出的一款电流检测放大器本质上是一个专门为“测量采样电阻两端微小电压”而设计的差分放大器而不是普通的通用运放。它和通用运放最大的区别在于它内部集成了经过激光校准的电阻网络能够在很宽的共模电压范围内把差分信号精确放大同时保持非常低的失调电压典型值在微伏级别。很多人第一次接触INA199时会习惯性地想我直接用一片LM358搭个差分放大电路不就行了理论上确实可以但实际做起来会很痛苦。通用运放的共模抑制比在高频下会迅速劣化而电流检测场景里采样电阻两端电压往往只有几十毫伏噪声和共模干扰稍微一叠加信号就被淹没掉了。INA199这类专用芯片内部已经把电阻匹配做到极致共模抑制比在全带宽范围内都能维持在较高水平省去了自己挑精密电阻、做匹配的麻烦。选型时还有几个增益版本需要注意INA199分为A1、A2、A3三个主要型号对应50V/V、100V/V、200V/V的固定增益。选择依据是期望的满量程输出电压和采样电阻阻值的匹配关系这部分在第三节详细展开。1.2 整个链路包含哪些环节设计顺序应该怎么排一条完整的电流检测链路从物理世界到数字世界主要经历这么几个环节采样电阻把电流信号转换为电压信号电压大小等于电流乘以阻值方向遵循欧姆定律INA199对采样电阻两端的差分电压进行放大同时抑制共模干扰输出以某个基准电压为中心的单端电压经过一级RC低通滤波器滤除高频开关噪声单片机内置ADC对模拟电压进行采样量化得到原始码值软件根据放大倍数、采样电阻阻值、ADC参考电压把码值换算成真实电流数值。这个顺序就是设计时需要遵循的顺序。很多人习惯先定单片机选型再考虑前端电路最后随便找个电阻一放这样容易出问题。正确的思路是从采样电阻开始因为它的阻值直接决定了整个链路的信号幅度、功耗和温升是整个设计的地基。另外在项目初期还需要做一个关键决策电流采样点放在负载的高边还是低边。这个决策会影响INA199的选型甚至整个PCB布局方案后面单独说。1.3 低边采样和高边采样的取舍低边采样是指采样电阻串联在负载和地之间INA199检测的是负载低端到系统地之间的电压。这种方案的优点是共模电压接近地电位芯片的工作压力小选型容易电路最简单。缺点是采样电阻在电流回路的地路径中引入了一个额外的压降这个压降会让负载的实际供电电压下降更重要的是如果负载是电机或者电磁阀这类感性负载低边采样电阻上的压降会导致系统GND电位不再统一多块板子级联时很容易出现地环路干扰。高边采样是指采样电阻靠近电源正端负载接在采样电阻下端和地之间。这种方案的优点是采样电阻不在地回路里GND电位统一负载端能获得完整的电源电压。缺点是采样电阻的共模电压接近电源电压比如系统是24V供电采样电阻两端的电压都在24V附近跳动这就要求电流检测放大器具有很高的共模输入范围。INA199的共模输入范围是0到26V在常见的12V/24V系统中高边采样可以直接用超过26V就得考虑INA240这类高共模电压的型号或者加一级分压/电平转换。有一条经验可以分享电池供电的便携设备高功率电机驱动推荐高边采样单板、低成本的消费类产品系统电压不超过24V低边采样问题不大。标题里提到的“下桥电阻采样”其实归属于低边采样的一种特殊形式但用在电机驱动里会额外引入“电流不连续”的问题这一点在第五节展开细讲。2. 采样电阻选型整个链路里最容易被忽视的一环2.1 阻值怎么定精度和功耗的拉锯战采样电阻阻值的选取本质上是在“信号幅度”和“功耗/温升”之间找平衡。阻值越大同样电流下产生的电压越高信噪比越好ADC可以更轻松地分辨小电流但阻值越大电阻上的功耗 P I²R 也越大发热越严重温漂带来的误差也随之增加。举个实际的例子。假设系统最大检测电流是10A如果选1毫欧电阻满量程压降是10mV损耗是0.1W如果选10毫欧满量程压降是100mV损耗则达到1W。1W的功耗落在一个贴片电阻上表面温度会相当可观处理不好甚至会把焊锡烤出问题。我一般会采取这样的计算流程确定最大检测电流 Imax确定期望的最小分辨率比如希望至少能分辨50mA根据INA199的增益和单片机ADC的参考电压反推采样电阻的满量程压降需求用损耗公式 P Imax² × R 验证功耗是否在可接受范围内。举个例子单片机ADC是12位参考电压3.3V12位ADC能分辨到3.3V/4096 ≈ 0.8mV。如果希望整条链路的分辨率等于ADC的分辨率即0.8mV对应50mA电流那么放大后的电压变化率要达到 0.8mV/50mA 0.016 V/A。如果选INA199A2增益100V/V对应的采样电阻阻值为 0.016 / 100 0.00016欧姆也就是0.16毫欧。这个阻值偏小实际选不到常见规格这时就需要增大增益档位比如选200V/V的A3采样电阻可以放宽到0.32毫欧或者接受较低的分辨率要求并加大采样电阻。这就是一个典型的反推计算过程。2.2 功率、温漂与封装别让电阻成了“发热源”和“漂移源”选完阻值之后很多人会随手从PCB库里拉一个0603或0805普通厚膜电阻就完事。这在10W级别的高频开关电流场景下很容易翻车因为普通厚膜电阻的温度系数通常在100ppm/°C到200ppm/°C温升50°C时阻值漂移可能就是0.5%到1%这个误差在电流环里往往是不可接受的。这里更推荐使用合金电阻比如锰铜、康铜或者专门的电流采样合金电阻。这类电阻温度系数可以做到20ppm/°C到50ppm/°C有些优质的甚至做到5ppm/°C。同时合金电阻的过载能力强短时间承受几倍额定功率也不容易损坏。功率方面工程师习惯把电阻额定功率打5折使用也就是说如果实际最大功耗是0.5W建议选额定功率1W的电阻。主要是为了留温升余量毕竟PCB上散热条件有限电阻周围可能还有MOSFET、电感这些发热大户。封装上2512是目前电流采样比较常用的封装能承载0.5W到1W级别的功耗如果是更大电流的场景可以考虑多颗并联或者选择专门的带散热焊盘的采样电阻。还有一个细节容易被忽略就是采样电阻的电感效应。普通厚膜电阻在高频下会有明显的寄生电感对于开关频率100kHz以上的电流环这个寄生电感会产生纹波电压叠加在被测信号上造成采样噪声偏大。合金电阻在这方面表现好很多如果需要极致的高频性能还可以考虑开尔文连接的专用采样电阻。2.3 四线开尔文连接与布局采样的是电阻两端的电压不是走线的电压采样电阻的工作原理是“检测电阻两端的电压差”但PCB上电流流过采样电阻时铜箔走线本身也有电阻如果采样引脚直接连在电流走线上那么测量到的电压会包含一段铜箔走线上的压降这就等效于一个阻值完全不受控的电阻串联在被测电阻上误差来源就不可控了。解决办法是采用四线开尔文连接让主电流从采样电阻的两个宽焊盘流入流出采样线则从靠近电阻本体的引脚引出去到INA199的输入脚形成一个独立的、几乎不流过电流的电压检测回路。PCB布局上采样电阻正下方的铜皮不要铺地或者大面积铺铜避免形成不必要的涡流和地回路。电流流经采样电阻的方向也要一致不要出现90度拐弯或者绕线尽量让电流直接穿过去。如果条件允许采样电阻旁边放两个过孔到地/电源平面用平面的均匀电流分布来保证压降一致性。对于大电流场景有时候会用多颗采样电阻并联来增大等效功率这时更要注意每颗电阻的走线长度和阻抗尽量一致否则电流分配不均靠里的电阻可能过热测出来的总电流也不是单颗电阻电压乘以并联数的简单关系。3. 把INA199接入电路外围器件与实用电路搭法3.1 增益配置与带宽别让放大器成了“限速器”INA199的增益引脚GAIN有多个档位不同后缀的芯片增益是固定的因此选型之前就要确认好最终方向。以INA199A3为例增益是200V/V同样的采样电阻和电流下输出摆幅是50V/V版本的4倍小信号能力更强但高增益也意味着更低的带宽INA199A3的带宽典型值只有30kHz而INA199A1的带宽则可以到80kHz左右。这个带宽特性需要和实际电流波形频率匹配。如果做的是电机电流环PWM开关频率是20kHz电流波形本身包含20kHz的纹波分量如果放大器带宽只有30kHz那么20kHz的纹波会衰减到大约0.7倍同时相位也会滞后直接造成电流环采样失真。这种情况下建议选增益低一些的版本比如INA199A1或A2或者干脆换用INA240这类带宽更高的型号它同时支持PWM抑制能力。放大器的带宽还会和前面的RC滤波电路形成复合响应RC滤波器的截止频率通常要设得比放大器带宽低很多避免在带外形成尖峰。例如INA199A2的带宽是50kHzRC低通截止频率建议设在20kHz以下。3.2 参考电压REF引脚抬升零点的正确姿势INA199内部结构是典型的差分转单端输出结构默认情况下输出以REF引脚电压为基准。如果把REF引脚直接接地那么输出只会从GND向上摆动单向正电流的测量没问题但系统里如果存在双向电流比如电机刹车时的反向电流、H桥换向时的负电流输出就会低于GND或者无法正确反映正负方向都会撞到饱和区。解决方法是给REF引脚接一个参考电压把输出零点抬到参考电压的一半位置。常见做法是用两个电阻分压从3.3V电源得到1.65V接到REF引脚但这里有个坑INA199 REF引脚内部有输入阻抗大约几十千欧如果用几十千欧级别的电阻分压分压点会被拉偏导致零点偏移更稳妥的做法是串联一个电压基准芯片或者用运放缓冲后的低阻抗源驱动REF引脚。低成本场合可以用一个1k到10k的电位器分压并用一个100nF电容并联稳定也能凑合工作。REF引脚的另一个用途是匹配ADC参考电压。如果单片机ADC参考电压是2.5V那么期望输出满量程2.5V这时REF可以接1.25V让输出在0到2.5V之间摆动最大化ADC量程利用率。3.3 输出滤波和RC参数取舍INA199输出端通常会串一个电阻并联一个电容到ADC输入构成一阶低通滤波。这个RC的截止频率计算方法是 f 1 / (2πRC)。设截止频率为10kHzR取1k则C约为15.9nF选标准值18nF。这个滤波器的作用是滤除开关纹波和高频噪声但它也会影响信号建立时间如果R值取得太大、C值取得太大滤波后的波形会变得非常迟钝导致ADC采出来的数值滞后于实际电流变化。这里有一个容易被忽略的细节INA199的输出级内部是运算放大器结构它能输出的峰值电流有限在输出脚直接接几百欧姆甚至更小的电阻到地会拉低输出精度。一般R取值在1k到10k之间比较安全。如果ADC输入电容比较大采样开关瞬间可能会反灌电荷到RC网络造成读数偏大或偏小这种情况下可以加大串联电阻到10k或者在ADC引脚附近加一个几十pF的去耦电容来抑制电荷注入。4. 单片机侧读取与换算从ADC原始值到真实电流4.1 ADC参考电压与分辨率经过INA199放大后的电压信号最终要由单片机内置ADC变成数字。ADC的参考电压可以是内部基准、外部基准电压芯片或者直接接电源VDD。内部基准的优势是省器件缺点是温度系数较差而且在电池供电场景下电源本身波动会直接影响转换精度。如果是测量精密电流或者用于电池电量计量的场景建议给ADC提供一个独立的外部基准电压源比如REF33303.0V输出这类低压差基准芯片。因为参考电压是ADC换算时的标尺标尺自己抖了后面软件怎么滤波也都是白扯。分辨率方面12位ADC在3.3V参考下理论分辨率约为0.8mV而16位ADC在同样参考电压下理论分辨率约为0.05mV。但要注意提升ADC位数并不等于提升有效精度因为前级的噪声、电源纹波、PCB耦合噪声往往远大于量化噪声。16位ADC的实际精度一般只能做到14位到15位不是说买了16位ADC就能直接获得16位性能。4.2 数据换算公式推导ADC原始值换算成真实电流的公式并不复杂但每一步的单位和系数容易出错这里完整推导一遍。已知ADC参考电压 Vref单位VADC位数 N满量程码值 FS 2^N - 1INA199增益 G单位V/V采样电阻阻值 Rshunt单位ΩADC原始码值 adc_code 对应的采样电压 Vin 为[ V_{in} \frac{adc_code}{FS} \times V_{ref} ]采样电阻两端的差分电压 Vshunt 为[ V_{shunt} \frac{V_{in} - V_{ref}}{G} ]这里注意如果REF引脚接了 Vref_ref则上面公式中的基准需要相应替换特别是采用零点抬升时会和ADC输入的零点电压不同实际公式要调整成[ V_{shunt} \frac{V_{in} - V_{ref_ref}}{G} ]最终电流 I 为[ I \frac{V_{shunt}}{R_{shunt}} ]举个例子12位ADC3.3V参考INA199A2100V/V采样电阻5毫欧REF接地。ADC读到的码值是1200那么Vin 1200 / 4095 × 3.3 ≈ 0.967VVshunt 0.967 / 100 ≈ 9.67mVI 9.67mV / 5mΩ ≈ 1.93A。这个换算过程在软件里写成浮点运算即可但要注意如果采样电阻阻值本身只有1%精度再加上温漂最终电流误差可能达到2%到3%所以批量产品最好在出厂前做一次两点校准。4.3 采样时序、均值滤波和标定软件层面有几件事直接影响电流读数的稳定性。第一是采样时序。如果系统是PWM驱动的开关电源或者电机驱动电流信号是脉动的如果在开关毛刺发生的瞬间触发ADC转换读到的值会是极不稳定的尖峰。常见的做法是利用单片机的定时器输出PWM同步信号在PWM周期的“中间时刻”触发ADC采样避开开关沿的噪声。这样做的前提是单片机ADC触发源支持外部触发并可以精确配置部分低端51单片机做不到只能牺牲采样率辅以软件滤波。第二是软件滤波。最简单的均值滤波——连续采样32次求平均——在小电流测量时可以显著降低随机噪声但对周期性噪声效果有限。更好的做法是中值滤波加滑动平均先取几个值排掉最大最小避免毛刺再对剩余值做平均。工业上常见的做法是“去极值平均滤波”一次去2到4个最大值和最小值再对剩余值求平均。第三是标定。电流检测链路的每个环节都存在误差采样电阻1%INA199失调电压约几十微伏增益误差约0.5%ADC的DNL/INL误差约1到2个LSB。把这些误差叠加起来系统总误差可能达到3%到5%。标定的思路是先把零电流状态下ADC的原始输出记录下来作为零点偏移再用一个已知电流通过采样链路计算实际增益系数在软件里用标定后的零点值和斜率替换理论公式实现误差补偿。5. 常见翻车现场与排查方法5.1 下桥电阻采样与双电阻采样电机拖动的经典坑在做电机驱动时标题里提到的“下桥电阻采样”和“双电阻采样”是很多新手容易踩进去的坑。用一个采样电阻放在三相全桥下方的公共回路上理论上能测总母线电流但实际电机三相电感会让电流在PWM不同的开关状态之间续流续流路径根本不经过下桥采样电阻导致采到的电流波形是断续的、有“空洞”的电流越小时空洞越严重反馈给算法的电流平均值就会失真。双电阻采样是指在下桥臂的两个半桥支路上各放一个采样电阻通常是A相和B相通过基尔霍夫电流定律算出第三相电流。这个方案可行但存在“采样窗口”问题当某一相PWM占空比接近0或者接近100%时上下桥臂直通时间极短采样窗口太小ADC来不及稳定采样结果无效这就出现了“不可采样区”。工程上会在特定扇区修正PWM占空比以扩大采样窗口或者接受低占空比时的失真并做特殊处理。如果只是做简单的过流保护低边单电阻采样可以接受如果是做FOC矢量控制建议优先考虑高边采样带隔离风雨无阻的方案或者用专门的电流传感器配合差分输入。选型之前先想清楚用在哪一层才能避免在下桥电阻上重复交学费。5.2 共模电压超限、GND弹跳与布局干扰前面提过INA199的共模输入范围是0到26V。如果在24V系统里做高边采样必须严格确保采样电阻两端的共模电压不超过26V否则芯片内部差分对会进入非线性区甚至损坏。实际项目中电源上电瞬间可能存在电压过冲24V电源在开关瞬间冲到30V以上很常见所以高边采样时建议额外检查电源轨的瞬态电压必要时用TVS管或串联限流电阻保护INA199输入脚。GND弹跳是另一个容易忽视的问题。低边采样时采样电阻接在系统地与被测负载地之间电流流过采样电阻时它的“地”端电位会跟随电流变化而不是稳定的0V。如果单片机ADC的地恰好取在了采样电阻的地后面就有可能导致ADC的参考地和采样信号地不一致产生额外误差。正确的做法是模拟地和功率地在单点汇聚ADC和INA199的地通过独立走线回到单点避免电源地上的大电流噪声拉偏信号地。5.3 速查表常见症状、可能原因与处理建议症状可能原因处理建议读数比理论值明显偏小采样电阻阻值偏小或增益档选错用万用表实测采样电阻核对INA199型号读数偏大且不稳定ADC参考电压存在纹波REF引脚源阻抗过高换用低噪声基准芯片REF端增加电容滤波电流为0时读数不为0INA199失调电压或REF端零点设置错误软件记录零点偏移做校准读数有周期尖峰采样时刻撞上PWM开关沿改用PWM中点触发ADC采样高电流时读数非线性采样电阻发热阻值漂移换低温漂合金电阻提高电阻散热实际电流接入后芯片发烫采样电阻功耗过大减小采样电阻阻值或选用并联更大封装用示波器看INA199输出有高频噪声PCB布局不合理Cout引线过长缩短信号走线增加RC滤波改进地平面最后再分享一个小技巧如果你的产品是电池供电的便携设备建议把INA199的供电和REF引脚接到一个干净的LDO输出上不要直接从电池端取电。电池端的电压在负载波动时会明显下降这会影响INA199内部偏置导致输出产生额外的偏差。我调试过的一台设备刚开始读数电压跟随电池电压晃动加上LDO和参考电容后数据立刻稳定下来。这类问题用示波器排查时要多留意“电源噪声是否耦合进信号链路”电流检测链路本身很敏感任何一处微小偏置都可能被放大到肉眼可见的程度。
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

◈

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

◐

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

▲

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。