可编程增益放大器 PGA:ADC 前的量程匹配与增益切换实现
更新时间:2026-09-25。在 ADC 总览:采样、量化与 Nyquist 里,ADC 把连续电压换成数字码,但它有一个固定的输入量程,比如 0~3.3V。真实世界并不配合:热电偶只给出几十微伏,压力桥输出在毫伏级,而万用表的表笔可能直接点到 10V 电源上。把这些大小悬殊的信号原样送进同一个 ADC,小信号被量化噪声淹没,大信号当场削顶。可编程增益放大器(PGA,Programmable Gain Amplifier)就是放在传感器与 ADC 之间、按数字指令切换增益的「量程适配级」。本篇讲清它解决什么问题、用什么电路实现、有哪些必须盯住的指标。运放本身的增益与结构基础可对照 运放拓扑:单级与 Cascode,模拟设计处处是折中的背景见 模拟电路为什么这么难。
本文要回答的问题
- 为什么 ADC 前面几乎总要放一个 PGA?小信号放大、大信号衰减各自换来什么?
- PGA 的增益怎样用数字控制?运放加开关切换反馈电阻比的结构长什么样?
- 开关电容 PGA 为什么靠电容比定增益?电容比比电阻比准在哪里?
- 典型增益档位有哪些数字?增益 1/2/4/8/16 是怎么排出来的?
- 增益误差、建立时间、增益切换毛刺分别怎样影响系统?切换瞬间为什么会冒尖峰?
- PGA 和 VGA 是一回事吗?连续时间与离散时间实现怎样选?
一、为什么 ADC 前面需要 PGA
先看没有 PGA 会怎样。设一个 12bit ADC,满量程 3.3V,它能分辨的最小电压(1 LSB)是 3.3V/4096 ≈ 0.81mV。某电桥传感器满负荷只输出 10mV,直接进 ADC 只占约 12 个码,传感器信号本身的分辨率被 ADC 的量化粒度白白浪费掉——有效分辨率只剩 log2(12) ≈ 3.6bit。更糟的是 SNR:量化噪声功率固定不变,信号越小,信号与噪声的功率比越差,小信号的读数在码与码之间乱跳。
PGA 的作用是把这 10mV 放大 128 倍到 1.28V,占满约四成量程,12 个码变成 1500 多个码,有效分辨率立刻回到 10bit 以上。一句话:放大信号不放大 ADC 的量化噪声。严格说放大器自身会带输入噪声,但设计良好的 PGA 输入 referred 噪声远小于量化噪声,系统 SNR 随增益提高而改善,直到放大器噪声成为新瓶颈为止。
另一头是大信号。万用表、示波器前端要量的电压可能远超 ADC 量程,这时 PGA 要提供小于 1 的增益(衰减档,比如 ×0.5、×0.2),把 10V 压到 5V 以内再采样,防止输入超过满量程后被「削顶」(clipping)——削顶是非线性硬失真,波形顶部被齐刷刷砍掉,事后无法恢复。所以 PGA 的增益档位往往横跨衰减与放大两个方向,本质都是让信号幅度落进 ADC 的「甜区」:既不贴着地浪费码,也不顶到电源轨被砍。
用 dB 把这笔账算得更直观。量化噪声的 RMS 约为 q/√12(q 为 1 LSB),满量程正弦输入时理想 12bit ADC 的 SNR 约 6.02×12+1.76 ≈ 74dB;信号只占满量程 10mV/3.3V ≈ 0.3% 时,SNR 跌到约 74+20log10(0.003) ≈ 24dB,噪声在读数里清晰可闻。放大 128 倍后信号占满量程近四成,SNR 回升到 62dB 量级,改善接近 38dB——这 38dB 全是量程匹配白捡回来的,ADC 还是同一个。
这种做法叫量程匹配(range matching),类似万用表上手动旋转的 ×1/×10/×100 量程开关,PGA 把这个开关搬进芯片、交给数字逻辑(甚至让 MCU 根据上次采样结果自动换档,即自动增益控制 AGC 的雏形)。当然换档有代价:增益未知时读数没有绝对意义,自动换档系统必须把当前增益码和采样数据一起打包;换档动作本身还会带来后面第五节讲的死时间。PGA 不创造信息,它做的是让 ADC 已有的分辨率充分作用在信号上。
二、基本实现:运放 + 开关切换反馈电阻比
PGA 的核心电路毫不神秘:一个增益由电阻比决定的运放闭环,加上一排开关把不同电阻接入回路。下图是同相结构的增益切换结构:
同相放大器的闭环增益是 G = 1 + Rf/Rg。令 Rg=R,分别接通 Rf=R、3R、7R 时,增益就是 2、4、8 倍——开关在不同反馈抽头之间切换,数字增益码经过译码器变成「同一时刻只有一个开关闭合」,增益便一档档跳变。实际芯片里这些开关是工作在线性区的 MOS 管,其导通电阻 Ron 会串进电阻比,所以开关尺寸要足够大、或用等差排布让 Ron 被比例关系吸收。
也可以用反相结构,增益 G = −Rf/Rg(负号表示反相),优点是反相端虚地、输入共模恒定,缺点是输入阻抗等于 Rg、要缓冲。选择哪种取决于传感器源阻抗和 ADC 对极性的要求。电阻串还可以做成一条梯形电阻网络、用开关抽头分压,这同时给出衰减档(增益小于 1),是万用表类前端的常见做法。衰减档要特别注意电阻分压器的阻抗不能太低,否则传感器驱动不动;也不能太高,否则与运放输入电容构成极点、压带宽。输入衰减电阻还兼作过压限流的第一道防线,这是仪表前端愿意用高阻分压的另一个理由。
连续时间 PGA 的带宽就是这个闭环运放的带宽,信号随时通过、不需要时钟,延迟小、对时钟抖动不敏感——这是它相对开关电容方案的核心优势。代价是电阻绝对值受工艺、温度影响会漂移,而且切换通道的寄生电容容易把开关动作耦合到信号路径,这正是后两节要算的账。
版图上电阻比要准,靠的是单位电阻的共心排列(common-centroid):把一串相同的单位电阻交叉排布,让工艺梯度在比值两侧平均抵消,再用金属短接「调阻条」在测试阶段修掉残余失配。开关放在反馈臂的位置也有讲究——放在反相端一侧时开关两端都是虚地、信号摆幅小,注入电荷和非线性都比放在输出端小,这是高速 PGA 的常用摆法。
三、开关电容 PGA:电容比决定增益
在 CMOS 工艺里,想得到精确、稳定的电阻比并不便宜:电阻绝对值随工艺可偏 ±20%,温度系数几十 ppm/℃,还占面积。而电容的相对匹配天生好得多——同一块电容阵列的比值可以做到 0.1% 量级且温度漂移极小。开关电容 PGA 利用这一点,把增益交给电容比:
工作分两相:φ1 时输入对采样电容 Ci 充电,存入电荷 Q=Ci·Vin;φ2 时 Ci 改接到运放反相端,由于该点虚地,电荷全部转移到反馈电容 Cf 上,由电荷守恒得 Vout = −(Ci/Cf)·Vin。增益与电容绝对值无关、只取决于比值,而比值正是 CMOS 工艺控制得最好的量。换档通过开关把 Cf 换成不同容量(或并入单位电容)实现,典型阵列把 Cf 做成 Ci 的 1/2、1、2、4 倍,对应增益 2、1、0.5、0.25。
离散时间工作带来两个绕不开的特征。其一是采样:信号只在每相结束那一瞬间有效,必须满足 Nyquist 并考虑混叠,前端常加抗混叠滤波器。其二是时钟注入与电荷转移造成的周期性纹波,运放必须在下一次采样前把输出建立到足够精度。底极板采样(bottom-plate sampling)让两相时钟提前断开、把与输入相关的注入电荷固定下来,是开关电容 PGA 抑制失真的标准手法。开关电容方案的最大舞台是与离散时间 ADC(尤其是 Σ-Δ ADC)直连——两者共用时钟、采样天然同步,精确的电容比增益几乎是「白送」;这也是传感器模拟前端(AFE)芯片普遍采用开关电容 PGA 的原因。
四、典型增益档位与增益误差
工程上增益档几乎总是按 2 的幂排布:常见序列是 ×0.5、×1、×2、×4、×8、×16、×32、×64、×128。原因是每档对应信号在 ADC 码值上移动整数个二进制位,数字侧只需移位就能换算回物理量,无需乘法器;档间跨度 6dB(20log10(2)),换档时最多损失一半量程,颗粒度与动态范围的折中也合适。通用 AFE 常提供 ×1~×128,生物电采集(ECG/EEG)因信号只有几十微伏到几毫伏,高端档会做到 ×100 以上;万用表前端则从 ×0.01 的衰减档起步。
选档位的判据是「在不削顶的前提下取最高增益」。工程上留 10%~20% 的余量防信号过冲:估计峰值 10mV、ADC 满量程 3.3V,理论上可放 330 倍,但就近选 ×128,把信号放在约四成量程,给意外峰值留出空间。档位越密,余量浪费越少,电路和译码却越复杂,所以档数一般控制在 4~8 档。
增益不是理想值,实际增益对理想值的偏差叫增益误差(gain error),通常用 ppm 或满量程的百分比表示。来源有三块:电阻/电容比失配(决定档位之间的相对精度)、运放有限开环增益(闭环增益是理想值除以 1+G/Aol,Aol 不够大就有系统性偏差)、以及开关 Ron 串入比值。以 G=8、Aol=80dB(10000 倍)为例,闭环偏差约 G/Aol=0.08%,约 800ppm;要求 0.1% 系统精度时,这一项已占去大半预算,所以高增益档必须配高开环增益的运放。增益误差通常可经出厂校准(写入数字修正系数)消除大部分,无法校准的是它随温度和时间的漂移。
差分非线性(DNL)和积分非线性(INL)也会随档位变化:高增益档运放输出级在接近轨端时曲率增大,INL 往往在最高档、最大摆幅处最差,因此留量程余量同时也是在保线性度。
还要区分增益误差与失调:失调是输入为零时输出的固定偏移,PGA 高增益会把输入 referred 失调一起放大,表现为输出基线随换档而跳变。零失调校准(斩波稳零、自动归零等)在高精度 AFE 里与增益校准配套出现,缺一不可。
五、建立时间与增益切换毛刺
PGA 不是「切到哪个档就立刻准」。增益突变后,运放输出要从旧电压摆动到新电压并稳定到目标精度以内,所需时间叫建立时间(settling time),分两段:先是受压摆率(slew rate)限制的大信号陡变段,后是按闭环极点指数收敛的小信号段。要求建立到 12bit 精度(1/4096≈0.024%)大约需要 8.3 个时间常数(e⁻⁸·³≈0.025%),这就是高速数据采集里「换档后必须丢弃若干个采样」的原因。增益越高、运放要驱动的反馈网络越重,建立越慢;ADC 采样窗口若落在建立完成之前,读到的是一个介于两档之间的错误码。
顺便补上噪声账:PGA 自身的输入 referred 噪声典型在几 nV/√Hz 到几十 nV/√Hz,高增益档它被原样折算到输入端、与传感器噪声比较;低增益档真正决定系统精度的反而是 ADC 量化噪声。所以并非增益越高越好——当 PGA 放大后的噪声超过量化噪声,再加增益只会放大噪声、不改善 SNR,最优档位停在两条噪声曲线的交点附近。
比建立时间更刺眼的是增益切换毛刺(gain-switching glitch)。开关换位的瞬间,新旧反馈通路短暂地同时断开或同时接通:反馈断开时运放瞬间开环、输出向电源轨猛冲;同时 MOS 开关栅极的时钟通过寄生电容把一个电荷尖峰注入信号节点(clock feedthrough、charge injection)。两者合成一个幅度可能数百 mV、宽度几十 ns 到 μs 的尖峰。处理办法包括:break-before-make 开关时序(但断开期仍有开环窗口,常给运放加连续导通的弱反馈支路兜底)、全差分结构让注入电荷共模化后被 CMRR 抑制、以及开关驱动用互补时钟抵消注入电荷。在系统层面,最稳的做法仍是让换档发生在两个采样周期之间,并等毛刺和建立都结束后再让 ADC 取样。
六、连续时间 vs 离散时间,PGA vs VGA
把两条实现路线放在一起对比:
| 对比维度 | 电阻反馈连续时间 PGA | 开关电容离散时间 PGA |
|---|---|---|
| 增益由什么决定 | 反馈电阻比 Rf/Rg | 电容比 Ci/Cf |
| 匹配与温漂 | 电阻比精度一般,温漂较大 | 电容比可达 0.1%,温漂小 |
| 是否需要时钟 | 不需要,信号连续通过 | 需要两相不交叠时钟,输出离散 |
| 带宽 / 延迟 | 带宽由运放闭环决定,延迟小 | 受采样率限制,需抗混叠 |
| 主要毛刺来源 | 开关切换瞬间的开环与注入 | 时钟馈通、电荷转移纹波(周期性) |
| 最搭的 ADC | 流水线、SAR 等连续输入型 | Σ-Δ、采样同步的离散时间 ADC |
| 典型场景 | 高速采集、仪表、视频前端 | 传感器 AFE、音频、生物电 |
最后厘清一个极易混淆的名字:PGA 与 VGA 不是一回事。VGA(Variable Gain Amplifier,可变增益放大器)的增益受一个连续模拟电压(或连续变化的控制量)线性控制,增益可以平滑扫过任意中间值,典型用途是 AGC 环路里连续追踪信号强度、通信接收链路里压信号起伏。PGA 的增益则是数字码选择的离散固定档位,同一档位内增益恒定、可校准,档位之间是跳变。选型口径很直接:要精确、可标定的量程切换选 PGA;要无迟滞、无换档毛刺的连续跟踪选 VGA——VGA 牺牲增益的绝对精度换取连续性,PGA 反之。两者也常级联:VGA 做粗调连续压缩,PGA 做精确定标后送 ADC。
一个典型 AGC 环路是这样分工的:检波器测量 VGA 输出幅度,环路滤波器慢速调整其控制电压,把突发强度的电台信号压到近似恒定;当输入超出 VGA 的连续调节范围(典型 VGA 增益跨度 30~60dB),数字逻辑再命令 PGA 跳一档,把工作点拉回 VGA 的线性区。通信接收机用这种结构,是因为语音和射频信号不能忍受换档毛刺,连续压缩必须由 VGA 完成;而工业测量每秒只有几十次采样、追求绝对精度,单独一颗 PGA 配合软件换档就够。判断该用谁,先问信号能不能容忍增益的瞬时跳变,再问系统要不要标定到已知的物理量。
这一篇在知识体系里的位置
- 想理解 PGA 服务的对象、量化噪声与满量程怎么算 → ADC 总览:采样、量化与 Nyquist;
- 想看运放的开环增益、单级与 Cascode 结构从哪来 → 运放拓扑:单级与 Cascode;
- 想理解开关电容背后的时钟、电荷与采样细节 → 可参考同系列开关电容专题(并行写作中)与 ADC 采样章节;
- 想知道这些精度、速度、功耗折中背后的方法论 → 模拟电路为什么这么难。
总结
可编程增益放大器 PGA 就是 ADC 前受数字码控制的离散档位量程适配级:小信号放大到占满量程以提高有效分辨率与 SNR、大信号切衰减档防削顶;连续时间版用运放加开关切换反馈电阻比实现(G=1+Rf/Rg),开关电容版靠两相时钟把电荷从 Ci 搬到 Cf、由更精确的电容比定增益(Vout=−Ci/Cf·Vin);典型档位按 2 的幂排成 ×0.5~×128 便于数字移位换算,工程上要盯住有限开环增益导致的增益误差、换档后的建立时间(12bit 约需 8.3 个时间常数)以及开关开环与电荷注入造成的切换毛刺;它与模拟压控、增益连续可变的 VGA 的区别正在于「离散可标定档位」对「连续平滑跟踪」。