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 给 ADCMCU:采集电压 ÷ 放大倍数 ÷ 采样电阻 → 反推负载电流采样电阻与负载串联,所以负载电流同样流过采样电阻。
推导
① 判断: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.3V | 0.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 = 30mVVREF = 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 → 分压后 1V99.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 | 结果 |
|---|---|---|
| 1mA | 1K | Vout = 1V ✓ |
| 1µA | 1M | Vout = 1V ✓ |
| 1nA | 1GΩ | 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)。
请输入编辑凭据,只有站点所有者可以修改文章。