3、密勒补偿(Miller Compensation):原理、极点分裂效应、经典两级运放中的应用
密勒补偿,说白了就是利用一个电容,把两个极点硬生生「推开」。我刚开始学的时候觉得这玩意儿很玄乎,一个电容怎么就能让运放稳定了呢?后来亲手调过几个电路才明白——它其实是利用了米勒效应,把主极点往低频推,次极点往高频推。这个「推」的过程,就是我们常说的极点分裂。
3.1 米勒效应回顾
先简单回顾一下米勒效应。一个跨接在放大器输入和输出之间的阻抗 Z,从输入端看进去,等效阻抗会变成 Z/(1+A),其中 A 是放大器的增益。如果 Z 是电容 C,那等效输入电容就是 C×(1+A)。
嗯,这里要注意:米勒效应会把小电容「放大」成一个大电容。这个特性,恰好可以用来做频率补偿。
核心公式:
- 米勒等效输入电容:Cin,eq = Cm × (1 + |Av|)
- 米勒等效输出电容:Cout,eq = Cm × (1 + 1/|Av|)
3.2 极点分裂效应
为什么叫「极点分裂」?我画个图你就明白了。
补偿前,两个极点靠得很近,增益下降斜率是 -40dB/dec,相位裕度基本为零。加上米勒电容后,主极点被推到更低频,次极点被推到更高频。这就是极点分裂。
3.3 经典两级运放中的密勒补偿
经典的两级运放,第一级是差分对,第二级是共源放大级。两级之间跨接一个米勒电容 Cc。我做过好几个这样的设计,每次调这个电容值都挺头疼的——太小了补偿不够,太大了带宽又没了。
我的经验:密勒电容的取值通常在 0.5pF ~ 5pF 之间,具体要看负载电容和所需带宽。我个人习惯先取一个中间值,比如 2pF,然后根据仿真结果微调。
3.3.1 小信号分析
两级运放的小信号模型,可以简化成下面这样:
| 参数 | 含义 | 典型值 |
|---|---|---|
| gm1 | 第一级跨导 | 100 μS ~ 1 mS |
| gm2 | 第二级跨导 | 1 mS ~ 10 mS |
| R1 | 第一级输出电阻 | 100 kΩ ~ 1 MΩ |
| R2 | 第二级输出电阻 | 10 kΩ ~ 100 kΩ |
| C1 | 第一级输出节点寄生电容 | 0.1 pF ~ 1 pF |
| CL | 负载电容 | 1 pF ~ 10 pF |
| Cc | 米勒补偿电容 | 0.5 pF ~ 5 pF |
加上米勒电容后,传输函数会出现两个极点和两个零点。其中一个零点在右半平面,这个很讨厌——它会降低相位裕度。
3.3.2 右半平面零点问题
右半平面零点(RHP Zero)是米勒补偿的副产品。它来自米勒电容的前馈路径——高频信号直接通过 Cc 从输入跳到输出,绕过了放大级。
注意:右半平面零点会带来负相位,让相位裕度变差。我曾经有一个设计,仿真时相位裕度只有 35°,查了半天才发现是 RHP 零点在作怪。
解决 RHP 零点的方法有几种:
- 加调零电阻 Rz:与 Cc 串联,把 RHP 零点推到高频甚至左半平面
- 用共源共栅结构:阻断前馈路径
- 用源极跟随器:隔离米勒电容
我个人最常用的是加调零电阻。简单、有效,而且容易控制。
3.3.3 调零电阻的设计
调零电阻 Rz 的取值,决定了零点的位置:
零点频率:ω_z = 1 / (C_c × (1/g_m2 - R_z))
当 R_z = 1/g_m2 时,零点被推到无穷远
当 R_z > 1/g_m2 时,零点移到左半平面
我一般会把 Rz 取到略大于 1/gm2,让零点落在左半平面,还能贡献一点正相位。不过别太大,否则会引入额外的极点。
3.4 设计步骤与避坑指南
下面是我做两级运放密勒补偿的常规步骤:
- 确定负载电容 CL:这是设计的前提,通常由应用决定
- 选择米勒电容 Cc:一般取 CL 的 1/5 ~ 1/3
- 计算主极点位置:ωp1 ≈ 1 / (gm2 × R1 × R2 × Cc)
- 计算次极点位置:ωp2 ≈ gm2 / CL
- 检查相位裕度:目标 60° 以上
- 加入调零电阻:如果需要,调整 Rz
我曾经踩过的坑:
- 米勒电容取太大,带宽被压到几十 kHz,运放变成「慢放」
- 调零电阻用多晶硅电阻,温度系数太大,高温下零点乱跑
- 忘记考虑米勒电容的寄生效应,版图出来后性能对不上
3.5 小结
密勒补偿的核心就三件事:极点分裂、RHP 零点、调零电阻。你想想看,一个电容加一个电阻,就能让运放从振荡变成稳定,是不是挺神奇的?
不过话说回来,密勒补偿也不是万能的。它牺牲了带宽换稳定性,而且对电源抑制比(PSRR)有负面影响。这些我们后面会讲到。