纳米功耗比较器:将待机电流从微安降到纳安的设计实战

📅 2026/8/27 10:46:16
纳米功耗比较器:将待机电流从微安降到纳安的设计实战
低功耗设计做到一定阶段你会遇到一个特别拧巴的场景MCU 已经进入深度睡眠电流掉到 1µA 以内了但负责“唤醒”MCU 的那颗电压监测芯片自己却还在以几微安的电流跑着。整个系统的功耗预算过半都耗在这个“看门人”身上。我在做一款纽扣电池供电的温湿度传感器时就卡在这个环节——直到把目光转向 Nanopower Comparator纳米功耗比较器静态电流从微安级别直接掉到几百纳安问题才真正解决。这篇文章就围绕 Nanopower Comparator 展开。我会从为什么需要它、内部怎么省电到选型、电路计算、实际布线把我在这个项目里踩过的坑和验证过的方案一起梳理出来。适合正在做电池供电设备、能量采集系统或者被“低功耗但需要持续监测”这个问题折磨过的硬件工程师参考。1. 一颗休眠中的芯片为什么还在烧干电池1.1 低功耗系统的“隐形电费单”做电池供电设备的人最关注两个数字休眠电流和工作电流。MCU 的休眠电流现在可以做到 100nA 甚至几十 nA但这只是芯片本身。系统里只要挂着电源管理、传感器、监测电路、电平转换每一颗芯片都会叠加一份静态电流。我计算过一个典型的 IoT 节点MCU 深度睡眠约 0.5µA加速度计待机约 0.7µA电压监测比较器普通 CMOS 比较器约 3µA分压电阻网络约 2µA两个 1MΩ 电阻在 3.3V 下总休眠电流 6.2µA。用一颗 240mAh 的 CR2032理论待机时间约 3.2 年。但你如果只留 MCU 和传感器去掉比较器和分压网络总电流降到 1.2µA理论待机时间瞬间拉到 22 年以上。虽然实际电池自放电早就超过这个数但这个对比足以说明问题持续导通的功能模块决定了系统的功耗下限。所以当我们说 Nanopower Comparator 的时候它不是“稍微省一点电”的优化而是把整条功耗链路的瓶颈直接解掉了。1.2 纳米功耗比较器的适用边界纳米功耗比较器通常指静态电流在 300nA 上下、甚至低于 100nA 的比较器。它靠牺牲带宽和速度换来极低的工作电流。用它做阈值检测、电池欠压告警、唤醒电路非常合适但你要是想拿它做高频 PWM 信号整形、高速过零检测那就不现实了——它的传播延迟通常在 1µs 到 10µs 级别远高于普通比较器的几十 ns。在我那个项目里它的任务是监测电池电压低于阈值时把 MCU 从深度睡眠中唤醒让 MCU 通过 ADC 精确测量电池电压并上报。这个场景MCU 大部分时间都在睡比较器是唯一持续运行的功能模块所以它必须极省电。同时它又不需要跑得很快——电压下降是一个缓慢的过程几百 µs 的延迟完全无所谓。这样纳米功耗比较器的“慢”和“省”恰好匹配了实际需求。反过来如果你想做的是高频信号检测就别选它。我在文章后面会专门说选型边界先把这个概念的大致轮廓立住。2. 内部架构拆解纳米功耗是怎么抠出来的很多人以为比较器省电就是“做得简单点”实际上纳米功耗比较器和普通比较器在内部电路上差别不小。搞清楚它的设计取舍你才能明白参数表里那些数字为什么是这样。2.1 偏置电流与亚阈值区的低功耗设计传统比较器内部通常由输入差分对、中间增益级、输出级三级构成每一级都需要偏置电流。普通比较器的静态电流做到几十 µA 到几百 µA已经很不错了。纳米功耗比较器要再降两个数量级首先动刀的地方就是偏置。晶体管有一个特殊的工作区域叫亚阈值区。当栅源电压低于阈值电压时MOS 管并没有完全关断而是会流过微弱的指数衰减电流。在这个区域晶体管的跨导虽然低但电流可以做到纳安级甚至皮安级。纳米功耗比较器通常就是把输入对管和偏置电路设计在亚阈值区用几百 nA 的电流实现完整的比较功能。代价就是速度。亚阈值区晶体管驱动能力弱内部节点的充放电电流小传播延迟自然拉长。这就是为什么纳米功耗比较器的参数表里延迟动辄写 “Typ. 4µs” 而不是 “Typ. 50ns”。你在选型时如果系统里只是监测一个缓慢变化的电压这个延迟完全不影响使用。2.2 轨到轨输入级与共模范围的取舍很多纳米功耗比较器宣传“轨到轨输入”这意味着输入共模电压可以接近甚至超过电源轨。这个特性对低功耗系统特别重要因为很多场景下分压后的信号本身就接近电源电压。举个例子用 3.7V 锂电池供电你要监测电池是否降到 3.0V分压电阻的输出可能落在 0.9V 到 1.8V 之间这属于比较安全的范围。但如果你想直接检测 5V 电源轨是否出现过压甚至直接用比较器监测接近 VCC 的信号非轨到轨输入的芯片就无能为力了。轨到轨输入通常需要 N 沟道和 P 沟道两对差分输入并联这会给内部电路带来额外功耗。所以一些超低功耗芯片会用“输入共模范围包含 GND”这类折中设计。我见过有些工程师在选型时不看共模范围结果分压电阻设计出来信号电压超出共模范围比较器输出一直不翻转排查了整整一天。这个细节务必在原理图阶段就确认。2.3 内置迟滞低功耗下抗干扰的刚需比较器的迟滞是指输出翻转后要等输入信号越过一个更大的反向差值才会翻转回来形成一个“死区”。普通比较器可以通过外部正反馈电阻实现迟滞但纳米功耗比较器往往直接内置了若干毫伏的迟滞比如 TLV7011 系列典型迟滞在 3.4mV 左右。为什么低功耗芯片特别需要内置迟滞因为整个系统都在极低电流下工作抗噪能力天然弱。分压电阻往往用到兆欧级别这些高阻节点很容易耦合外界干扰。如果没有迟滞电池电压在阈值附近小幅波动时比较器输出会反复翻转轻则频繁误唤醒 MCU重则导致系统在功耗和性能上来回震荡。我在项目中最初用的是外部迟滞电阻的方案。后来发现高阻网络下外部迟滞的计算和调试比想象中麻烦换用内置迟滞的纳米功耗比较器之后设计简化了一大截稳定性反而更好。这一点在第六章里我会用实际数值再算一遍。3. 选型实战那些参数表里不会写的事3.1 核心参数解读选一颗纳米功耗比较器我建议优先看这几个参数参数说明我的经验值静态电流Iq比较器自身消耗的电流300nA 以内工作电压范围决定能否用单节锂电池/干电池直供1.6V~5.5V 较好传播延迟输入变化到输出翻转的时间1µs~10µs 可接受输入偏置电流影响高阻分压网络的精度pA 级最佳内置迟滞是否内置、是多少3mV 以上防抖输出类型推挽还是开漏开漏更灵活建议去看原厂的手册而不是只看电商页面上的“典型应用”。手册里通常会给出静态电流随电压和温度变化的曲线比如 TLV7011 在 25°C、3.3V 下的 Iq 约为 300nA但在 85°C 下会上升到 400nA 左右。做工业级产品时这个差异要提前算进去。输入偏置电流经常被忽略。对于纳米功耗比较器输入偏置电流可能是几 pA 到几十 pA这对接纳兆欧级分压电阻的设计非常友好。但要注意偏置电流会随温度升高而增大手册一般会标注最大值要按最大值算误差而不是典型值。3.2 分压电阻网络计算一个完整案例以我的项目为例锂电池满电 4.2V欠压阈值 3.0V需要触发唤醒。我选了一款内置 1.8V 参考的纳米功耗比较器把电池电压分压后接到比较器的同相端1.8V 参考接到反相端。分压比 1.8V / 3.0V 0.6。也就是分压电阻下臂 R2 / (R1 R2) 0.6即 R2 1.5 × R1。我选了 R1 4.3MΩR2 6.5MΩ。实际常用阻值里6.8MΩ 比较常见算下来分压比是 6.8/(4.36.8) ≈ 0.6126对应触发阈值为 1.8 / 0.6126 ≈ 2.94V偏低了约 60mV。如果希望更接近 3.0V可以用 R1 4.7MΩR2 7.5MΩ分压比 7.5/12.2 ≈ 0.6148触发阈值 2.93V。也可以把参考电压选得更高或者允许一定误差——因为电池从 3.0V 掉到 2.9V 可能还需要很长时间对唤醒时机影响不大。这里要算分压电阻网络自身的功耗。R1R2 ≈ 11.5MΩ在 3.0V 下流过分压电阻的电流是 3.0 / 11.5MΩ ≈ 0.26µA也就是 260nA。这个值已经和比较器本身的静态电流差不多量级相当理想。如果用的是 1MΩ 级别电阻这个分压网络就要吃掉 1µA 以上那纳米功耗比较器省下来的电又会被分压电阻吃掉大半。提示高阻分压网络一定要考虑输入偏置电流。若比较器输入偏置电流达到 100pA在 11.5MΩ 源阻抗上会产生约 1.15mV 的误差相比 3.0V 阈值来说误差很小。但若源阻抗升到 100MΩ误差就会到 10mV 级别可能影响欠压判断精度。3.3 上拉电阻取值与开漏输出纳米功耗比较器多数采用开漏输出需要外部接上拉电阻才能输出高电平。上拉电阻的取值直接影响系统的功耗和信号上升时间。从功耗角度上拉电阻越大越好。比如 3.3V 上拉用 1MΩ 电阻输出低电平时的电流是 3.3µA这对纳米功耗系统来说已经偏大了。用 10MΩ电流降到 330nA。但如果上拉太大寄生电容会把信号上升沿拖得很慢。我一般的原则是如果比较器输出直接接 MCU 的输入中断引脚MCU 输入端本身就有几 pF 电容用 1MΩ 到 4.7MΩ 上拉上升沿在几十 µs 级别唤醒场景完全够用。如果输出需要驱动小信号 MOSFET 或 LED那上拉取 100kΩ 以下比较合适但此时要接受额外功耗。我还见过一种做法用 MCU 内部的上拉电阻替代外部上拉。MCU 内部上拉通常在 30kΩ~50kΩ虽然功耗更大但能省一颗物料。如果系统对成本敏感可以这么做只是 MCU 睡眠时内部上拉是否保持使能需要仔细读手册有些 MCU 在深度睡眠模式下内部上拉会断开。4. 实测踩坑记录噪声、漏电与焊接这个章节是整篇文章最想让你看到的部分。原理图看着没问题、计算也通过但一上实测就翻车这种情况在纳米功耗电路里太常见了。4.1 高阻分压网络遇到 PCB 表面漏电流我第一版 PCB 打样回来装好芯片测比较器翻转电压发现实测阈值比理论值低了不少而且不是固定偏移是随机漂移的。排查了很久后来用显微镜看到 PCB 表面有助焊剂残留才意识到问题。高阻分压网络的源阻抗高达 11.5MΩ而 PCB 表面在潮湿环境下的漏电阻可能只有几十 MΩ甚至会低于分压电阻本身。这样漏电流路径直接并联在分压电阻上改变了实际分压比。最典型的症状就是阈值不稳定、随湿度变化。两个解决办法用洗板水仔细清洗 PCB清除助焊剂和污渍然后涂三防漆保护。在高阻节点周围画保护环Guard Ring利用 COMS 输入电路设计中的技术把高阻节点用低阻抗的 GND 或 VCC 走线围住让漏电流沿着保护环走不影响主信号。如果只是做样机演示第一种方法就够了。但产品要过湿度、盐雾测试保护环几乎是必须的。4.2 迟滞不足导致的输出抖动有一次我调试一个监测 3.3V 电源轨的电路电源本身有开关电源的纹波大概几十 mV 的峰峰值。比较器的翻转阈值刚好落在纹波范围内理论上应该迟滞 3.4mV 就够用但实际测试发现输出在阈值附近抖动。问题出在纹波频率太高。比较器的传播延迟本身有 4µs 左右如果输入信号变化速度超过比较器能响应的速率内部电路会进入一种“半翻转”状态输出出现亚稳态抖动。我在示波器上看到的就是一串充满毛刺的方波。后来我把阈值点移出了纹波中心具体做法是提高参考电压让翻转阈值落在纹波波峰以上而不是中间区域同时调整了输入滤波电容把高频纹波滤掉一部分。这次之后我总结出一个经验纳米功耗比较器不适合直接处理带纹波的电源轨最好在信号进入比较器之前加一个简单的 RC 低通滤波截止频率做到 10Hz 甚至更低反而能让系统更稳定。RC 滤波的代价是输入信号被延迟但电池电压变化本来就慢几百 ms 的延迟根本察觉不到。4.3 测试低功耗芯片时万用表的“作弊”纳米功耗系统有一个非常隐蔽的坑你用万用表电流档量静态电流测出来的数字可能比真实值大得多。我的第一版样机用台式万用表电流档测整个系统休眠电流读数是 15µA比预算高出好几倍。排查好久最后把万用表拆掉用示波器测采样电阻上的压降才发现真实电流只有 2.6µA。问题出在万用表电流档的内部取样电阻上。很多万用表电流档内阻在 1Ω~10Ω 之间对于微安级电流来说这个内阻在主回路里产生了几十 µV 到几百 µV 的压降相当于给系统注入了一个微小扰动。某些敏感的纳米功耗芯片内部电路会被这个扰动激活额外消耗电流。更准确的做法是用一个 10Ω 或 100Ω 的精密采样电阻串在主回路里用示波器或高精度万用表测电阻两端压降再除以阻值得到电流。或者直接用电流探头、源表之类的设备。如果你只有万用表至少要在测完电流后把读数除以一个校准系数或者用已知电阻做一次校准。另外一个常见误区是测静态电流之前要确保 MCU 已经进入睡眠状态。芯片启动瞬间的浪涌电流会把万用表读数拉高你看起来像是“静态电流超标”实际只是测试时序不对。我后来习惯用逻辑分析仪抓 MCU 的睡眠标志位确认进入睡眠后再切电流测量通道。4.4 焊接温度与引脚氧化纳米功耗比较器的工作电流那么小意味着内部晶体管的尺寸和偏置都极其精细。这种芯片对静电和焊接温度更敏感。我早期用过一把温控不太准的烙铁焊完一片 TLV7011发现输出一直是高电平怎么都不翻转。后来换了一片同样的电路就正常了。我怀疑第一片是焊接时温度过高导致内部电路损坏或者是静电击穿。从那以后我焊这类低功耗芯片烙铁温度控制在 300°C 以内焊接时间尽量短并且使用接地良好的工位。如果你做的是大批量产线一定要关注贴片厂的工艺。回流焊的峰值温度、升温速率如果超标可能导致芯片参数偏移。我在一个项目中就遇到整批芯片迟滞电压偏大的情况后来确认是回流焊温度曲线没调好。这个问题的排查成本很高建议在批量前先做小批量验证。5. 进阶玩法与设计心得5.1 用比较器做周期唤醒振荡器纳米功耗比较器除了做阈值检测还有一个很实用的玩法做成超低功耗的周期振荡器用于周期性唤醒系统。原理是标准的 RC 张弛振荡器比较器的反相输入端接 RC 充放电网络同相输入端接参考电压输出通过反馈电阻控制网络的充放电方向。当输出电压翻转时反馈电阻改变参考点的分压使比较器在上下阈值之间反复翻转。我用一个 TLV7011、两个电阻、一个电容实现了一个约 1Hz 的振荡器实测整体电流不到 1µA。MCU 平时深度睡眠每隔一秒被比较器输出的上升沿唤醒一次做一次传感器采样然后继续睡。功耗比用 MCU 内部定时器唤醒还要低——因为 MCU 定时器即使睡眠也会持续消耗微安级电流而外部比较器振荡器可以把这部分功耗降到几百纳安。这个方案的关键是振荡频率的稳定性差一些受温度和电源电压影响。如果定时精度要求不高比如周期性上报一次温度这个方案非常合适。5.2 多级窗口比较器与固件配合单一阈值检测有时不够用。比如锂电池放电曲线里3.6V 时可以通知系统“进入低功耗模式”3.0V 时则必须强制关机防止过放。这种情况可以级联两颗纳米功耗比较器一个设 3.6V 阈值一个设 3.0V 阈值。但更省事的方案是用一颗带窗口比较功能的芯片或者用 MCU 的 ADC 配合比较器做二次判断。我的经验是比较器负责“粗判断”MCU 负责“精判断”。比较器输出唤醒 MCU 后MCU 立即启动 ADC测量分压后的电池电压做精确计算然后决定是否上报、是否关机。这样既不牺牲精度又能把持续功耗压在纳安级。固件里还要注意比较器唤醒 MCU 后MCU 不能立刻再回到睡眠否则可能陷入频繁唤醒-睡眠的死循环。我一般会在唤醒处理函数里加上一个去抖逻辑连续 N 次比较器触发阈值才进入正式的欠压处理流程避免因为偶发噪声造成误判。5.3 个人经验总结先规划功耗预算再选芯片做过几个低功耗项目之后我的体会是选 Nanopower Comparator 这类芯片不能只看芯片本身要先做整机功耗预算。先列出系统里哪些模块是持续工作的哪些是休眠时才工作的。持续工作的模块功耗要压到最低休眠时才工作的模块可以放宽要求。在比较器选型时你需要的不是“最省电的芯片”而是“整个检测链路最省电的方案”。芯片 Iq 降到 300nA分压电阻却吃掉 2µA那这个选型就没有意义。另外我建议在原理图设计阶段就把高阻节点、测试点、保护环预留好。后期再想加保护环PCB 改版成本很高。测试时准备好低电流测试设备和正确的测试方法不要被万用表欺骗。纳米功耗电路的问题往往是“测出来的”和“实际跑出来的”不一致这种不一致通常来自测试方法本身。如果你也在做电池供电设备正在为持续监测功能的高功耗发愁试试把目光放到纳米功耗比较器上。它可能不会让你的产品多出惊艳的功能但它能帮你把“随时待命”的成本降到几乎可以忽略不计。