4. 带隙基准电压源(Bandgap)设计
带隙基准电压源,圈里人常叫它Bandgap。这东西在电源管理单元里,就像人的心脏一样重要。没有它,整个芯片的电压参考就乱了套。我做了十几年芯片,每次流片前最放心不下的,往往就是这个小小的Bandgap。
说白了,Bandgap的核心任务就一个:产生一个不随温度变化的稳定电压。听起来简单,做起来可有不少门道。
4.1 Bandgap核心原理:CTAT + PTAT
为什么叫“带隙”?因为硅的带隙电压大约是1.12eV,对应的电压值约1.25V。我们最终想要的,就是这个值。
怎么实现温度不敏感?靠的是两个相反的温度特性:
- CTAT(负温度系数):双极型晶体管的VBE,温度升高时电压下降。典型值约 -2mV/°C。
- PTAT(正温度系数):两个不同电流密度下的VBE差值ΔVBE,温度升高时电压上升。典型值约 +0.085mV/°C。
把这两个信号按一定比例相加,就能抵消温度影响。公式很简单:
V_REF = V_BE + M * ΔV_BE
其中M是比例系数。调整M,让正负温度系数刚好抵消,就得到了零温度系数的基准电压。
核心要点:V_BE大约是0.6V(室温),ΔV_BE大约是0.054V(室温),M大约取11~12,最终V_REF ≈ 1.25V。
我在项目中遇到过一个问题:有些工程师觉得M算出来是11.3,取整到11就行。结果仿真时温度系数确实不错,但流片回来发现不同芯片之间偏差很大。为什么?因为工艺偏差导致V_BE和ΔV_BE的实际值跟模型不一样。我建议你设计时留出修调(trim)余量,别把M定死。
4.2 典型结构:Brokaw与Banba
讲完原理,咱们看看实际电路怎么搭。业界最经典的两个结构,一个是Brokaw,一个是Banba。
4.2.1 Brokaw结构
Brokaw结构是1974年提出的,到现在还在用。它的特点是:
- 使用两个三极管,面积比通常为1:8或1:10
- 运放强制两个集电极电压相等
- 电阻R1、R2决定PTAT电流
- 输出从运放输出端取
我个人习惯用Brokaw结构做高精度应用。它的优点是噪声低、PSRR好。缺点是启动电路稍微复杂点。
// Brokaw结构关键参数计算示例
// 假设:Q1面积=1,Q2面积=8,R1=R2=10kΩ
// ΔV_BE = V_T * ln(8) ≈ 26mV * 2.079 ≈ 54mV
// PTAT电流 I_PTAT = ΔV_BE / R1 ≈ 54mV / 10kΩ = 5.4μA
// V_REF = V_BE + (R1+R2)/R1 * ΔV_BE
// = 0.6V + 2 * 0.054V = 0.708V (注意:这是简化版)
// 实际需要调整电阻比例使V_REF≈1.25V
小技巧:Brokaw结构里,运放的offset会直接影响输出精度。我曾经在一个项目中,运放offset只有2mV,但流片后基准电压偏差了15mV。查了半天发现是电阻匹配问题。记住:电阻的匹配比运放offset更关键。
4.2.2 Banba结构
Banba结构是1999年提出的,适合低电压应用。它的特点:
- 使用电流模方式,所有支路电流都镜像
- 输出电压可以低于1V
- 结构更紧凑,适合SoC集成
Banba结构说白了就是把PTAT和CTAT电流相加,然后流过电阻产生电压。它的好处是输出电压可以灵活调整,不像Brokaw那样基本固定在1.25V。
注意:Banba结构对电流镜的匹配要求很高。我曾经吃过亏:一个0.18μm工艺的项目,电流镜失配导致基准电压温度系数从20ppm/°C恶化到80ppm/°C。后来加了cascode结构才解决。
4.3 温度系数与曲率补偿
理想情况下,V_REF应该是一条水平线。但实际做出来,它是一条微微弯曲的曲线。这个弯曲就是曲率(curvature)。
为什么会有曲率?因为V_BE的温度特性不是完全线性的,它包含高阶项。简单的一阶补偿只能抵消线性部分,高阶项就留下了。
曲率补偿的方法有很多,我挑几个实用的:
| 补偿方法 | 原理 | 典型效果 | 复杂度 |
|---|---|---|---|
| 二阶补偿 | 利用非线性电流补偿V_BE的高阶项 | 10~20 ppm/°C | 中等 |
| 分段线性补偿 | 在不同温度区间用不同斜率补偿 | 5~10 ppm/°C | 较高 |
| 电阻比率补偿 | 利用不同温度系数的电阻 | 15~25 ppm/°C | 低 |
我个人最常用的是二阶补偿。它不需要额外引入太多电路,效果也够用。你想想看,消费类芯片做到20ppm/°C已经很不错了,没必要为了5ppm去折腾复杂的电路。
避坑指南:我曾经在一个项目中,为了追求极致的温度系数(<5ppm/°C),用了四阶曲率补偿。结果电路复杂到仿真都跑不动,流片后因为工艺偏差,实际效果还不如二阶补偿。从那以后我学乖了:够用就好,别过度设计。
4.4 启动电路设计
Bandgap有个“死穴”:它有两个稳定工作点。一个是正常工作的点,另一个是零电流点(所有电流都为0)。启动电路的作用,就是确保上电时能跳出零电流点,进入正常工作状态。
启动电路的设计原则:
- 上电时给核心电路注入一个初始电流
- 正常工作后自动断开,不影响Bandgap性能
- 不能引入额外的噪声或漏电
最简单的启动电路就是一个电阻加一个二极管连接的MOS管。上电时电阻给电容充电,产生一个脉冲,触发核心电路启动。启动后,MOS管关断,启动电路退出。
// 启动电路设计要点
// 1. 启动时间要足够短,通常<1μs
// 2. 启动电流要足够大,确保能跳出零电流点
// 3. 启动后漏电要小,通常<10nA
//
// 典型参数:
// 启动电阻:1MΩ
// 启动电容:0.5pF
// 启动MOS管:W/L=1/10 (最小尺寸)
注意:启动电路设计不好,会导致芯片上电后Bandgap不工作。我曾经遇到一个案例:芯片在常温下正常,但低温-40°C时,有20%的芯片启动失败。原因是低温下MOS管阈值电压升高,启动电流不够。解决办法是加大启动管的尺寸,或者用温度补偿的启动电路。
嗯,这里还要提醒一点:启动电路不能太“积极”。如果启动电路在Bandgap正常工作后还一直开着,它会引入额外的电流,影响基准电压的精度。我建议你在启动电路里加一个反馈信号,检测到Bandgap正常工作后,彻底关断启动支路。
个人经验:设计启动电路时,多留一些余量。仿真时可能一切正常,但工艺角、温度、电压的极端组合下,启动可能失败。我习惯在仿真时跑100次蒙特卡洛分析,确保所有情况下都能正常启动。
好了,以上就是Bandgap设计的核心内容。从原理到结构,从补偿到启动,每一步都有坑,每一步也都有技巧。记住我常说的那句话:仿真通过只是开始,流片回来才是真功夫。