1. 为什么低功耗场景下Bandgap结构需要重新设计
做过MCU低功耗设计的人都有一个共识:休眠电流能不能压到1μA以下,往往不取决于数字逻辑,而是被那个不起眼的Bandgap基准源卡住了脖子。像HC32L196、STM32L151C8T6A、GD32E503CC这类主打低功耗的芯片,规格书里写的Stop模式电流动辄零点几微安,但实际板子跑下来经常差一个数量级,问题十有八九出在Bandgap的偏置电流和启动电路上。
Bandgap基准电压源的核心任务,是产生一个对温度不敏感、对电源不敏感的参考电压,通常在1.2V左右(硅的带隙电压外推值)。传统结构用运放钳位两个三极管的正向压降差,产生PTAT电流,再叠加到VBE上得到近似零温度系数的输出。这套逻辑在常温、常压、不在乎功耗的场合非常成熟,但一旦进入低功耗语境,矛盾就来了:运放需要偏置电流,电阻分压网络需要静态电流,启动电路需要持续监测,这些加起来轻松吃掉几个微安。
低功耗Bandgap的设计哲学,本质上是在"精度""启动可靠性""静态电流"三者之间做取舍。你不能既要1μA以下的静态电流,又要上电100μs内稳定到0.1%精度,还要保证-40℃冷启动绝不卡死。理解这个三角关系,是看懂所有低功耗Bandgap结构变种的前提。
这篇文章面向的是正在做低功耗MCU外围设计、或者需要自己集成Bandgap IP的硬件工程师和模拟IC初学者。我会从结构分类讲起,拆解几种主流低功耗方案的原理和取舍逻辑,然后给出可复现的实操验证方法,最后分享几个我在实际项目中踩过的坑。内容偏工程实战,不堆公式,但关键参数的计算过程会给全。
2. 低功耗Bandgap的三种主流结构拆解
2.1 电流模结构:为什么它天然适合低功耗
电流模Bandgap(Current-Mode Bandgap)是低功耗设计里出现频率最高的结构。它的核心思路是:不再直接把PTAT电流注入电阻产生电压,而是让PTAT电流和CTAT电流在同一个节点相加,再通过一个电阻转换成电压。
具体来说,电路里有两路电流。一路来自ΔVBE除以电阻R1,这是PTAT电流,与绝对温度成正比。另一路来自VBE除以电阻R2,这是CTAT电流,与温度成反比。两路电流在一个电流镜节点相加,流过输出电阻R3,得到:
VREF = R3 × (ΔVBE/R1 + VBE/R2)
通过合理选择R1、R2、R3的比例,可以让VREF的温度系数在某个温度点附近归零。
电流模结构适合低功耗的原因有三点。第一,它允许使用较大的电阻值来降低电流,因为电流是在电流域相加,不依赖运放输出驱动大电容。第二,输出节点是一个高阻电流镜的输出,可以方便地做电源电压补偿。第三,PTAT和CTAT的权重调节通过电阻比实现,不需要额外的运放级,省掉了运放本身的静态功耗。
但电流模结构有个隐藏代价:电流镜的失配会直接转化为输出误差。在低功耗下,MOS管工作在亚阈值区,失配反而比强反型区更严重。所以低功耗电流模Bandgap通常需要共源共栅电流镜或者斩波稳定技术来压失配,这又增加了面积和复杂度。
2.2 亚阈值MOS Bandgap:把电流压到nA级
当静态电流要求压到100nA以下时,双极型晶体管的正向偏置电流本身就成了负担。这时候亚阈值MOS Bandgap就登场了。
它的原理是利用MOS管在亚阈值区的指数型I-V特性,替代双极型晶体管产生PTAT电压。亚阈值区MOS管的漏电流与栅源电压呈指数关系,两个不同宽长比的MOS管在相同电流下,栅源电压差ΔVGS就是一个PTAT电压,形式上和双极型的ΔVBE完全一致。
这个结构的优势非常明显:亚阈值区的工作电流可以低到nA级别,而且MOS管没有双极型晶体管的基极电流误差。但代价也很直接:亚阈值区的匹配性极差,工艺角变化对ΔVGS的影响远大于ΔVBE。实测中,同一个wafer上不同位置的亚阈值Bandgap,输出偏差可能达到±5%以上,而双极型结构通常能控制在±1%以内。
所以亚阈值MOS Bandgap一般用在精度要求不高的场合,比如只作为低功耗比较器的参考,或者配合数字校准使用。如果你需要它直接作为ADC的基准,那得三思。
2.3 分时复用结构:用时间换功耗
分时复用(Time-Multiplexed)是一种更激进的低功耗思路。它的核心思想是:Bandgap不需要一直工作,只需要在需要采样的时候快速启动、稳定、采样、然后关断。
这种结构通常配合一个采样保持电容使用。Bandgap在使能信号到来后,用几十微秒建立到稳定值,采样电容记录下这个电压,然后Bandgap整体断电。下次需要参考电压时,直接读电容上的值,或者重新启动一次。
分时复用的静态电流可以做到几乎为零,因为大部分时间电路是关断的。但它的代价是:采样电容的漏电会限制保持时间,通常只能维持几毫秒到几十毫秒;每次启动的建立时间会引入延迟;频繁开关会加速器件老化。
在实际的低功耗MCU里,分时复用Bandgap通常用在深度休眠模式下,唤醒后先快速启动Bandgap,等系统时钟稳定后再切换到连续工作的Bandgap。STM32L系列和HC32L系列的低功耗模式切换逻辑里,都能看到这种影子。
3. 启动电路:低功耗Bandgap最容易翻车的地方
3.1 简并点问题与启动失败的根因
Bandgap电路有两个稳定工作点:一个是正常工作点,一个是所有晶体管都截止的简并点。启动电路的任务,就是在上电时把电路从简并点推到正常工作点。
低功耗设计让这个问题变得更棘手。因为偏置电流本来就小,启动电路注入的电流如果太大,会干扰正常工作;如果太小,又推不动电路。更麻烦的是,低功耗Bandgap经常工作在亚阈值区,晶体管的跨导低,从简并点恢复需要更长的时间。
我见过一个典型故障:某低功耗Bandgap在常温下启动正常,但在-40℃冷启动时,有大约5%的概率卡在简并点,输出一直是0V。排查后发现,启动电路用的MOS管在低温下阈值电压升高,导致启动电流不足。后来把启动管的宽长比加大了一倍,问题才解决。
3.2 启动电路的三种实现与取舍
最常见的启动电路是"检测-注入"型:用一个MOS管检测某个节点的电压,如果电压低于阈值,就注入一股电流把电路拉起来。这种结构的优点是启动可靠,缺点是检测管本身会引入漏电,在低功耗下不可忽略。
第二种是"电容耦合"型:利用上电时电容的耦合作用,把一股瞬态电流注入到偏置节点。这种结构静态功耗为零,但启动可靠性依赖电容值和上电斜率,在缓慢上电的场合可能失效。
第三种是"电流镜自启动"型:通过设计电流镜的初始状态,让电路在上电时自然偏向正常工作点。这种结构最优雅,但设计难度最高,需要仔细仿真所有工艺角和温度点。
实际项目中,我通常推荐"检测-注入"型作为主启动电路,再配合一个小电容耦合作为辅助。这样既保证了可靠性,又把静态漏电控制在可接受范围内。检测管的宽长比要仔细选,太小了启动不了,太大了漏电超标。我的经验值是:检测管的亚阈值漏电应该小于Bandgap总静态电流的1%。
3.3 启动时间的实测与优化
启动时间是低功耗Bandgap的另一个关键指标。分时复用结构要求Bandgap在几十微秒内建立到0.1%精度,这对启动电路和补偿电容的设计提出了很高要求。
实测启动时间的方法很简单:给Bandgap一个使能阶跃信号,用示波器抓输出波形,看从使能到输出进入±0.1%误差带的时间。但要注意,示波器探头的电容会影响高阻输出节点的建立速度,最好用低电容探头或者缓冲后再测。
优化启动时间的手段有几个。一是减小补偿电容,但这会影响稳定性。二是增大启动电流,但这会增加功耗。三是采用动态偏置,启动时用大电流,稳定后切换到小电流。第三种方法最有效,但需要额外的时序控制逻辑。
我在一个项目中用过动态偏置方案:启动阶段偏置电流是正常值的10倍,100μs后切换到正常值。实测启动时间从原来的500μs缩短到80μs,而静态电流只增加了不到5%。代价是需要一个简单的定时器电路,面积增加了大约15%。
4. 低功耗Bandgap的实操验证与调试方法
4.1 静态电流的测量陷阱
测量低功耗Bandgap的静态电流,最容易犯的错误是用普通的万用表串联在电源线上。万用表的电流档内阻通常在几欧姆到几十欧姆,对于静态电流只有几百nA的电路,这个内阻产生的压降可能让Bandgap直接停止工作。
正确的做法是用高输入阻抗的皮安计,或者用运放搭建一个电流-电压转换电路。如果没有专业设备,可以用一个已知的大电阻(比如10MΩ)串联在电源线上,测量电阻两端的电压差,再换算成电流。但要注意电阻本身的漏电和热噪声。
还有一个坑:Bandgap的静态电流会随电源电压变化。在低功耗设计中,电源电压可能在1.8V到3.6V之间变化,静态电流的变化可能达到2倍以上。所以测量时要扫描整个工作电压范围,记录最坏情况。
4.2 温度系数的实测与补偿
温度系数的实测需要高低温箱。把板子放进去,从-40℃升到125℃,每隔10℃记录一次输出电压。理想情况下,输出电压应该是一条抛物线,顶点在室温附近。
但实测中经常看到曲线不对称,或者顶点偏离室温。这通常是因为PTAT和CTAT的权重没有调好。补偿的方法是调整电阻比,但要注意,电阻本身的温度系数也会影响结果。如果用多晶硅电阻,它的温度系数可能在±100ppm/℃量级,会直接叠加到Bandgap的温度系数上。
我的经验是:先用仿真确定电阻比的大致范围,然后在实测中微调。微调时不要只调一个电阻,要同时调整PTAT和CTAT两路的电阻,保持总电流不变。这样可以避免静态电流的意外变化。
4.3 噪声与电源抑制比的权衡
低功耗Bandgap的噪声通常比常规结构差,因为偏置电流小,晶体管的gm低,闪烁噪声和热噪声都更大。如果Bandgap后面直接接ADC,噪声会直接影响有效位数。
降低噪声的手段有几个。一是增大输出电容,做低通滤波,但这会增加启动时间。二是采用斩波稳定技术,把低频噪声调制到高频再滤掉,但这会增加电路的复杂度和开关噪声。三是增大关键晶体管的面积,降低闪烁噪声,但这会增加芯片面积。
电源抑制比(PSRR)在低功耗下也会变差,因为电流镜的输出阻抗降低了。改善PSRR的方法通常是采用共源共栅结构,但这会消耗更多的电压余量。在1.8V电源下,共源共栅结构可能只剩不到0.5V的余量,设计时要仔细核算。
5. 几个真实项目中的踩坑记录
5.1 启动电路漏电导致的休眠电流超标
有个项目用了一款低功耗Bandgap IP,规格书标称静态电流800nA。但实测休眠电流始终在3μA以上,排查了很久才发现是启动电路的检测管在休眠时没有完全关断。
问题的根源是:检测管的栅极接在一个高阻节点上,休眠时这个节点的电压不确定,导致检测管处于亚阈值导通状态。解决方案是在检测管栅极加一个下拉电阻,确保休眠时栅极电压为0。但这个下拉电阻本身也会消耗电流,所以阻值要选得足够大,同时又要保证在需要启动时能快速拉低。
最后选了一个10MΩ的多晶硅电阻,休眠时检测管完全关断,启动时栅极被外部信号拉高。代价是启动时间增加了大约20μs,但休眠电流降到了1μA以下。
5.2 分时复用结构的采样电容漏电
另一个项目用了分时复用Bandgap,采样电容是2pF的MOM电容。常温下保持时间能达到10ms,但在85℃时,保持时间缩短到不到1ms,导致系统在高温下频繁唤醒重新采样,平均功耗反而比连续工作的Bandgap还高。
原因是MOM电容的漏电随温度指数上升,而采样节点的电压又直接暴露在漏电路径上。解决方案是改用MIM电容,漏电降低了两个数量级,但需要额外的掩膜层,成本增加了。另一个方案是在采样节点加一个单位增益缓冲器,隔离漏电,但缓冲器本身的静态电流又吃掉了分时复用的优势。
最终我们选择了折中方案:在采样电容和输出之间加一个传输门,采样结束后传输门关断,把电容和输出隔离。这样漏电只影响电容本身,不影响输出节点。保持时间在85℃下恢复到了5ms以上。
5.3 工艺角仿真与实测的偏差
仿真时所有工艺角都过了,但流片回来发现慢速工艺角下Bandgap输出偏低5%。排查后发现是仿真模型的问题:慢速工艺角下,双极型晶体管的β值下降,基极电流增大,导致电流镜的镜像比例失配。
这个问题在低功耗设计中特别隐蔽,因为低功耗下双极型晶体管通常工作在低电流密度区,β值的下降更明显。解决方案是在电流镜中采用基极电流补偿结构,或者改用MOS管替代双极型晶体管做电流镜。
后来我们在设计规范里加了一条:所有低功耗Bandgap的仿真必须包含β值变化的蒙特卡洛分析,不能只看工艺角。这条规范后来帮我们避免了好几个类似问题。
6. 低功耗Bandgap选型与集成的实用建议
6.1 什么时候该用IP,什么时候该自己设计
如果你的项目只是用MCU内部的Bandgap,那没什么选择余地,只能接受规格书里的指标。但如果你需要在SoC里集成Bandgap IP,或者用分立器件搭建,那就要考虑自研还是买IP。
买IP的优势是成熟、可靠、有硅验证。劣势是面积和功耗通常不是最优的,而且接口和时序可能和你的系统不匹配。自研的优势是可以针对你的应用做优化,比如把静态电流压到极致,或者把启动时间做到最短。劣势是设计周期长,流片风险高。
我的建议是:如果静态电流要求在1μA以上,直接买IP,省时省力。如果要求在100nA以下,或者有特殊的启动时间要求,那值得自研。自研时先从仿真开始,把启动电路和补偿网络调好,再考虑版图。
6.2 版图布局对低功耗Bandgap的影响
低功耗Bandgap的版图布局比常规结构更敏感,因为电流小,任何漏电和失配都会被放大。几个关键点:
第一,双极型晶体管要放在一起,做共质心布局,减少工艺梯度的影响。第二,电阻要匹配,用相同的宽度和方向,必要时做dummy。第三,高阻节点要远离数字信号线,避免耦合噪声。第四,电源和地线要分开走,避免数字电流流过Bandgap的接地路径。
还有一个容易被忽略的点:焊盘和ESD保护电路的漏电。在低功耗下,ESD二极管的漏电可能达到几十nA,直接叠加到Bandgap的静态电流上。所以Bandgap的电源焊盘最好用独立的ESD保护,或者选择低漏电的ESD结构。
6.3 系统级的低功耗策略配合
Bandgap再省电,如果系统级的电源管理没做好,整体功耗还是下不来。几个配合策略:
第一,Bandgap的使能信号要和系统时钟同步,避免在时钟切换时产生毛刺导致误启动。第二,休眠前要确保Bandgap完全关断,包括启动电路和偏置电路。第三,唤醒后要给Bandgap足够的建立时间,再启动ADC采样。第四,如果系统有多个电源域,Bandgap的电源要放在最后一个关断、第一个开启的域里。
我在一个项目中遇到过这样的问题:系统休眠时,Bandgap的电源域先关断,但使能信号还保持高电平,导致Bandgap处于半导通状态,漏电达到10μA。后来调整了电源域的下电顺序,让使能信号先拉低,再关电源,问题才解决。
低功耗Bandgap的设计,说到底是一个系统工程。你不能只盯着电路本身,还要考虑启动、补偿、版图、系统时序。每一个环节的疏忽,都可能让静态电流从几百nA变成几μA。希望这些经验能帮你在下一个低功耗项目里少走点弯路。