电子设计——运算放大器(运放)基础

TL;DR

  • 两大分析规则 :虚短(V+ ≈ V-)与虚断(I+ = I- = 0),是分析绝大多数运放电路的基础。
  • 四种典型电路 :同相放大器 Av = 1 + Rf/R1、反相放大器 Av = -Rf/R1、电压跟随器 Av = 1、差分放大器 Vout = (Rf/R1)·(V2 - V1)。
  • 选型四要素:增益带宽积(GBW)、压摆率、输入失调电压(Vos)、输入偏置电流(Ib),按应用场景权衡取舍。
  • 四款常用型号:LM358(通用低成本)、TL072(低噪声音频)、OP07(高精度直流测量)、AD620(传感器差分调理)。
  • 实战落地:以热电偶温度采集为例,演示差分放大 → 低通滤波 → ADC 的完整信号调理链路。

1. 引言

运算放大器(Operational Amplifier,简称运放)是电子设计中应用最广泛的模拟集成电路之一。从简单的信号放大、滤波,到复杂的仪表放大器、有源滤波器、PID 控制器,运放几乎无处不在。本文将从运放的基本原理出发,结合典型电路与设计要点,帮助读者系统掌握运放的应用方法。

2. 运放的基本概念

2.1 什么是运算放大器

运算放大器是一种高增益、直流耦合的差分放大器,通常具有两个输入端(同相输入端 + 和反相输入端 -)和一个输出端。其核心特性是:

  • 高开环增益:典型值在 10^5 ~ 10^6 量级;
  • 高输入阻抗:理想情况下输入电流为零;
  • 低输出阻抗:理想情况下输出阻抗为零;
  • 差分输入:输出与两输入端电压差成正比。

2.2 理想运放模型

在电路分析中,常将运放理想化,得到两条重要规则:

  1. 虚短 :同相输入端与反相输入端电压近似相等(V+ ≈ V-);
  2. 虚断 :流入两个输入端的电流近似为零(I+ = I- = 0)。

这两条规则是分析绝大多数运放电路的基础。

3. 典型运放电路

3.1 同相放大器

同相放大器的输入信号 Vin 直接加在运放的同相输入端(+ 引脚),反相输入端(- 引脚)通过电阻 R1 接地,反馈电阻 Rf 跨接在反相输入端与输出端之间,输出信号 Vout 取自运放的输出引脚。由于反馈使反相输入端电压跟随同相输入端(虚短),输出与输入同相位,电压增益为:

其中 Rf 为反馈电阻(连接输出端与反相输入端),R1 为反相输入端到地的接地电阻,二者共同决定闭环增益。

复制代码
Av = 1 + Rf / R1
c 复制代码
// 同相放大器增益计算示例
float gain_inverting(float Rf, float R1) {
    return 1.0f + Rf / R1;
}

3.2 反相放大器

反相放大器的输入信号 Vin 经输入电阻 R1 加到运放的反相输入端(- 引脚),同相输入端(+ 引脚)直接接地,反馈电阻 Rf 跨接在反相输入端与输出端之间,输出信号 Vout 取自运放的输出引脚。由于反相输入端被反馈钳制在虚地电位,输出与输入反相位,电压增益为:

其中 Rf 为反馈电阻(连接输出端与反相输入端),R1 为输入电阻(连接信号源与反相输入端),二者共同决定闭环增益。

复制代码
Av = -Rf / R1
c 复制代码
// 反相放大器增益计算示例
float gain_inverting(float Rf, float R1) {
    return -Rf / R1;
}

3.3 电压跟随器

电压跟随器(缓冲器)的输入信号 Vin 直接加在运放的同相输入端(+ 引脚),输出端直接连接到反相输入端(- 引脚)形成 100% 负反馈,输出信号 Vout 取自运放的输出引脚。由于反馈使反相输入端电压完全跟随同相输入端,输出与输入同相位且增益为 1,主要用于阻抗匹配和信号隔离。该电路不涉及 Rf 与 R1,增益恒为 1。

c 复制代码
// 电压跟随器:输出等于输入
float buffer(float vin) {
    return vin;  // 理想情况下 Vout = Vin
}

3.4 差分放大器

差分放大器的两个输入信号 V1、V2 分别经两个阻值相同的输入电阻 R1 加到运放的反相输入端(- 引脚)和同相输入端(+ 引脚),反馈电阻 Rf 跨接在反相输入端与输出端之间,同相输入端经另一个阻值相同的 Rf 接地,输出信号 Vout 取自运放的输出引脚。该电路放大两输入信号的差值,常用于传感器信号采集:

其中 Rf 为反馈电阻(连接输出端与反相输入端,以及同相输入端到地),R1 为输入电阻(连接两个输入信号与运放输入端),二者共同决定差分增益。

复制代码
Vout = (Rf / R1) * (V2 - V1)

下面用 Mermaid 电路示意图直观展示四种典型运放电路的连接关系(+ 为同相输入端,- 为反相输入端,Vout 取自输出引脚):
#mermaid-svg-YInqsPY67F61Ahr0{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-YInqsPY67F61Ahr0 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-YInqsPY67F61Ahr0 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-YInqsPY67F61Ahr0 .error-icon{fill:#552222;}#mermaid-svg-YInqsPY67F61Ahr0 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-YInqsPY67F61Ahr0 .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-YInqsPY67F61Ahr0 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-YInqsPY67F61Ahr0 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-YInqsPY67F61Ahr0 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-YInqsPY67F61Ahr0 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-YInqsPY67F61Ahr0 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-YInqsPY67F61Ahr0 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-YInqsPY67F61Ahr0 .marker.cross{stroke:#333333;}#mermaid-svg-YInqsPY67F61Ahr0 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-YInqsPY67F61Ahr0 p{margin:0;}#mermaid-svg-YInqsPY67F61Ahr0 .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-YInqsPY67F61Ahr0 .cluster-label text{fill:#333;}#mermaid-svg-YInqsPY67F61Ahr0 .cluster-label span{color:#333;}#mermaid-svg-YInqsPY67F61Ahr0 .cluster-label span p{background-color:transparent;}#mermaid-svg-YInqsPY67F61Ahr0 .label text,#mermaid-svg-YInqsPY67F61Ahr0 span{fill:#333;color:#333;}#mermaid-svg-YInqsPY67F61Ahr0 .node rect,#mermaid-svg-YInqsPY67F61Ahr0 .node circle,#mermaid-svg-YInqsPY67F61Ahr0 .node ellipse,#mermaid-svg-YInqsPY67F61Ahr0 .node polygon,#mermaid-svg-YInqsPY67F61Ahr0 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-YInqsPY67F61Ahr0 .rough-node .label text,#mermaid-svg-YInqsPY67F61Ahr0 .node .label text,#mermaid-svg-YInqsPY67F61Ahr0 .image-shape .label,#mermaid-svg-YInqsPY67F61Ahr0 .icon-shape .label{text-anchor:middle;}#mermaid-svg-YInqsPY67F61Ahr0 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-YInqsPY67F61Ahr0 .rough-node .label,#mermaid-svg-YInqsPY67F61Ahr0 .node .label,#mermaid-svg-YInqsPY67F61Ahr0 .image-shape .label,#mermaid-svg-YInqsPY67F61Ahr0 .icon-shape .label{text-align:center;}#mermaid-svg-YInqsPY67F61Ahr0 .node.clickable{cursor:pointer;}#mermaid-svg-YInqsPY67F61Ahr0 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-YInqsPY67F61Ahr0 .arrowheadPath{fill:#333333;}#mermaid-svg-YInqsPY67F61Ahr0 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-YInqsPY67F61Ahr0 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-YInqsPY67F61Ahr0 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-YInqsPY67F61Ahr0 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-YInqsPY67F61Ahr0 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-YInqsPY67F61Ahr0 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-YInqsPY67F61Ahr0 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-YInqsPY67F61Ahr0 .cluster text{fill:#333;}#mermaid-svg-YInqsPY67F61Ahr0 .cluster span{color:#333;}#mermaid-svg-YInqsPY67F61Ahr0 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-YInqsPY67F61Ahr0 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-YInqsPY67F61Ahr0 rect.text{fill:none;stroke-width:0;}#mermaid-svg-YInqsPY67F61Ahr0 .icon-shape,#mermaid-svg-YInqsPY67F61Ahr0 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-YInqsPY67F61Ahr0 .icon-shape p,#mermaid-svg-YInqsPY67F61Ahr0 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-YInqsPY67F61Ahr0 .icon-shape .label rect,#mermaid-svg-YInqsPY67F61Ahr0 .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-YInqsPY67F61Ahr0 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-YInqsPY67F61Ahr0 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-YInqsPY67F61Ahr0 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 差分放大器
经 R1 接 - 引脚
经 R1 接 + 引脚
Rf 反馈
V1
运放
V2
Vout
电压跟随器
接 + 引脚
输出直连 - 引脚
Vin
运放
Vout
反相放大器
经 R1 接 - 引脚
接 + 引脚
Rf 反馈
Vin
运放
GND
Vout
同相放大器
接 + 引脚
接 - 引脚到地
Rf 反馈
Vin
运放
R1
Vout

4. 运放选型要点

4.1 关键参数

参数 含义 选型建议
增益带宽积(GBW) 增益与带宽的乘积 高频应用选大 GBW
压摆率(Slew Rate) 输出电压变化速率 大信号高速应用关注
输入失调电压(Vos) 输入为零时输出不为零 精密测量选低 Vos
输入偏置电流(Ib) 流入输入端的电流 高阻源选低 Ib
电源电压范围 供电电压限制 匹配系统供电

4.2 常见运放型号

  • LM358:双运放,单电源,通用型;
  • TL072:双运放,低噪声,音频常用;
  • OP07:精密运放,低失调电压;
  • AD620:仪表放大器,适合传感器信号调理。

下表汇总了上述四款常见运放的关键参数与典型应用场景,便于快速对比选型:

型号 电源电压范围 GBW 压摆率 输入失调电压(Vos) 输入偏置电流(Ib) 典型应用场景
LM358 3V ~ 32V(单电源) 1 MHz 0.6 V/µs 2 mV(典型) 45 nA(典型) 通用信号放大、电池供电设备、传感器接口
TL072 ±5V ~ ±15V(双电源) 3 MHz 13 V/µs 3 mV(典型) 65 pA(典型) 音频前置放大、有源滤波、低噪声信号调理
OP07 ±3V ~ ±18V(双电源) 0.6 MHz 0.3 V/µs 30 µV(典型) 1.8 nA(典型) 精密测量、仪表放大、热电偶信号调理
AD620 ±2.3V ~ ±18V(双电源) 1 MHz 1.2 V/µs 50 µV(典型) 1 nA(典型) 传感器信号采集、心电/生物电测量、称重变送器

选型建议:选型时应优先明确供电方式与信号特性。若系统为单电源供电且对成本敏感,LM358 是通用首选;音频或低噪声模拟前端可选用 TL072,其高压摆率适合处理较大动态范围的信号;精密测量场景(如热电偶、称重)应选择低失调电压的 OP07 或集成度更高的仪表放大器 AD620,后者内置三运放结构,只需一个外部电阻即可设定增益,特别适合传感器差分信号的直接调理。此外还需结合增益带宽积与所需带宽校验:当闭环增益为 G 时,可用带宽约为 GBW / G,务必保证该值高于信号最高频率。

四款运放参数对比:下表将 LM358、TL072、OP07、AD620 的电源电压范围、GBW、压摆率、输入失调电压、输入偏置电流与典型应用场景六项参数并列展示,便于快速横向对比:

型号 电源电压范围 GBW 压摆率 输入失调电压(Vos) 输入偏置电流(Ib) 典型应用场景
LM358 3V ~ 32V(单电源) 1 MHz 0.6 V/µs 2 mV(典型) 45 nA(典型) 通用信号放大、电池供电设备、传感器接口
TL072 ±5V ~ ±15V(双电源) 3 MHz 13 V/µs 3 mV(典型) 65 pA(典型) 音频前置放大、有源滤波、低噪声信号调理
OP07 ±3V ~ ±18V(双电源) 0.6 MHz 0.3 V/µs 30 µV(典型) 1.8 nA(典型) 精密测量、仪表放大、热电偶信号调理
AD620 ±2.3V ~ ±18V(双电源) 1 MHz 1.2 V/µs 50 µV(典型) 1 nA(典型) 传感器信号采集、心电/生物电测量、称重变送器

选型优先级总结:四款运放各有侧重,选型时应按「供电方式 → 信号特性 → 精度要求」的顺序权衡。若系统为单电源供电且对成本敏感,LM358 是通用首选,适合电池供电与简单传感器接口;音频或低噪声模拟前端应优先考虑 TL072,其高压摆率与低偏置电流适合处理较大动态范围的交流信号;精密测量场景(如热电偶、称重、仪表放大)应优先选择 OP07,其极低的输入失调电压(30 µV)能显著减小直流误差;而需要直接调理传感器差分信号、且希望以单个外部电阻设定增益时,AD620 集成度最高、使用最便捷。总体优先级可概括为:通用低成本选 LM358,低噪声音频选 TL072,高精度直流测量选 OP07,传感器差分调理选 AD620。

选型决策流程图:下图按「供电方式 → 信号特性 → 精度要求」的路径,直观展示四款运放的选型逻辑与典型应用场景:
#mermaid-svg-cnqozedVkNaSJrCU{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-cnqozedVkNaSJrCU .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-cnqozedVkNaSJrCU .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-cnqozedVkNaSJrCU .error-icon{fill:#552222;}#mermaid-svg-cnqozedVkNaSJrCU .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-cnqozedVkNaSJrCU .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-cnqozedVkNaSJrCU .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-cnqozedVkNaSJrCU .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-cnqozedVkNaSJrCU .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-cnqozedVkNaSJrCU .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-cnqozedVkNaSJrCU .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-cnqozedVkNaSJrCU .marker{fill:#333333;stroke:#333333;}#mermaid-svg-cnqozedVkNaSJrCU .marker.cross{stroke:#333333;}#mermaid-svg-cnqozedVkNaSJrCU svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-cnqozedVkNaSJrCU p{margin:0;}#mermaid-svg-cnqozedVkNaSJrCU .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-cnqozedVkNaSJrCU .cluster-label text{fill:#333;}#mermaid-svg-cnqozedVkNaSJrCU .cluster-label span{color:#333;}#mermaid-svg-cnqozedVkNaSJrCU .cluster-label span p{background-color:transparent;}#mermaid-svg-cnqozedVkNaSJrCU .label text,#mermaid-svg-cnqozedVkNaSJrCU span{fill:#333;color:#333;}#mermaid-svg-cnqozedVkNaSJrCU .node rect,#mermaid-svg-cnqozedVkNaSJrCU .node circle,#mermaid-svg-cnqozedVkNaSJrCU .node ellipse,#mermaid-svg-cnqozedVkNaSJrCU .node polygon,#mermaid-svg-cnqozedVkNaSJrCU .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-cnqozedVkNaSJrCU .rough-node .label text,#mermaid-svg-cnqozedVkNaSJrCU .node .label text,#mermaid-svg-cnqozedVkNaSJrCU .image-shape .label,#mermaid-svg-cnqozedVkNaSJrCU .icon-shape .label{text-anchor:middle;}#mermaid-svg-cnqozedVkNaSJrCU .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-cnqozedVkNaSJrCU .rough-node .label,#mermaid-svg-cnqozedVkNaSJrCU .node .label,#mermaid-svg-cnqozedVkNaSJrCU .image-shape .label,#mermaid-svg-cnqozedVkNaSJrCU .icon-shape .label{text-align:center;}#mermaid-svg-cnqozedVkNaSJrCU .node.clickable{cursor:pointer;}#mermaid-svg-cnqozedVkNaSJrCU .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-cnqozedVkNaSJrCU .arrowheadPath{fill:#333333;}#mermaid-svg-cnqozedVkNaSJrCU .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-cnqozedVkNaSJrCU .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-cnqozedVkNaSJrCU .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-cnqozedVkNaSJrCU .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-cnqozedVkNaSJrCU .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-cnqozedVkNaSJrCU .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-cnqozedVkNaSJrCU .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-cnqozedVkNaSJrCU .cluster text{fill:#333;}#mermaid-svg-cnqozedVkNaSJrCU .cluster span{color:#333;}#mermaid-svg-cnqozedVkNaSJrCU div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-cnqozedVkNaSJrCU .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-cnqozedVkNaSJrCU rect.text{fill:none;stroke-width:0;}#mermaid-svg-cnqozedVkNaSJrCU .icon-shape,#mermaid-svg-cnqozedVkNaSJrCU .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-cnqozedVkNaSJrCU .icon-shape p,#mermaid-svg-cnqozedVkNaSJrCU .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-cnqozedVkNaSJrCU .icon-shape .label rect,#mermaid-svg-cnqozedVkNaSJrCU .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-cnqozedVkNaSJrCU .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-cnqozedVkNaSJrCU .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-cnqozedVkNaSJrCU :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 单电源供电
双电源供电
音频/低噪声/大动态范围
直流精密测量
高精度(低失调电压)
传感器差分信号直接调理
开始选型
供电方式?
LM358
信号特性?
通用信号放大、电池供电设备、传感器接口
TL072
精度要求?
音频前置放大、有源滤波、低噪声信号调理
OP07
AD620
精密测量、仪表放大、热电偶信号调理
传感器信号采集、心电/生物电测量、称重变送器

5. 设计注意事项

5.1 电源去耦

在每个运放的电源引脚附近放置 0.1uF 陶瓷电容,必要时并联 10uF 电解电容,避免电源噪声耦合。

5.2 输入保护

当输入信号可能超出电源轨时,需在输入端加入限流电阻和钳位二极管,防止运放损坏。

5.3 布局布线

  • 模拟地与数字地分开,单点接地;
  • 反馈电阻尽量靠近运放引脚;
  • 避免长距离平行走线引入串扰。

5.4 常见问题排查

运放电路在实际调试中常出现输出异常,下表汇总了四种典型故障的现象、原因、排查步骤与解决方法:

故障现象 可能原因 排查步骤 解决方法
输出饱和(输出钳在电源轨附近) 输入超共模范围、增益过大、反馈开路 用万用表测输入电压是否在共模范围内;检查反馈电阻是否虚焊 减小增益、降低输入幅度;补焊或更换反馈电阻
自激振荡(输出高频抖动) 反馈相位裕度不足、负载电容过大、电源去耦不良 用示波器观察输出波形频率;检查电源引脚旁路电容 在反馈电阻上并联小电容(如 10~100pF);加强电源去耦
噪声过大(输出叠加毛刺) 电源纹波、地线环路、输入引线过长 短路输入端观察残余噪声;检查地与电源走线 增加滤波电容、单点接地、缩短输入走线并加屏蔽
直流偏移(输出叠加固定直流) 输入失调电压 Vos、偏置电流 Ib 不平衡 短路输入端测输出直流电平;核对同相/反相端等效阻抗 选用低 Vos 运放、在输入端并联平衡电阻

下面用一段 C 语言伪代码演示如何通过读取 ADC 值判断运放输出是否异常:

c 复制代码
// 运放输出异常检测伪代码
#define ADC_FULL_SCALE  4096   // 12 位 ADC 满量程
#define V_REF           3.3f   // 参考电压

float read_opamp_output(void) {
    uint16_t raw = read_adc();          // 读取运放输出引脚对应的 ADC 通道
    return (float)raw / ADC_FULL_SCALE * V_REF;
}

int check_opamp_status(void) {
    float vout = read_opamp_output();

    // 1. 输出饱和:接近电源轨(0V 或 V_REF)
    if (vout < 0.05f || vout > V_REF - 0.05f) {
        printf("异常:运放输出饱和,检查输入共模范围与增益\n");
        return -1;
    }

    // 2. 直流偏移:输入接地时输出应接近 0V(或设定的中点电压)
    float vout_zero = read_opamp_output();   // 输入已接地
    if (fabsf(vout_zero) > 0.02f) {
        printf("异常:存在直流偏移,检查失调电压与偏置电流\n");
        return -2;
    }

    // 3. 噪声过大:多次采样观察波动幅度
    float vmin = 3.3f, vmax = 0.0f;
    for (int i = 0; i < 100; i++) {
        float v = read_opamp_output();
        if (v < vmin) vmin = v;
        if (v > vmax) vmax = v;
    }
    if (vmax - vmin > 0.05f) {
        printf("异常:输出噪声过大,检查电源去耦与布局\n");
        return -3;
    }

    printf("正常:运放输出在预期范围内\n");
    return 0;
}

6. 实战案例:简易温度采集电路

下面给出一个基于运放的简易温度采集电路设计思路:

c 复制代码
// 温度传感器信号调理伪代码
float read_temperature() {
    float sensor_voltage = read_adc();       // 读取传感器电压
    float amplified = sensor_voltage * gain; // 运放放大
    float temperature = (amplified - offset) / scale;
    return temperature;
}

电路结构:热电偶/热敏电阻 → 差分放大器 → 低通滤波 → ADC。

电路连接详解 :以热电偶为例,其两根引线分别接入差分放大器的两个输入端------热电偶正极接运放同相输入端(+ 引脚),负极接反相输入端(- 引脚),形成差分输入以抑制共模干扰。差分放大器采用 AD620 仪表放大器,其增益由引脚 1 与引脚 8 之间的外部电阻 RG 设定,取 RG = 4.94kΩ 时增益约为 10 倍(G = 49.4kΩ / RG + 1)。若使用普通运放搭建差分电路,则取四个等值电阻 R1 = R2 = 10kΩ、Rf = R3 = 100kΩ,增益为 Rf / R1 = 10。

差分放大器的输出端接入一阶 RC 低通滤波器:串联电阻 R = 10kΩ,对地并联电容 C = 100nF,截止频率 fc = 1 / (2πRC) ≈ 159Hz,可有效滤除工频干扰与高频噪声。滤波后的信号直接接到 ADC 的模拟输入引脚(如 STM32 的 PA0),并在 ADC 引脚与地之间并联一个 0.1uF 的旁路电容以稳定采样电压。若 ADC 输入阻抗较低,可在滤波器与 ADC 之间再插入一级电压跟随器(如 LM358 的一半)做阻抗隔离,避免采样时拉低信号电平。

7. 总结

运算放大器是模拟电子设计的基石。掌握虚短、虚断两大分析规则,熟悉同相、反相、差分等基本电路,理解关键参数与选型方法,就能在绝大多数电子设计项目中灵活运用运放。建议读者在面包板上动手搭建几个基本电路,结合实际测量加深理解。

相关推荐
HRTOS1 小时前
HRTOS 4.0 硬件实测:os_delay() 延迟测试与系统时间精度分析
单片机·嵌入式硬件·51单片机
硅基手札2 小时前
【I2C 技术系列 11】I2C Linux 驱动框架
linux·驱动开发·stm32·单片机·嵌入式硬件·mcu·计算机外设
碧海银沙音频科技研究院2 小时前
炬芯ATS3089智能手表烧录方法
人工智能·驱动开发·嵌入式硬件·算法
深圳市恒锐丰科技杨生2 小时前
LTK52201 立体声 D 类音频功率放大器|LTKCHIP 联辉科
嵌入式硬件·硬件工程
华清远见IT开放实验室2 小时前
百校同练,虚仿先行 | 2026秋季虚拟仿真“百校同练”实训行动正式启动,100所院校免费申报
人工智能·嵌入式硬件·物联网·具身智能·华清远见·百校同练
wuyk5552 小时前
样章-第03讲-FreeRTOS在16KB-RAM上的裁剪与陷阱
c语言·开发语言·stm32·单片机·嵌入式硬件·物联网·系统架构
Amelio_Ming2 小时前
rk3588 pcie驱动分析之二 (pcie设备树节点分析)
linux·嵌入式硬件
霖霖7143 小时前
【ESP32笔记】LED操作和呼吸灯实现
笔记·单片机·嵌入式硬件
zjxtxdy3 小时前
STM32hal库开发-GPIO
stm32·单片机·嵌入式硬件