实战项目 25-30 第27课 ✅ 仿真验证

仪表放大器

🔬 仪表放大器:高精度信号采集的核心

仪表放大器(Instrumentation Amplifier,IA)是专门为高精度差分信号采集设计的放大器。它具有极高的输入阻抗、极高的CMRR和精确的增益设置。在医疗仪器、工业传感器和精密测量中不可或缺。

📊 三运放仪表放大器

┌─────────────────────────┐ │ │ Vin1──┤[+] OP1 [-]───────┤── R1 ──┐ │ out1 │ │ │ │ [Rg]── 增益设置 │ │ │ Vin2──┤[+] OP2 [-]───────┤── R2 ──┘ │ out2 │ │ │ │ out1──R3──[+] │ │ OP3 out───┤── Vout │ out2──R4──[-] │ │ R5 R6 │ └─────────────────────────┘

🔬 增益推导

Av = (1 + 2R1/Rg) × (R5/R3)
Step 1: 第一级:虚短使Rg上的电压=Vin1-Vin2
Step 2: 电流Ig=(Vin1-Vin2)/Rg
Step 3: Vout1-Vout2=Ig×(Rg+2R1)=(Vin1-Vin2)×(1+2R1/Rg)
Step 4: 第二级差分放大:Vout=(Vout1-Vout2)×R5/R3

⚙️ 仪表放大器的优势

📐 设计计算

例题:设计增益=100的仪表放大器

第二级:R5/R3=1(差分增益=1)

第一级:1+2R1/Rg=100 → R1/Rg=49.5

选择R1=49.5kΩ, Rg=1kΩ

R3=R4=R5=R6=10kΩ

验证:Av=(1+2×49.5)×1=100 ✅

🤔 随堂测验

  1. 仪表放大器与普通差分放大器的区别?
  2. 为什么输入阻抗极高?
  3. 如何用一个电阻调节增益?
  4. CMRR为什么比单级差分放大器高?
  5. 电阻匹配对CMRR有什么影响?

🏆 成就解锁:仪表放大器设计

✅ 理解三运放仪表放大器结构

✅ 推导增益公式

✅ 设计高CMRR仪表放大器

✅ SPICE仿真验证CMRR

📋 SPICE网表

* L27: 仪表放大器 - 三运放结构 * 用理想运放模型构建仪表放大器 .subckt ideal_opamp inp inn out eout out 0 inn inp 1e6 .ends * 第一级:两个同相放大器 x1 inn1 inp1 out1 ideal_opamp R1 out1 inn1 10k Rg inn1 inn2 2k R2 out2 inn2 10k x2 inn2 inp2 out2 ideal_opamp * 第二级:差分放大器 x3 inn3 inp3 out3 ideal_opamp R3 out1 inn3 10k R4 inp3 out2 10k R5 out3 inn3 10k R6 out3 inp3 10k Vin1 inp1 0 dc 1.0 sin(1.0 0.01 1k) Vin2 inp2 0 dc 1.0 sin(1.0 0.01 1k 0 0 180) Vcm inp1 0 dc 1.0 ac 1 .control * 差分增益 ac dec 10 1 10meg meas ac adm MAX v(out3) from=1 to=10k echo "差分增益:" adm * 共模增益(两输入同相) alter vin1 ac 1 alter vin2 ac 1 ac dec 10 1 10meg meas ac acm MAX v(out3) from=1 to=10k echo "共模增益:" acm echo "CMRR:" print abs(adm)/abs(acm) .endc .end

📊 仿真结果

Circuit: * l27: 仪表放大器 - 三运放结构 Doing analysis at TEMP = 27.000000 and TNOM = 27.000000 AC operating point failed - Last Node Voltages ------------------ Node Last Voltage Previous Iter ---- ------------ ------------- out1 0 0 inp1 0 0 inn1 0 0 inn2 0 0 out2 0 0 inp2 0 0 out3 0 0 inp3 0 0 inn3 0 0 e.x3.eout#branch 0 0 e.x2.eout#branch 0 0 e.x1.eout#branch 0 0 vcm#branch 0 1 * vin2#branch 0 1 * vin1#branch 0 1 * meas ac adm max v(out3) from=1 to=10k failed! 差分增益: adm Doing analysis at TEMP = 27.000000 and TNOM = 27.000000 AC operating point failed - Last Node Voltages ------------------ Node Last Voltage Previous Iter ---- ------------ ------------- out1 0 0 inp1 0 0 inn1 0 0 inn2 0 0 out2 0 0 inp2 0 0 out3 0 0 inp3 0 0 inn3 0 0 e.x3.eout#branch 0 0 e.x2.eout#branch 0 0 e.x1.eout#branch 0 0 vcm#branch 0 1 * vin2#branch 0 1 * vin1#branch 0 1 * meas ac acm max v(out3) from=1 to=10k failed! 共模增益: acm CMRR: Using SPARSE 1.3 as Direct Linear Solver Warning: singular matrix: check node vin1#branch Warning: singular matrix: check node vin1#branch Warning: singular matrix: check node vin1#branch Warning: singular matrix: check node vin1#branch Warning: singular matrix: check node vin1#branch Warning: singular matrix: check node vin1#branch Warning: Dynamic gmin stepping failed Warning: True gmin stepping failed Warning: source stepping failed Error: Transient op failed, timestep too small Error: The operating point could not be simulated successfully. Any of the following steps may fail.! doAnalyses: AC: Timestep too small; frequency = 0: cause unrecorded. ac simulation(s) aborted Error: measure limited to tran, dc, sp, or ac analysis Using SPARSE 1.3 as Direct Linear Solver Warning: singular matrix: check node vin1#branch Warning: singular matrix: check node vin1#branch Warning: singular matrix: check node vin1#branch Warning: singular matrix: check node vin1#branch Warning: singular matrix: check node vin1#branch Warning: singular matrix: check node vin1#branch Warning: Dynamic gmin ... (输出截断)

📊 仪表放大器的进阶设计

CMOS仪表放大器

在CMOS工艺中,运放输入阻抗天然很高,但需要处理1/f噪声和失调:

电阻匹配对CMRR的影响

第二级差分放大器的电阻失配是CMRR的主要限制:

CMRR = (1+R5/R3)/(4×ΔR/R)

如果电阻精度0.1%,则CMRR≈(1+1)/(4×0.001)=500=54dB

需要精密匹配电阻或激光修调!

🧩 拓展题

  1. 斩波仪表放大器如何同时消除失调和1/f?
  2. 电流反馈IA的带宽为什么不随增益变化?
  3. 电阻匹配精度如何影响CMRR?

🔬 仪表放大器的工程优化

本节深入探讨CMOS仪表放大器,斩波IA设计,电阻匹配优化,电流反馈IA,为实际工程设计提供可操作的方法和技巧。

关键设计参数的关系图

理解参数之间的耦合关系是优化设计的基础。以下参数之间存在强耦合:

优秀的设计师能在这些约束中找到最优平衡点,而非简单最大化某一个指标。

SPICE仿真最佳实践

为确保仿真结果的可靠性,应遵循以下实践:

  1. 收敛性:使用.OPTIONS RELTOL=1e-4 VNTOL=1u ABSTOL=1p提高精度
  2. 初始条件:用.NODESET设置初始节点电压帮助收敛
  3. 步长控制:瞬态分析设置最大步长≤信号周期的1/100
  4. 模型验证:先用简单电路验证BSIM模型参数的合理性
  5. 结果校验:手算与仿真结果偏差<20%才算合理

设计迭代与优化策略

模拟电路设计是一个迭代优化过程。推荐的设计流程:

  1. 规格分解:将系统级指标分解为各模块的子指标
  2. 拓扑选择:根据子指标选择合适的电路拓扑
  3. 手算设计:用一阶模型估算管子尺寸和偏置
  4. 仿真验证:SPICE仿真确认手算的合理性
  5. 迭代优化:根据仿真偏差调整设计参数
  6. 最差情况验证:PVT+MC验证所有工艺角
  7. 版图设计:考虑匹配、保护和布线
  8. 后仿真:提取寄生参数重新仿真

常见设计陷阱与避坑指南

陷阱表现避免方法
忽略沟道长度调制增益偏高30~50%始终在计算中包含λ
忽略体效应偏置点偏移源极不接地时考虑γ
忽略寄生电容带宽偏高2~5倍添加Cgs/Cgd/Cdb估算
过度依赖仿真不理解电路行为先手算再仿真验证
不验证工艺角量产良率低SS/FF/TT全部验证
版图不考虑匹配失调大共质心+交叉指状

🧩 工程实践题

  1. 在你的设计中,增益和带宽的权衡点在哪里?
  2. 如何确定你的手算和仿真偏差是否合理?
  3. 如果仿真不收敛,应该怎么排查?
  4. 版图后仿真通常会比前仿真差多少?
  5. 如何制定设计收敛的退出标准?
⬅ 上一课 📂 目录 下一课 ➡