1. 从一个让人头疼的温漂问题说起
做模拟电路的人,几乎都绕不开一个东西——基准源。你设计一个ADC,需要一个不随温度、电源电压变化的参考电压;你做一个LDO,需要一个精准的参考来设定输出电压;你搞一个传感器信号链,更需要一个稳定的基准来保证测量精度。可以说,基准源就是整个模拟系统的“定海神针”。
但问题来了:你手里只有硅片,硅的PN结电压天生就带温度系数,大约-2mV/°C。你拿一个随温度漂移的电压去做基准,那整个系统的精度就无从谈起。这时候,Bandgap带隙基准源就登场了。它的核心思路非常巧妙:既然PN结电压随温度下降,那我就想办法造出一个随温度上升的电压,让两者按合适的比例相加,温度系数正好抵消。这个“随温度上升的电压”就是两个不同电流密度下PN结电压的差值,也就是ΔVBE,它正比于绝对温度(PTAT)。
这个思路听起来简单,但真正落到电路设计上,架构选取、启动电路、运放失调、噪声、电源抑制比,每一个都是坑。我见过太多人第一次做Bandgap,仿真看着挺好,流片回来一测,温漂大得离谱,或者干脆启动不起来。所以这篇文章,我想从基本原理出发,把架构选取这件事掰开揉碎讲清楚。不管你是刚接触模拟IC的学生,还是已经做过几个项目的工程师,应该都能从中找到一些有用的东西。
2. Bandgap的核心原理:为什么是1.2V左右
2.1 从一个二极管说起:VBE的温度特性
先看最基础的东西。一个二极管或者二极管连接的三极管,它的基极-发射极电压VBE和温度是什么关系?根据半导体物理,VBE可以写成:
VBE = VG0 - (VG0 - VBE0) * T/T0 - (η - m) * (kT/q) * ln(T/T0)
这个公式看着复杂,但抓住核心就行:VBE随温度升高而降低,而且这个关系在室温附近近似线性。典型值大约是-1.5mV/°C到-2.5mV/°C,具体取决于工艺和偏置电流。这个负温度系数就是我们要补偿的对象。
那怎么补偿?我们需要一个正温度系数的电压。最自然的来源就是两个三极管在不同电流密度下的VBE差值。
2.2 ΔVBE:一个天然的正温度系数电压
假设有两个三极管Q1和Q2,它们的发射极面积比是1:N,流过它们的集电极电流相等。那么:
ΔVBE = VBE1 - VBE2 = (kT/q) * ln(N)
这个ΔVBE正比于绝对温度T,温度系数大约是+0.087mV/°C(当N=8时)。注意,这个正温度系数只和温度有关,和工艺角、偏置电流的关系相对较小,这是它非常宝贵的一个特性。
现在我们有了一块“负温度系数的砖”和一块“正温度系数的砖”。如果把VBE乘以一个系数α,ΔVBE乘以一个系数β,然后相加:
VREF = α * VBE + β * ΔVBE
只要α和β选得合适,就能让VREF的温度系数在某个温度点附近为零。这就是Bandgap的核心思想。
2.3 为什么输出电压是1.2V左右
在室温下,VBE大约是0.7V,ΔVBE大约是0.054V(N=8时)。要让温度系数为零,需要满足:
α * (-1.5mV/°C) + β * (+0.087mV/°C) = 0
也就是β/α ≈ 17.2。如果取α=1,那么β≈17.2,VREF = 0.7 + 17.2 * 0.054 ≈ 1.63V。这好像不是1.2V啊?
别急,这里有个细节。实际上,VBE的温度系数并不是恒定的-1.5mV/°C,它本身也随温度变化。更准确地说,当我们在某个温度点(比如室温)让温度系数为零时,VREF的值会趋近于硅的带隙电压外推值,大约是1.2V左右。这个1.2V不是随便来的,它和硅的带隙电压(0K时约1.17V)有深刻联系,这也是“Bandgap”这个名字的由来。
注意:实际设计中,VREF并不一定严格等于1.2V。根据架构不同,可能是1.2V、1.25V,甚至通过电阻分压得到更低的电压。但核心原理不变。
3. 架构选取:从简单到复杂,怎么选
3.1 最经典的Kujik架构:电流模还是电压模
说到Bandgap架构,最经典的就是Kujik在1973年提出的结构。这个结构的核心是用一个运放强制两个节点的电压相等,从而在电阻上产生ΔVBE,再把ΔVBE放大后和VBE相加。
但这里有个关键分岔:电压模(Voltage Mode)和电流模(Current Mode)。
电压模的做法是:直接把VBE和放大后的ΔVBE在电压域相加。典型电路是:Q1和Q2的VBE分别接到运放的两个输入端,运放输出控制电流源,电流流过电阻产生电压。这种架构的优点是直观,缺点是运放的输入共模范围必须包含VBE(约0.7V),在低电源电压下比较吃力。
电流模的做法是:先把VBE和ΔVBE都转换成电流,然后在电流域相加,最后通过一个电阻把电流转换成电压。这种架构的优点是运放输入共模范围可以更低,适合低电源电压设计。而且电流模架构更容易做高阶温度补偿。
我个人的经验是:如果电源电压在1.8V以上,电压模和电流模都可以用;如果电源电压低于1.5V,优先考虑电流模。因为电压模的运放输入共模需要包含VBE,在低电源下运放设计会非常困难。
3.2 Banba架构:低电压低功耗的利器
Banba架构是1999年提出的,专门针对低电源电压和低功耗场景。它的核心创新是:不直接产生1.2V的基准电压,而是产生一个小的PTAT电流和CTAT电流,然后通过电阻产生任意想要的基准电压。
这个架构的好处非常明显:
- 电源电压可以低到1V左右,因为不需要堆叠VBE和电阻压降。
- 基准电压可以通过电阻比例自由设定,不限于1.2V。
- 功耗可以做得非常低,因为所有支路电流都可以按比例缩小。
但代价是:电阻匹配变得极其关键。因为基准电压的精度直接取决于电阻比值,而电阻比值在工艺上会有偏差。另外,Banba架构通常需要两个运放或者一个运放加电流镜,电路复杂度稍高。
我做过一个项目,电源电压只有1.2V,要求基准电压0.6V,功耗小于10μA。当时试了电压模Kujik架构,运放根本没法工作。后来换成Banba架构,一次成功。所以低电压场景下,Banba架构几乎是首选。
3.3 高阶补偿架构:什么时候需要,怎么实现
基本的Bandgap只能做到一阶补偿,也就是在某个温度点附近温度系数为零,但整个温度范围内还是会有弯曲。典型的一阶Bandgap温漂在20-50ppm/°C左右。如果应用要求更高,比如高精度ADC或者精密仪器,就需要高阶补偿。
高阶补偿的思路主要有几种:
- 分段线性补偿:在不同温度区间用不同的补偿系数。
- 二阶曲率补偿:利用VBE中ln(T)项,通过一个PTAT²电流或者类似机制来抵消。
- 指数补偿:利用三极管在特定偏置下的指数特性。
这些方法我都在不同项目里试过。分段线性补偿实现简单,但需要额外的比较器和逻辑,而且补偿点需要校准。二阶曲率补偿效果更好,但电路更复杂,对匹配要求更高。指数补偿理论上最精确,但实际中受工艺影响很大,调试周期长。
我的建议:如果温漂要求低于10ppm/°C,再考虑高阶补偿。否则一阶补偿加上良好的版图匹配,通常就够了。
4. 那些仿真看不出来、流片才暴露的坑
4.1 启动电路:最容易被忽略的致命问题
Bandgap电路有一个天然的问题:它有两个稳定状态。一个是正常工作状态,另一个是“零状态”——所有晶体管都截止,电流为零。如果你不加启动电路,电路可能永远停在零状态。
我见过太多人仿真时忘了加启动电路,或者启动电路设计不当,结果流片回来芯片不工作。启动电路的核心是:在电路上电时注入一个电流,把电路从零状态推出来,然后在正常工作后自动关闭。
常见的启动电路有两种:
- 电容耦合启动:利用上电时电容的耦合作用注入电流。优点是简单,缺点是启动时间受电容和电阻影响,而且如果电源上升时间很慢,可能启动失败。
- 电流镜检测启动:检测某个支路电流,如果为零则注入启动电流。优点是可靠,缺点是增加功耗和面积。
我个人的经验是:优先用电流镜检测启动,虽然多几条支路,但可靠性高得多。特别是对于低功耗应用,电源上升时间可能很长,电容耦合启动很容易失败。
4.2 运放失调:看不见的精度杀手
Bandgap的精度很大程度上取决于运放的失调电压。因为运放的作用是强制两个节点电压相等,如果运放有失调,那么两个节点的电压就不相等,导致ΔVBE产生误差,最终影响基准电压。
运放失调的来源主要有两个:随机失调和系统失调。随机失调来自晶体管匹配,可以通过增大面积来减小。系统失调来自电路结构不对称,比如电流镜的沟道长度调制效应。
我做过一个对比实验:同样的Bandgap核心,用不同运放。一个用简单的单级运放,失调大约5mV;另一个用带斩波稳定的运放,失调小于100μV。结果基准电压的温漂从30ppm/°C降到了5ppm/°C。所以如果精度要求高,运放失调必须认真处理。
处理运放失调的方法:
- 增大输入对管面积:面积增大4倍,失调减小一半。
- 斩波稳定:通过调制和解调,把失调搬到高频,然后滤掉。效果最好,但增加电路复杂度和开关噪声。
- 自动调零:在启动时采样失调并存储,然后补偿。适合低速应用。
4.3 电阻匹配:版图比电路更重要
Bandgap的精度还取决于电阻匹配。因为ΔVBE是通过电阻比值放大的,如果电阻比值有偏差,基准电压就会偏差。
电阻匹配的坑主要在版图:
- 方向效应:不同方向的电阻,阻值会有差异。所以匹配电阻必须同方向。
- 温度梯度:芯片上不同位置的温度不同,如果匹配电阻离得远,温度差异会导致阻值差异。所以匹配电阻必须靠近,最好用交叉阵列。
- 边缘效应:电阻边缘的刻蚀速率和中间不同,导致阻值偏差。所以匹配电阻需要加dummy。
我见过一个案例:Bandgap的电阻匹配做得不好,导致基准电压在芯片不同位置差异达到10mV。后来重新布局,用交叉阵列加dummy,差异降到了1mV以内。所以版图工程师的经验在这里非常关键。
5. 架构选取的决策框架:从需求出发
5.1 先问自己几个问题
选架构之前,先明确需求。我通常会问:
- 电源电压范围是多少?最低多少?
- 基准电压需要多少?精度要求多少?
- 功耗预算多少?
- 温度范围是多少?温漂要求多少?
- 面积预算多少?
- 有没有校准条件?
这些问题的答案会直接决定架构选择。比如电源电压1.2V、功耗10μA、温漂50ppm/°C,那Banba架构几乎是唯一选择。如果电源电压3.3V、功耗1mA、温漂5ppm/°C,那可以考虑电压模Kujik加斩波运放加高阶补偿。
5.2 一个实用的架构对比表
| 架构类型 | 电源电压 | 功耗 | 温漂(一阶) | 复杂度 | 适用场景 |
|---|---|---|---|---|---|
| 电压模Kujik | >1.8V | 中等 | 20-50ppm/°C | 低 | 通用场景 |
| 电流模Kujik | >1.5V | 中等 | 20-50ppm/°C | 中 | 低电压场景 |
| Banba | >1V | 低 | 30-60ppm/°C | 中 | 低电压低功耗 |
| 高阶补偿 | >1.8V | 高 | <10ppm/°C | 高 | 高精度场景 |
这个表是我根据实际项目经验总结的,具体数值会因工艺和设计而异,但大致趋势是可靠的。
5.3 一个真实的选型案例
去年我做一个物联网传感器芯片,电源电压1.8V-3.6V,基准电压1.2V,功耗预算50μA,温漂要求30ppm/°C,面积预算0.05mm²。
一开始我选了电压模Kujik架构,因为最熟悉。但仿真发现,在1.8V电源下,运放的输入共模范围不够,导致增益下降,精度变差。后来换成电流模Kujik架构,运放输入共模可以低到0.7V,问题解决。最终流片测试,温漂28ppm/°C,满足要求。
这个案例说明:架构选取不是选最先进的,而是选最合适的。电压模Kujik虽然经典,但在低电源下不一定好用。
6. 仿真验证:怎么确认你的Bandgap真的靠谱
6.1 DC仿真:看温度系数和电源抑制比
DC仿真是最基础的。你需要做:
- 温度扫描:从-40°C到125°C,看基准电压的变化。计算温漂:ppm/°C = (Vmax - Vmin) / (Vnom * ΔT) * 1e6。
- 电源扫描:从最低电源到最高电源,看基准电压的变化。计算电源抑制比:PSRR = ΔVREF / ΔVDD。
- 工艺角仿真:跑TT、FF、SS、FS、SF等工艺角,看基准电压的偏差。
这里有个坑:温度扫描的步长要足够小。我见过有人用10°C步长,结果漏掉了温度曲线上的拐点。建议至少用1°C步长,最好用0.5°C。
6.2 瞬态仿真:看启动时间和稳定性
瞬态仿真主要看:
- 启动时间:从上电到基准电压稳定的时间。通常要求小于1ms。
- 启动过冲:启动过程中基准电压的最大过冲。过冲太大会影响后续电路。
- 稳定性:在电源波动或者负载变化时,基准电压的恢复时间。
启动仿真有个技巧:用PWL电源模拟真实的上电过程。不要用理想的阶跃电源,因为真实电源有上升时间。我通常用1ms上升时间的PWL,这样更接近实际。
6.3 Monte Carlo仿真:看良率
Monte Carlo仿真是评估良率的关键。你需要跑:
- 工艺偏差:包括Vth、Beta、电阻等参数的偏差。
- 失配偏差:包括运放输入对管、电流镜、电阻等的失配。
通常跑200-500次,看基准电压的分布。如果3σ偏差超过规格,就需要优化设计。
我做过一个项目,Monte Carlo仿真显示3σ偏差是±15mV,但规格是±10mV。后来通过增大运放输入对管面积和电阻面积,3σ偏差降到了±8mV。所以Monte Carlo仿真不是走过场,而是真正指导设计优化的工具。
7. 一些零散但重要的经验
7.1 关于噪声
Bandgap的噪声主要来自运放和电阻。运放的噪声会通过环路放大,电阻的热噪声会直接叠加在基准电压上。如果应用对噪声敏感,比如高精度ADC,就需要考虑噪声滤波。
降低噪声的方法:
- 增大运放输入对管的面积:减小1/f噪声。
- 增大电阻面积:减小热噪声。
- 加输出滤波电容:滤除高频噪声。但注意电容太大会影响启动时间。
7.2 关于版图
Bandgap的版图有几个关键点:
- 匹配:运放输入对管、电流镜、电阻都必须匹配。用交叉阵列、加dummy、同方向。
- 隔离:Bandgap对衬底噪声敏感,需要用保护环隔离。
- 走线:敏感节点走线要短,避免耦合噪声。
我见过一个案例:Bandgap的版图没有加保护环,结果附近数字电路的开关噪声耦合进来,导致基准电压抖动。后来加了保护环,问题解决。所以版图不是电路设计的附属品,而是设计的一部分。
7.3 关于测试
Bandgap的测试也有讲究:
- 温度测试:用温箱从-40°C到125°C,每个温度点稳定后测量。
- 电源测试:用可编程电源扫描,测量基准电压变化。
- 噪声测试:用频谱分析仪或者示波器测量噪声。
测试时要注意:测量点要靠近芯片引脚,避免PCB走线引入噪声。我通常会在PCB上放一个缓冲运放,把基准电压缓冲后再测量。
8. 写在最后
Bandgap带隙基准源看起来简单,但真正做好并不容易。从原理理解到架构选取,从仿真验证到版图设计,每一个环节都有坑。我做了这么多年,也不敢说完全掌握了。但有一点是肯定的:理解原理是基础,架构选取是关键,仿真验证是保障,版图设计是升华。
如果你正在做Bandgap设计,我的建议是:先把手头的架构吃透,不要盲目追求先进架构。很多问题不是架构本身的问题,而是设计细节没做好。比如启动电路、运放失调、电阻匹配,这些才是决定成败的关键。
另外,多流片,多测试,多总结。仿真和实测的差距,往往就是经验积累的来源。我到现在还保留着每一个项目的测试数据,时不时翻出来看看,每次都有新收获。
希望这篇文章能帮你少走一些弯路。如果有问题,欢迎交流。