返回上一级
3065 字
15 分钟
电流采样电路

p81(16.7 分钟)、p82(16.7 分钟)、p83(6.4 分钟)、p84(13 分钟)、p85(7.3 分钟)、p86(7.3 分钟)、p87(8.2 分钟)、p88(6.8 分钟)

为什么需要电流采样#

单片机只能读电压,不能直接读电流。采样的本质就是「把电流转成电压,再给 ADC」。

低端电流采样#

思路#

在负载上串联一个小电阻(采样电阻),采样电阻必须远小于负载。

数值示例#

负载 5Ω、供电 5V → 工作电流 = 5V / 5Ω = 1A
串入 10mΩ 采样电阻 → 1A × 10mΩ = 10mV 压降
用放大电路放大 10 倍 → 100mV 给 ADC
MCU:采集电压 ÷ 放大倍数 ÷ 采样电阻 → 反推负载电流

采样电阻与负载串联,所以负载电流同样流过采样电阻。

推导#

① 判断:Vout 经电阻网络回反相端 → 有负反馈 ✓;最大电阻 9K → 虚断 ✓
② 用虚断:V+ = VR(VR 为采样电阻两端电压)
③ 简化反相端:Vout 经 9K → 1K → GND,V− 为中点
V− = Vout × 1K/(1K+9K) = Vout × 1/10
④ 用虚短 V+ = V−:
VR = Vout / 10 → Vout = 10 × VR
⑤ 又 VR = I × 10mΩ → Vout = 10 × I × 10mΩ

仿真#

I = 998mA,10mΩ 上电压 9.98mV,放大 10 倍 = 99.8mV ✓

单端(低端)检测原理简单。

低端采样的三个坑#

问题暴露#

理想运放输出 100mV ✓;实际运放 LM358 输出 113mV ✗。给 ADC 采集结果必然异常。

坑一:输入/输出范围非理想#

所有实际运放输入范围不能超过电源供电范围(如单电源 0~5V)。

类型输入范围输出范围
轨对轨运放接近 0~5V接近 0~5V
非轨对轨运放可能只有 0~4.3V0.3~3.5V(VCC − 1.5)

低端采样的问题:采样电压只有 10mV,非常接近底部电压轨(0V),非轨对轨运放可能采不到。

坑二:VOS(输入失调电压)#

VOS 可简单理解为运放自带的一个输入信号。

例:VOS = 1mV
→ 即使外部不输入任何信号,运放自身输入已有 1mV
→ 经 10 倍放大后变成 10mV 误差

实验:断开 5V 让输入 ≈ 0 → 测得默认输出 = 68.4mV。

来源:

VOS 贡献默认电压
偏置电流 IB 流过外部电阻也贡献一个误差信号

LM358 的 VOS 很大(毫伏级),而输入信号才 10mV,误差很大。

解决方法一:加负电源#

把运放的 GND 端不接 GND,改接 −5V → 输入信号就落在电源轨以内。

断开负载 → 输出 −317µV(≈0,很接近零)✓
接上负载 → 输出 99.5mV(很接近 100mV)✓

解决方法二:自校准算法(推荐)#

① 断开负载,采集运放默认输出电压 = −317µV ≈ −0.3mV,存入单片机作为初始值
② 接上负载,再测一次 = 99.5mV
③ 求变化量:ΔV = 99.5 − (−0.3) = 99.8mV
与理论 9.98mV × 10 = 99.8mV 完全一致 ✓

原理:VOS 在同一温度、相同工作条件下变化很小 → 可校准。

这是工程上最常用的办法——不需要额外硬件,只要软件里减掉零点。

解决方法三:单电源 + 偏置网络#

负电源的缺点:很多 MCU 的 ADC 不能采负压;且负电源要额外加开关电源 → 成本升高。

做法:保持单电源,加一个 1V 偏置网络。

两个分压电阻改成 10K / 10K
注意:加了偏置网络后放大倍数会变,要实现 10 倍需把原来的 9K 改成 1K
再接一个 1V 电源

仿真验证:

断开负载 → 999mV ≈ 1V ✓
接上负载 → 1V + 10mV × 10 = 1.1V(实测 1.1V)✓

1V 的产生方式:基准芯片 / LDO / 运放加跟随器均可。

低端采样注意点#

① 采样电阻上的电压是否在运放输入范围内
② 运放非理想参数(VOS、IB)是否会影响检测结果
③ 解决手段:自校准算法 或 加偏置网络

高端电流采样#

高端采样可简单认为就是一个差分放大电路。

采样电阻两端为 V1、V2:

V1 − V2 = IL × 10mΩ

V1、V2 即差分放大电路的输入信号。

推导#

① 判断:有负反馈 → 虚短 ✓;外部电阻 K 级 → 虚断 ✓
② V+ 回路:V1 经 1K → V+ → 10K → GND
V+ = V1 × 10K/(10K+1K)
③ V− 回路:Vout 经 10K → 1K → V2
V− = (Vout − V2) × 1K/(10K+1K) + V2
④ 用虚短联立(引用差分放大电路的推导结论)
⑤ 最终:
Vout = (10K/1K) × (V1 − V2)
⑥ 代入 V1 − V2 = IL × 10mΩ:
Vout = 10 × IL × 10mΩ

仿真:I = 998mA,10mΩ × 998mA = 9.98mV,×10 = 99.8mV ✓

为什么要换成仪表放大器#

差分放大电路的致命缺陷:输入阻抗太低#

电路里 1K、10K 电阻上会有电流流过(可能有进有出)
→ 会影响负载工作电流

负载电流 1A 时影响较小;负载 10mA、工作电压 10V 时,放大电路里流过的电流已接近 1mA → 明显影响负载 ✗。

改进思路:加大放大电路的输入阻抗 → 换成仪表放大器结构。

运放输入端阻抗极大 → 这一侧电流 ≈ 0 → 对主负载电路几乎无影响。

仪表放大器结构#

节点命名:

V1、V2:采样电阻两端
V3、V4:前级两个运放的输出
后级:一个差分电路

前级推导#

① 判断:三处都有负反馈 → 虚短都满足 ✓;电阻都很小 → 虚断满足 ✓
② 用虚短:第一个运放反相端电压 = V1;第二个运放反相端电压 = V2
③ 用虚断简化电路:
V3 → 50K(R) → 50K(RW) → 50K(R) → V4
两端节点为 V1、V2
(RW 在实际仪表放大器中一般是可调电阻;两侧的 R 是固定电阻)
④ 简化后是串联电路 → 电流相等:
I = (V1 − V2) / RW …(式1)
I = (V3 − V4) / (2R + RW) …(式2)
⑤ 联立:
(V1 − V2)/RW = (V3 − V4)/(2R + RW)
⑥ 得:
V3 − V4 = (2R/RW + 1) × (V1 − V2)
⑦ 后级差分电路(本电路全部 50K)为 1 倍放大:
Vout = (V3 − V4) + VREF
⑧ 总公式:
Vout = (2R/RW + 1) × (V1 − V2) + VREF

数值验证#

1A × 10mΩ = 10mV(即 V1 − V2)
R = 50K、RW = 50K → 2R/RW + 1 = 3 → 3 × 10mV = 30mV
VREF = 1V → Vout = 1.03V(实测 1.02999999V)✓

改 RW = 25K → 2R/RW = 5 → 倍数 5 → 理论 1.05V。

但实测 1.498888V,跟理论 1.05V 对不上(预期和仿真结果存在矛盾)。遇到这种情况要回到公式重新核对,别盲信任何一方。

后级带偏置的差分电路推导#

① 用虚断简化 V+ 回路:VREF → 50K → V+ → 50K → V3
V+ = (VREF − V3) × 50K/(50K+50K) + V3
② 用虚断简化 V− 回路:Vout → 50K → V− → 50K → V4
V− = (Vout − V4) × 50K/100K + V4
③ 系数 50K/100K = 1/2(两个都是 1/2)
④ 用虚短联立,两边同乘 2:
(VREF − V3) + 2V3 = (Vout − V4) + 2V4
⑤ 合并同类项:VREF + V3 = Vout + V4
⑥ 得:
Vout = VREF + (V3 − V4)
⑦ 推广形式(把 50K 记作 R1、R2):
Vout = VREF + (V3 − V4) × (R1/R2)

验证:保持电路不变输出 1.049V;把两个 50K 电阻同时改成 100K → 输出翻倍,理论 ≈ 1.1V(实测 1.09997…V)✓

两种电路的应用场景区别#

差分放大电路:电流大、负载电阻小——采样电路电阻要远大于主回路电阻
仪表放大器:负载电阻较大时必须用,保证输入阻抗极大

仪表放大器做高端检测的注意事项#

注意一:输入/输出范围#

检测方式电压特点风险解决
低端非常小(几 mV)接近底部电压轨(0V)加偏置网络
高端接近电源轨(如 5V、4.999V)超出输入范围 / 失真加下拉偏置(本质就是电阻分压)

若电源本来就在供电范围内(如采样点 3.3V、运放供电 5V)→ 不需要管。

高压场景的处理#

工作电压 100V、运放供电才 5V:

在两处各加电阻分压,例如 99K + 1K → 分压 100 倍
100V → 分压后 1V
99.999V → 分压后约 0.999999V

坑 1:分压电阻一定要取大一点,否则输入阻抗变小,会影响源端负载。

坑 2:100 倍分压会让差分信号 ΔV 也衰减 100 倍,必须靠后级放大补回来。

例:第一级放大 10 倍、第二级再放大 30 倍或 4 倍

注意二:VOS#

仪表放大器的 VOS 一般都比较好,不是难解决的问题。若不够好,用前面的校准方式解决。

其他坑:运放选型时还要考虑共模抑制比等(脱离项目不易展开)。

跨阻放大#

适用场景#

前面几种方案都是「采样电阻 → 转成电压 → 放大」,适合电流较大的场景。

跨阻放大适合电流非常微弱的场景:毫安级、微安级甚至纳安级。

电流很小时,前面方案要求电路输入阻抗非常大,有难度。

这类负载类似电流源,例如:

  • 光敏二极管
  • 化学/材料/生物/医学实验中的溶液反应电流(电极发生化学反应时产生电流)

推导#

① 判断:有负反馈 → 虚短 ✓;电阻 K 级 → 虚断 ✓
② 用虚短:V+ = V− = VREF(V+ 一般接偏置 VREF)
③ 用虚断简化:Vout → 电阻 R(跨阻)→ 电流源
④ 电阻与电流源串联 → 电阻上电流 = 电流源电流 I
⑤ 得:
Vout = VREF + I × R

数值#

电流 I所需 R结果
1mA1KVout = 1V ✓
1µA1MVout = 1V ✓
1nA1GΩVout = 999mV(略小于 1V)

1nA 时小于 1V 的原因:受运放偏置电流影响。

工程坑#

1GΩ 电阻实际购买很夸张 → 可用 T 型(三角形)等效网络,用三个较小电阻等效出大电阻。

跨阻放大可把微弱电流转成电压,后级给 MCU 采集。

输入电阻匹配#

常见结论#

同相端电阻 R1 = 反相端 R2 与 R3 的并联值

原因:偏置电流 IB 会在电阻上产生压降#

反相端:IB 在 R2、R3 上产生电压 V1
同相端:若不加电阻(直接短路),IB 直接流到 GND → V2 = 0
阻抗不匹配 → IB 产生一个多余的偏差电压 ΔV → 影响输出

解决办法:同相端也加一个电阻,且等于反相端两电阻的并联值 → 使 V2 ≈ V1 → 相减抵消。

仿真验证(理论输出应为 0)#

条件输出
同相端加 1K 匹配电阻−47.43µV(大部分由 VOS 导致)
去掉该匹配电阻87µV(变化不大,只有 µV 级)
两个电阻改成 1M−20mV
两个电阻改成 100M−1.9V(IB 产生的电压非常大)
100M 条件下同相端加 50M 匹配−4.6mV(大幅抵消)✓

电阻越大,IB 产生的偏差电压越大 → 越需要匹配。

残留几 mV 的原因:V+ 与 V− 的偏置电流本身有差异,这个差异称为失调电流。

同相端/反相端做电阻匹配,主要目的就是消除偏置电流的影响。

四种电流采样方案对比#

方案适用电流优点缺点
低端采样中大电流简单、共模电压低破坏负载接地、VOS 影响大
高端 + 差分放大大电流、负载小不破坏接地输入阻抗低,影响负载
高端 + 仪表放大器大电流、负载大输入阻抗高电路复杂、成本高
跨阻放大微弱电流能测 nA 级需要大电阻

坑#

  • 采样电阻要远小于负载,否则会改变电路工作状态;低端采样信号接近 0V,非轨对轨运放可能采不到。
  • VOS 会被一起放大(1mV × 10 倍 = 10mV 误差),LM358 尤其明显。
  • 偏置网络会改变放大倍数,加偏置后要重新调电阻。
  • 高压场景分压电阻要取大,而且分压会让差分信号一起衰减,后级得补回放大倍数。
  • 电阻匹配取并联值,电阻越大越需要匹配(100M 时误差能到 1.9V)。
电流采样电路
https://me.622168.xyz/posts/hardware/28-current-sensing/
作者
Shaw 的小屋
发布于
2026-09-18
许可协议
CC BY-NC-SA 4.0