放大电路设计:同相/反相放大器、差分放大器、仪表放大器、可编程增益放大器(PGA)

说到放大电路,这可能是数据采集系统里最让我又爱又恨的部分了。爱的是,一个设计得当的放大器能把微弱的传感器信号调理得漂漂亮亮;恨的是,稍不留神就会引入噪声、失调、甚至自激振荡。今天咱们就把这几种常见的放大器结构掰开揉碎了聊一聊。

同相放大器与反相放大器

这两种是最基础的运放结构,但千万别小看它们。我见过不少工程师,用了好几年运放,结果在同相端接了个大电阻导致偏置电流出问题——嗯,这种坑我自己也踩过。

同相放大器,输入信号直接加在运放的同相端。它的增益公式很简单:

G = 1 + Rf / Rg

这里Rf是反馈电阻,Rg是接地电阻。同相放大器最大的优点是输入阻抗极高,理论上接近无穷大。你想想看,这对高阻抗传感器来说有多友好?

我的经验: 同相放大器有个容易被忽略的问题——共模电压等于输入信号。如果输入信号接近电源轨,运放的共模输入范围可能不够。我曾经用LM358做同相放大,输入3.8V时输出开始非线性,查了半天才发现是共模范围超了。

反相放大器,信号通过Rg接到反相端,同相端接地。增益公式:

G = -Rf / Rg

反相放大器的输入阻抗等于Rg,所以通常不会太高。但它有个好处——共模电压始终为0(同相端接地),所以对运放的共模抑制能力要求低。

参数 同相放大器 反相放大器
输入阻抗 极高(~运放输入阻抗) 等于Rg(通常较低)
共模电压 等于输入信号 0V
增益极性 正 负
噪声增益 1 + Rf/Rg 1 + Rf/Rg(相同)

这里有个有意思的点:两种结构的噪声增益其实是一样的!都是1 + Rf/Rg。所以别以为反相放大器噪声就小——带宽和噪声特性其实差不多。

差分放大器

差分放大器用来放大两个输入信号的差值,同时抑制共模信号。最基本的单运放差分电路长这样:

Vout = (R2/R1) * (Vp - Vn)

其中R1 = R3,R2 = R4,电阻必须精确匹配。为什么?因为哪怕只有0.1%的失配,共模抑制比(CMRR)就会从理想情况掉下来一大截。

注意: 单运放差分放大器的输入阻抗不高,而且两个输入端的阻抗还不相等。这在某些高精度场合会出问题。我曾经用这种结构做电桥信号放大,结果因为源阻抗不平衡导致测量误差——后来老老实实换成了仪表放大器。

差分放大器最典型的应用就是减法器。比如你要测量一个浮地信号,或者需要消除两线之间的共模噪声,差分结构就是你的好朋友。

仪表放大器

仪表放大器,说白了就是差分放大器的升级版。它由三个运放组成:前级两个运放做缓冲,后级一个差分放大器做减法。

它的增益公式:

G = 1 + 2R1 / Rg

其中Rg是增益设置电阻。改变Rg就能改变增益,非常方便。

仪表放大器有几个让我特别欣赏的特点:

  • 极高的输入阻抗——前级是缓冲器,输入阻抗轻松上GΩ级别
  • 高CMRR——通常80dB起步,好的能到120dB以上
  • 增益精度高——内部电阻经过激光修调,匹配度极高
  • 低噪声——专门为小信号设计

实战建议: 选仪表放大器时,别只看CMRR的典型值,要看最差值。我遇到过一款号称CMRR 120dB的芯片,结果在增益为1时只有90dB——数据手册里小字写着呢。另外,注意参考端(Ref pin)的使用,它可以用来做电平偏移,非常实用。

常见的仪表放大器芯片有AD620、INA128、AD8221等。我个人比较喜欢AD8221,它的噪声密度只有8 nV/√Hz,而且带宽够用。

可编程增益放大器(PGA)

PGA,就是增益可以软件控制的放大器。这在多量程数据采集系统里太常见了。你想想看,同一个ADC要测量1mV和1V的信号,没有PGA怎么行?

PGA的实现方式主要有两种:

  1. 电阻网络切换——用模拟开关切换不同的反馈电阻,改变增益
  2. 仪表放大器+数字电位器——用数字电位器代替Rg

现在很多厂商直接把PGA集成到ADC里了,比如TI的ADS1256、ADI的AD7190。这些芯片内部有1~128倍的PGA,用寄存器配置就行。

// 以ADS1256为例,配置PGA增益
// 寄存器地址 0x02,位[7:4]控制PGA
// 0x00 = 1倍,0x01 = 2倍,...,0x07 = 128倍

void setPGA(uint8_t gain) {
    uint8_t regValue = (gain & 0x07) << 4;
    writeRegister(0x02, regValue);
}
避坑指南: 我曾经在一个项目中用了外部PGA+ADC的方案,结果发现PGA的建立时间被忽略了。当增益切换后,输出需要一段时间才能稳定到0.01%以内。如果ADC采样太快,采到的就是错误数据。所以,要么等PGA稳定再采样,要么用内部集成的PGA(通常建立时间更短)。

使用PGA时还要注意几个问题:

  • 增益越高,带宽越窄——这是运放的增益带宽积决定的
  • 增益越高,噪声越大——输入噪声会被放大
  • 增益切换时的毛刺——模拟开关切换会产生瞬态,需要加滤波或等待

说到这,我想起一个项目:做多通道数据采集,每个通道信号幅度差异很大。我用了PGA来自适应调整增益,结果发现低增益通道的噪声反而比高增益通道大——因为PGA前级的噪声是固定的,增益低了,信噪比反而下降。后来我在每个通道前加了独立的信号调理,才解决了这个问题。

总结一下我的选择思路

选哪种放大器,其实取决于你的应用场景:

  • 高阻抗传感器(比如pH电极)→ 仪表放大器
  • 单端信号,需要简单放大 → 同相放大器
  • 需要电平偏移或极性反转 → 反相放大器
  • 差分信号,高共模抑制 → 仪表放大器
  • 多量程、自动增益控制 → PGA

最后说一句:别迷信仿真结果。仿真软件里的运放是理想模型,实际芯片有偏置电流、失调电压、温度漂移。我习惯在仿真后至少留20%的余量,然后打板实测。毕竟,纸上得来终觉浅,绝知此事要躬行嘛。