长按开关机芯片选型:静态电流、长按时间与电源开关设计
2026/9/18 1:49:10 网站建设 项目流程

长按开关机芯片这个说法,在很多方案评审上都是一句话带过去的,但真到画原理图、选物料、跑待机电流的时候,它往往是整机能不能过待机指标的那道分水岭。我一般把它当成电源域的“门卫”:它决定谁能把系统叫醒,谁能把系统彻底关掉,以及关掉之后系统还剩多少漏电流。做便携设备、小家电、手持仪器的人几乎都会碰到它——从蓝牙音箱、TWS 充电仓、电动牙刷、电子烟,到手持万用表、蓝牙扫码枪、智能门锁、血氧仪,只要产品上只有一个按键、又必须做到“长按开机、长按关机”,就绕不开这类器件。这里我按自己实际的选料流程,把长按开关机芯片的选型拆成五个参数来讲清楚,顺便把常见的翻车点和实测数据一起放进来。刚接手电源部分的同学可以照着这套流程走,做过几轮的老手也可以拿它当核对清单。

1. 先把需求想清楚:长按开关机芯片到底在解决什么问题

1.1 必须先回答的三个问题

选型的第一步不是打开选型手册,而是把三个问题写清楚:怎么开、怎么关、关掉之后漏多少。这三个问题回答不了,后面看什么参数都是白看。

“怎么开”要细化到按键按多久算数、误触怎么防、开机后是否要立刻给出反馈(LED、蜂鸣器、屏幕点亮)。我见过不少项目,硬件工程师把长按时间定成 1 秒,结果产品装进外壳后用户一屁股坐上去就开机了,电池被放干。一般消费类产品的开机长按时间落在 1.5 秒到 3 秒之间,工业手持设备会拉长到 2 秒到 5 秒。

“怎么关”更麻烦,因为它涉及软件和硬件的握手。理想流程是:用户长按,芯片通知 MCU,MCU 保存参数、关闭外设、释放电源保持信号,芯片再切断总电源。但现实里 MCU 会死机、会跑飞、会卡在某个 while 循环里,所以必须有一条不经过 MCU 的强制断电通路,比如长按超过 8 秒到 10 秒,芯片自己把电断掉。这条通路的代价是硬件复杂度上升,但它是产品能不能“救回来”的关键。

“关掉之后漏多少”是最容易翻车的一项。很多项目原理图看着没问题,关机后一测还有 300µA,电池放两周就空。原因通常不是芯片本身,而是常电支路没断干净:电量检测分压电阻、按键上拉、指示灯限流电阻、充电检测回路。

1.2 典型应用场景与需求差异

不同产品对长按开关机芯片的要求差别很大,我把常见场景整理成一张表,选型前先对号入座。

应用场景供电形式待机目标关键诉求
TWS 充电仓、蓝牙音箱单节锂电 3.0~4.2V数月静态电流极低、误触防止、开机反馈
手持仪器、扫码枪锂电或两节干电池数月到一年强制关机、掉电保存、宽温
智能门锁、门磁锂电或碱性电池组一年以上微安级待机、可靠唤醒、成本严控
电动工具、电子烟单节高倍率锂电数周到数月大电流通路、MOS 驱动能力、瞬时抗抖动
小家电(破壁机、加湿器)适配器或锂电出货期待机成本优先、结构简单、量产一致性

这张表里最值得注意的一行是智能门锁这一类。锁体常年不插电,一次换电池要撑一年以上,任何一颗 10µA 的器件都是不可接受的,选型逻辑跟蓝牙音箱完全不是一套。反过来,小家电这类插着适配器的产品,静态电流根本不敏感,选型就可以向成本和供货倾斜。

1.3 一个常见误区:以为“长按 2 秒”是芯片一个人干的活

很多人以为只要选了一颗支持长按的芯片,长按时间就定了,剩下不用管。实际上长按时间的实现方式有三种,效果和一致性完全不同。

第一种是芯片内部固定死了,出厂就是 2 秒,好处是外围元件少、批次一致性好,坏处是改不了,用户抱怨太灵敏或者太迟钝时只能换型号。第二种是外部电容可调,芯片内部用一个恒流源给电容充电,充到阈值就认为长按成立,这种最灵活,但电容的容差和温漂会直接影响时间精度。第三种是芯片只负责消抖和电平搬移,长按判定完全交给 MCU 做,好处是阈值可以软件随时改,坏处是一旦 MCU 死机,关机通路也跟着死了,必须额外做硬件兜底。

我个人的习惯是:长按判定放在芯片里,短按和功能键判定放在 MCU 里。这样关机通路不依赖软件,同时按键还能复用出短按、双击等功能,用户体验和可靠性都能兼顾。

2. 四条技术路线对比:分立、专用芯片、MCU 自管、电源管理集成

2.1 分立方案:便宜,但很容易在待机上翻车

分立方案就是用按键加 RC 网络加 MOS 管,再加几个二极管和三极管搭出一个自锁电路。它的优点是物料便宜、没有交期风险、想改就改。我在成本压到极致的项目上用过,比如某些一次性消耗类的小电子玩具。

但它有两个绕不过去的坑。第一是自锁电路的保持能力依赖电阻分压,为了降低静态电流就得把电阻往上加,一加到兆欧级,电路就变得非常容易被干扰触发,湿度、灰尘、静电都可能让它误开机。第二是它没法跟 MCU 握手,MCU 想关机只能靠切断自己的供电,一旦 MCU 卡死,用户长按也关不掉,只能抠电池,这在带锂电池的产品上是不可接受的。

还有个更隐蔽的问题:分立方案关机后,如果 MOS 选型不当,输出侧的电容量会通过体二极管形成漏电通路,实测经常出现关机后仍有几十到几百微安的情况。所以分立方案不是不能用,而是必须预留足够的时间做验证,尤其是做温度和湿度循环之后再测待机电流。

2.2 专用长按开关机芯片:主流通路与它的能力边界

专用芯片是目前最常用的方案。业内常见的器件家族包括带按键接口的电源开关控制器(典型如 LTC2950/LTC2951/LTC2954 系列)、带智能复位功能的按键控制器(如 STM6600/STM6601 系列)、按键开关控制器(如 MAX16054 一类),以及一系列推挽/开漏输出的按键定时控制器。国内也有不少厂商在做同类器件,型号迭代很快,具体参数一定要以当批次的规格书为准。

这类芯片的共性能力是:按键输入带消抖、内部有定时逻辑、输出一路或两路控制信号去驱动 DC-DC 的使能或者外部 MOS、通常还提供一路给 MCU 的中断或状态输出。用好它的关键,是搞清楚它输出的是“电源开关”还是“使能信号”

如果芯片输出直接驱动高边 PMOS,那么它管的是整机总电流,MOS 必须扛得住峰值电流,走线和散热都要按大电流设计。如果芯片只是输出一个使能电平给 DC-DC,那么总电流走 DC-DC,MOS 的负担小很多,但代价是 DC-DC 的静态电流会叠加进来。我一般会先算 DC-DC 的静态电流能不能接受,再决定走哪条路。

2.3 MCU 自管与电源管理集成:什么时候更划算

MCU 自管的意思是:按键直接进 MCU 的 IO,MCU 自己判断长按、自己控制一个保持 MOS 来维持供电。这种做法的好处是省一颗芯片、逻辑全在软件里,改起来快。适合本来就有低功耗休眠外设、并且对成本极度敏感的产品。

它的代价是系统必须设计成“MCU 永远有一路常电”,休眠电流再低也是叠加项。而且前文说过的死机风险必须用独立看门狗加硬件强制断电兜底,算下来未必比专用芯片省。

电源管理集成(PMIC)则是把按键控制、充电管理、多路电源输出、电量计集成在一颗芯片里,通常带专门的按键引脚,还能做短按唤醒、长按关机、超长按复位。这条路适合功能复杂的产品,比如带屏幕和无线通信的手持设备。它的好处是系统级优化做得好,待机电流和上电时序都已经调过;坏处是灵活性差、单价高、换料周期长。

路线物料成本静态电流关机可靠性改动灵活性适合场景
分立方案最低较差成本极致敏感、无锂电
专用芯片大多数单键便携产品
MCU 自管取决于 MCU需额外兜底最高有低功耗休眠的简单产品
PMIC 集成最高很好很好多电源域复杂设备

3. 参数一与参数二:工作电压、静态电流与长按时间设定

3.1 电压范围要覆盖电池的完整生命周期

第一个参数是工作电压范围。这一项看起来最简单,实际最容易选错,因为很多人只盯着电池的标称电压。

单节锂电的典型电压是 3.7V,但实际工作区间是 3.0V 到 4.2V,如果系统允许放到 2.8V 再保护,那下限还得往下压。更关键的是低压段:电池快没电时电压跌到 3.0V 甚至更低,如果芯片的最低工作电压是 3.2V,那用户会遇到“电池还有电但开不了机”的诡异现象,售后解释起来非常痛苦。

上限同样要注意。带充电功能的产品,USB 插拔瞬间或者充电管理芯片切换时,电源轨上可能有短时过冲,如果芯片的绝对最大额定电压只是勉强高于 4.2V,就很容易被这批过冲打坏。我一般的做法是要求芯片的推荐工作范围覆盖 2.5V 到 5.5V,绝对最大额定值至少留到 6V 以上,这样既兼容单节锂电,也兼容两节干电池或者 5V 适配器供电的变种型号。

还有一个细节容易被忽略:按键输入端的电压范围。如果按键是直接接电池正极这一侧(高边按键),那么按键引脚在按下时会承受接近电池电压的电平;如果按键是接地的低边形式,就没这个问题。这两种接法对芯片输入耐压的要求完全不同,看规格书时要对清楚。

3.2 静态电流的账必须自己算一遍

第二个参数是静态电流,也就是芯片自身在待机状态下的消耗。这是决定产品能不能长期存放的核心指标,但它的正确用法不是“越小越好”,而是“先算预算,再挑器件”。

我常用的算法是这样的:先确定电池容量和目标待机时间,算出允许的平均总电流,再留 30% 到 50% 的余量,然后把系统里所有常电支路列出来分配。

举个具体的例子。一个手持设备用 500mAh 电池,目标是充满电存放 90 天不掉到关机阈值。

允许的平均电流 = 500mAh ÷ (90 × 24h) ≈ 231µA。

留 30% 余量之后,设计目标定在 160µA 以内。把常电支路拆开:DC-DC 静态 25µA、MCU 深度休眠 15µA、传感器待机 20µA、电池电压检测分压 10µA,留给按键控制部分的预算还有大约 90µA。这时哪怕选一颗几十微安的器件也够用。

但如果换成智能门锁的场景,电池 2000mAh,目标待机 400 天:

允许平均电流 = 2000mAh ÷ (400 × 24h) ≈ 208µA。

看着好像也不小,但门锁还要给无线模块、指纹模块留余量,实际上分给电源管理部分的预算往往压到 10µA 以内。这时候选型逻辑就完全变了:必须找静态电流在微安甚至亚微安级别的器件,而且所有上拉电阻都要重新算

这一点我特别想强调:上拉电阻才是隐藏的耗电大户。3.3V 电压下用 100kΩ 上拉,如果这条支路常带电,就是 33µA;用 10kΩ 就是 330µA,比芯片本身高一个数量级。我在一个项目上就吃过这个亏,芯片静态电流只有 2µA,结果一测整机待机 180µA,最后查出来是按键状态检测用了 10kΩ 上拉。后来改成 1MΩ 上拉加 100nF 滤波,同时把这条支路挪到开关之后,问题才解决。

提示:算静态电流时不要只看芯片规格书的典型值,要按最大值算,并且把上拉、分压、LED 限流全部列进去。规格书上的“典型”是常温标称条件下的数字,高温下可能翻几倍。

3.3 长按时间怎么定:固定值与电容可调的取舍

长按时间的实现原理,我习惯用一个模型来理解:芯片内部有一个恒流源,按键按下时开始给外接电容充电,当电容电压达到内部阈值时,判定长按成立。用公式写就是:

t = C × Vth ÷ Ichg

其中 C 是外接电容,Vth 是内部比较阈值,Ichg 是充电电流。假设某器件内部用 1µA 恒流源充电,阈值 1.2V,那么 t = C × 1.2V ÷ 1µA = C × 1.2 s/µF。要 2 秒就取 1.67µF,实际取标称值 1.5µF 或 2.2µF,再用示波器实测微调。

这个推导的价值在于:你能预判改变电容会带来多大变化,而不是靠试。很多规格书会直接给一条时间-电容曲线或者一个经验系数,形式不同,本质一样。看手册时重点确认三件事:是否线性、系数有没有温度漂移说明、电容的推荐材质是什么。

关于电容选型,这里有一条很硬的经验:CT 电容一定用 C0G/NPO 或者薄膜电容,不要用 X7R。X7R 有很强的直流偏压效应和温度漂移,同样标称 1µF 的电容,加了偏压之后有效容量可能掉 30%,温度从 25°C 变到 85°C 再变一次,长按时间就直接漂到用户能感觉出来的程度。我实测过一颗 X7R 电容,室温下长按时间是 2.0 秒,放到 85°C 烘箱里变成 2.6 秒,换成 C0G 之后只差 0.05 秒。

如果芯片的长按时间是内部固定的,那就没得调,只能靠软件补偿或者换型号。这种情况选型时就要多打几个样品,让结构工程师和用户一起按一按,1.5 秒和 2.5 秒的手感差别是能明显感觉出来的。

4. 参数三与参数四:输出驱动拓扑与保护握手功能

4.1 输出能不能直接推 MOS,决定你的物料表

第三个参数是输出结构。这一项直接决定外围电路长什么样,所以在选型阶段就要看明白。

输出结构主要看四点:极性(高有效还是低有效)、类型(推挽还是开漏)、驱动能力(能灌/拉多少毫安)、是否集成开关管

推挽输出可以直接驱动 MOS 的栅极,上升沿干净,不需要外部上拉;开漏输出必须配一个上拉电阻才能给出高电平,而这个上拉电阻在关机状态下如果还挂在常电上,就又是一笔静态电流,所以要挂在开关之后的电源域。

驱动能力这一项,决定你选什么栅极电荷的 MOS。粗略估算开关时间是:

t_sw ≈ Qg ÷ I_drive

假设 MOS 的栅极电荷 Qg 是 10nC,芯片输出驱动能力是 1mA,那么开关时间大约是 10µs,对于按键开关这种慢速应用完全够用。但如果选了一颗 Qg 达到 100nC 的大电流 MOS,驱动能力还是 1mA,开关时间就变成 100µs,虽然还能用,但开通瞬间的线性区工作时间变长,MOS 发热会明显增加。所以大电流产品要么选驱动能力强的芯片,要么选低栅极电荷的 MOS。

有些器件把开关管直接集成在内部,省掉了外部 MOS 和栅极电阻。这种方案物料表最干净,但要注意它的导通电阻和最大电流是否满足你的负载峰值。集成方案一般适合 1A 以内的负载,超过之后散热和压降都很难处理。

4.2 单颗 MOS 不够用:体二极管倒灌这件事

很多人第一次做电源开关时会想:不就是一颗 PMOS 串在电源正极上,栅极拉低导通、拉高关断吗?原理没错,但实际电路里单颗 MOS 会有一个致命问题——体二极管

MOS 管的源漏之间天然存在一个寄生二极管。当 MOS 关断时,如果输出侧存在比输入侧更高的电压(比如系统同时接了 USB 供电,或者输出侧有大电容还在放电),电流会通过这个体二极管倒灌回输入端,也就是“关不断”。表现就是关机后系统还有残压,MCU 可能半死不活地跑,指示灯微亮,待机电流远超预期。

解决办法是用两颗 MOS 背靠背串联,让它们的体二极管方向相反,这样无论哪一侧电压更高,都有一条被阻断的路径。具体接法有两种:源极对源极共栅,或者漏极对漏极共栅。共栅的好处是一个驱动信号能同时控制两颗管子。

代价也明显:导通电阻翻倍,占板面积翻倍,成本上升。所以到底要不要背靠背,取决于系统是否存在第二电源或者输出侧是否有独立储能。如果产品只有一个电池、没有任何外部供电接口,单颗 MOS 通常够用;只要带 USB 口或者充电接口,我建议一律做背靠背,避免后期返工。

注意:判断要不要背靠背,可以做个简单测试——关机之后,用万用表量输出侧对地的电压,如果缓慢下降但不归零、或者能测到零点几伏的残压,基本就是体二极管在漏。

4.3 强制关机、复位、看门狗:什么时候必须要有

第四个参数是保护与系统握手功能,这一项经常被忽略,但它决定产品的“救活能力”。

强制关机是最重要的一个。逻辑是:如果用户长按超过一个更长的阈值(常见是 6 秒到 10 秒),芯片不再等 MCU 的回应,直接把电源切断。这条通路完全不依赖软件,所以 MCU 死机、程序跑飞、外设挂死,用户都能靠它把机器关掉再重启。

复位输出用于给 MCU 提供上电复位信号,或者在上电后给一个固定宽度的复位脉冲,保证 MCU 从确定的状态启动。如果芯片带复位功能,就可以省掉一颗独立的复位芯片,物料表和板面积都能优化。

**欠压锁定(UVLO)**在锂电产品上几乎是必须的。它的作用是电池电压低于某个阈值时禁止开机,防止电池过放到损坏。但要注意 UVLO 阈值和电池保护板的过放阈值之间的配合,如果 UVLO 设得比保护板还低,保护板会先动作,用户看到的现象就是“按了没反应”,和芯片坏了很难区分。

看门狗和状态输出则用于软件层面的握手。芯片给 MCU 一路信号表示“按键被按下了”,MCU 收到后可以做短按功能、做关机前保存,也可以反过来给芯片一个“我活着”的信号,如果 MCU 长时间没回应,芯片主动断电。这一套配合做下来,整个电源系统的健壮性会有质的提升。

5. 参数五:接口电平、封装、温度与供货

5.1 逻辑电平匹配与 IO 复用

第五个参数是接口电平和封装,看着琐碎,但它是量产阶段最容易出问题的地方。

接口电平的核心是芯片输出电平和 MCU 的 IO 阈值是否匹配。如果 MCU 是 1.8V 逻辑,而芯片的输出高电平是 3.3V,短时间可能没事,长期看会通过 IO 的钳位二极管往 MCU 的电源域灌电流,轻则增加功耗,重则损坏 IO。反过来,如果芯片输出高电平只有 1.8V,而 MCU 是 3.3V 逻辑,就可能出现识别不到高电平的情况,表现为“按键有反应但 MCU 不动作”。

还有一种情况是两个电源域的时序问题。如果芯片常带电、MCU 后上电,那么芯片的输出信号会先于 MCU 的电源建立,这时如果 MCU 的 IO 处于高阻状态,信号可能通过 IO 结构形成寄生通路。稳妥的做法是在这条信号线上串一个小电阻(100Ω 到 1kΩ),既限流又能抑制振铃。

按键本身的复用也值得规划。一颗芯片通常只能输出“按键被按下”和“电源使能”两个信号,如果产品还需要短按切换模式、双击配网、三击恢复出厂,那就需要 MCU 参与按键判定。这时可以把按键信号同时接到芯片和 MCU 的 IO 上,芯片负责长按和强制关机,MCU 负责短按和组合键,两者互不干扰。前提是 MCU 的 IO 不能干扰芯片的按键检测,所以两边都要加隔离电阻。

5.2 封装、散热与贴片工艺

封装选择主要看两点:板子空间和散热需求。

常见封装从大到小有 MSOP、SOT-23-6、DFN、WLCSP。SOT-23-6 是最好焊、最适合小批量手工打样的,DFN 省面积但对钢网和回流焊曲线有要求,WLCSP 最小但基本只能靠工厂贴,返修很麻烦。做原型验证时我一般选 SOT-23 或 MSOP 的版本,量产再切到 DFN。

散热这一项取决于芯片是否集成了开关管。如果集成,而且负载电流在 500mA 以上,就要算一下功耗和结温。举例:导通电阻 100mΩ,电流 1A,功耗就是 100mW。SOT-23 封装的热阻大约在 200°C/W 量级,100mW 对应温升 20°C,常温下还能接受;但如果环境温度 60°C,结温就上到 80°C,接近很多器件的上限了。这时候要么选更低导通电阻的型号,要么改用外部 MOS 把热量分散出去。

5.3 成本与供货:别只看单价

成本核算时,很多人只比芯片单价,忽略了外围物料和验证成本。一颗便宜 0.3 元但需要外接两颗 MOS 加四个阻容的器件,综合下来可能比一颗贵 0.5 元但集成度高的器件更贵,而且板面积更大、贴片工序更多、量产不良率更高。

供货稳定性在中小批量产品上尤其重要。我一般会做两件事:一是确认这个型号有没有 pin-to-pin 兼容的替代品,二是把关键参数做成表格,一旦需要换料,能快速判断替代品是否满足。曾经有个项目因为主控芯片的按键控制型号断供,被迫换料,结果替代品的静态电流大了 20µA,待机指标差了半个月,好在提前做了参数对照表,只调整了软件里的关机阈值就补回来了。

核算项易被忽略的点建议做法
芯片单价只比单价不比外围按整机 BOM 对比
外围物料驱动电阻、MOS、电容列进选型对比表
板面积影响层数和尺寸评估是否能降一档板型
验证成本换料需重新测待机预留替代型号参数表
供货风险单一来源至少准备一个兼容方案

6. 完整实操:从原理图到固件时序

6.1 典型应用电路与关键物料选型

我把一个典型的长按开关机电路按功能拆成四块,方便对照设计。

第一块是供电与滤波。芯片的电源脚接电池正极(常电),旁边放 100nF 加 1µF 的退耦电容,尽量靠近引脚。如果电池线比较长,再并一个 10µF 到 22µF 的电解或者钽电容,抑制插拔和负载突变带来的跌落。

第二块是按键输入。按键一端接地,另一端接芯片的按键引脚,同时这颗引脚上接一个 1MΩ 上拉(如果芯片内部已有上拉就不需要)、一个 100nF 到 1µF 的滤波电容到地,再加一颗双向 TVS 或者 100Ω 串阻用于防静电。RC 时间常数建议在 1ms 到 10ms 之间:太小消抖不够,太大会影响长按判定的起点。

第三块是功率通路。如果是集成开关的芯片,直接接负载;如果是外驱 MOS,就用一颗低阈值 PMOS 做高边开关,栅极串 100Ω 电阻,栅源之间加 100kΩ 保持电阻,保证控制信号消失时 MOS 可靠关断。栅极电阻的作用是抑制栅极振铃,栅源电阻的作用是防止静电积累导致误导通。

第四块是给 MCU 的握手信号。一路是电源使能信号(也可以就是开关后的电源域),一路是按键状态输出。按键状态输出建议串 1kΩ 电阻并加 10nF 到地,做一次简单滤波,因为这条线会走到 MCU,靠近数字电路容易被打扰。

实操心得:调试阶段可以在功率 MOS 的输出端预留一个 0Ω 电阻的位置,方便把系统分成两段测电流。测整机待机电流时,把 0Ω 换成电流表,能直接读出关断后的漏电流,比后期割线方便得多。

6.2 上电与关机的固件握手流程

硬件设计好之后,必须把固件流程定下来,否则会出现“松手就断电”“关不彻底”这类问题。下面是我常用的握手逻辑,用伪代码写出来。

/* 长按开关机芯片与 MCU 的握手流程(伪代码,按实际引脚改名) */ #define PIN_HOLD /* MCU 输出的电源保持信号 */ #define PIN_KEY_STAT /* 芯片输出的按键状态信号 */ void System_Init(void) { /* 1. MCU 上电后第一件事:拉高保持信号,越快越好 */ HAL_GPIO_WritePin(PIN_HOLD, GPIO_PIN_SET); /* 建议 50ms 内完成,晚于芯片的保持超时窗口就会被断电 */ /* 2. 读取关机原因,判断是上电启动还是看门狗复位 */ Check_Reset_Cause(); /* 3. 初始化外设,此时总电源已经稳定 */ Periph_Init(); } void KEY_STAT_IRQHandler(void) { /* 芯片检测到按键动作后进入中断 */ uint16_t pressed_ms = Measure_Press_Width(); if (pressed_ms >= 50 && pressed_ms < 800) { /* 短按:功能切换,不涉及电源 */ Handle_Short_Press(); } else if (pressed_ms >= 800) { /* 长按:进入关机流程 */ Prepare_Shutdown(); } } void Prepare_Shutdown(void) { Save_Parameters(); /* 保存用户数据到非易失存储 */ Stop_All_Peripherals(); /* 关屏幕、断传感器、停射频 */ Delay_ms(50); /* 留出写 flash 的时间 */ HAL_GPIO_WritePin(PIN_HOLD, GPIO_PIN_RESET); /* 释放保持信号,芯片随后切断总电源 */ while (1) { /* 等待断电,不要在这里做任何耗时操作 */ } }

这段流程里有几个关键点值得单独说。

第一,上电后拉高保持信号的动作必须尽量靠前。芯片一般会在按键松开后等待一小段时间(常见是几百毫秒),如果 MCU 在这段时间内没把保持信号拉起来,芯片就认为系统没启动成功,直接把电断掉,用户看到的就是“松手就关机”。我的习惯是把拉高动作放在启动文件之后、外设初始化之前,通常在上电后 10ms 到 30ms 就能完成。

第二,保持信号这条线必须有一个下拉电阻。因为 MCU 刚上电时 IO 是高阻态,如果这条线上有残留电荷或者干扰,芯片可能误判成“系统已经就绪”。加一个 100kΩ 下拉,让信号在 MCU 接管之前保持明确的低电平,行为就确定了。

第三,关机流程里不要做耗时操作。有些同学在释放保持信号之后还要写日志、关文件系统,结果写到一半电源被切掉,数据损坏。正确顺序是先保存完再释放,释放之后只等断电。

6.3 Layout 与实测:几个必须注意的细节

Layout 阶段有几个位置容易出问题。

按键走线要尽量短,并且远离 DC-DC 的开关节点和射频天线。这条线是高阻输入,很容易耦合噪声,尤其是开关电源的振铃。如果板子空间实在避不开,就在按键引脚旁边加一个小电容到地,或者用屏蔽地包围这条走线。

CT 电容要靠近芯片,并且电容下方尽量不要走其他信号。这颗电容上充的是微安级电流,任何漏电通路都会影响时间精度。板子受潮或者助焊剂残留时,长按时间会明显变短,这是很典型的现场故障。

功率 MOS 和芯片的接地要分开走,最后在电池负极处单点汇合。功率电流在 PCB 上的压降如果串进了芯片的地,会让芯片的参考电平浮动,表现为按键判定不稳定。我做过的板子里,最夸张的一块是地线走得太细,1A 负载下芯片地电位抬高了 80mV,长按时间直接漂了 30%。

实测部分,我一定会测四组数据:常温开机长按时间、常温关机长按时间、关机后整机漏电流、以及高低温循环后的长按时间。前两组用示波器抓按键信号和电源使能信号的时序,第三组用高精度电流表,第四组放高低温箱各跑 24 小时。这四组数据出来,这颗芯片能不能用基本就有结论了。

7. 常见问题与排查速查表

7.1 开不了机和关不了机

长按完全没反应。先量电池电压和芯片电源脚电压,确认不是电池没电或者保护板动作。然后量按键两端的通断,确认按键本身没坏、接触电阻小于几欧姆。再量按键引脚的电压:按下时应该有一个明显的电平翻转,如果没有变化,重点查上拉电阻是否漏贴或者阻值选错。最后查 CT 电容,虚焊或者容值选错会导致长按时间变得极长,用户按两秒确实没反应。

松手就断电。这是最典型的问题,八成是 MCU 的保持信号没及时拉高。用示波器同时抓电源使能信号和保持信号,看保持信号上升沿和芯片的保持超时窗口之间的关系。如果确实是软件太慢,可以把拉高动作挪到启动代码的最前面,或者用硬件做一条快速通路——比如用一个 RC 网络在上电瞬间就把保持信号拉高,MCU 接管后再维持。

关机后自动重启。这种情况通常是保持信号没有真正释放,或者释放之后线上还有残压。检查释放信号的 IO 是否正确配置为输出低,有没有加上拉电阻,以及释放之后有没有其他信号给芯片的电源使能脚注入电流。还有一种可能:按键的机械结构在关机瞬间还有一次弹跳,被芯片当成了一次新的开机请求,这就要靠加大消抖时间来解决。

7.2 待机电流超标和按键误触发

关机后电流仍然偏大。排查顺序我一般是这样:先断开负载看电流是否降下来,判断问题在芯片侧还是负载侧;然后在关断的功率 MOS 输出端量电压,如果存在不归零的残压,就是体二极管倒灌,需要改背靠背;最后逐个断开常电支路(电量检测分压、指示灯、传感器供电)测电流,找出那条不肯断的支路。

按键误触发开机。先确认长按时间是不是太短,消费类产品我建议不要低于 1.5 秒。然后查按键的机械结构和外壳配合,很多时候是外壳装配后给按键一个预压力,导致按键处于半按下状态,加上温度变化或者轻微振动就满足了触发条件。这种问题的解法是结构上留足行程,而不是继续加长软件阈值。

长按时间在不同机器上不一致。同一批板子如果有明显差异,先查 CT 电容的品牌和批次,不同厂家甚至同一厂家不同批次的 X7R 容值差异都很大。如果所有板子都偏,但偏的方向一致,那可能是电容标称值选得不对,重新算一遍系数。还有一种情况是芯片本身批次差异,这种情况在规格书上通常有说明,只能通过软件补偿或者更换型号解决。

7.3 问题速查表

现象高概率原因快速验证方法处理方向
长按无反应电池欠压、按键接触不良量电池电压和按键通断换电池、换按键
长按时间明显变长CT 电容虚焊或容值偏大量 CT 引脚波形补焊、换标称值
松手就断电保持信号拉高太慢双通道抓保持信号与使能提前拉高、加硬件通路
关机后仍有残压MOS 体二极管倒灌量输出侧对地电压改背靠背 MOS
待机电流偏大常电支路未断、上拉电阻偏小逐条支路断开测电流挪到开关后、改大阻值
误触发开机长按时间过短、结构预压按压手感与外壳配合检查加长时间、改结构
关机后自动重启保持信号未真正释放抓释放时序改 IO 配置、加下拉
高低温后时间漂移CT 用 X7R 电容高低温箱跑 24 小时换 C0G 或薄膜电容
长按时间批次差异大电容容差、芯片批次抽样测 10 片收窄容差、软件补偿

8. 我在这类项目上踩过的坑

第一个坑是太相信规格书的典型值。有个项目选了一颗标称静态电流 1µA 的器件,样品阶段测出来整机待机确实很漂亮,量产后有 5% 的板子待机电流超标三倍。后来发现是芯片在电池电压接近 3.0V 时静态电流会明显上升,而规格书给的是 3.6V 条件下的数字。从那之后我测待机电流一定会在 3.0V、3.6V、4.2V 三个电压点各测一遍,只报一个数字的供应商我都不太敢信。

第二个坑是省掉了背靠背 MOS。那是个带 USB 充电口的小设备,我当时觉得充电时系统是关机的,应该不会倒灌,结果用户插着充电器按开机,一切正常;拔掉充电器之后关机,整机还有 200µA 的电流。查了两天才定位到体二极管,因为 USB 端口在关机状态下和输出侧共地,形成了回路。补上第二颗 MOS 之后漏电流降到 3µA 以下。这块板子后来改了三个版本,所以现在只要带外部接口的产品,我都直接按背靠背设计。

第三个坑是 CT 电容用了手边现成的 X7R。小批量试产的时候一切正常,用户反馈也还好,结果到了冬天,北方客户的机器长按时间从 2 秒变成了 2.8 秒,用户觉得“按半天没反应”。换成 C0G 之后,全温度范围的时间偏差控制在 5% 以内。这颗电容单价差了不到一分钱,但省下的是售后成本。

如果这几个参数只能记住一句话,我的建议是:先把待机电流的预算算出来,再倒推芯片和外围的选型。电压范围、长按时间、输出结构、保护功能、封装供货,这些都是在预算框架下做取舍。很多时候不是芯片选错了,而是上拉电阻、分压电阻、没断的常电支路把一颗好芯片拖累了。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询