双按键开关机控制芯片的防误触设计笔记
昨晚调按键逻辑又翻车,把长按当成了短按来处理,按一下直接关机,对着逻辑分析仪查了一个多小时。
这次用的是一颗ES599双按键开关机控制芯片,两条按键各走各的状态机,很适合拿来做防误触设计。把它的逻辑拆开看,收获比预想的多。

【两条按键,两套时序】
KEY1和KEY2都是低触发,轻触按键一端接地、一端接输入。芯片上电不工作,这是第一层保险,装电池或插USB都不会自己跑起来。KEY1长按1秒开机,四路输出跟着翻转,三路OUTL出低电平、一路OUTH出高电平;开机之后KEY1短按一次就关机。KEY2则是长按3秒开机,关机同样要长按3秒。
【为什么做成双按键】
单键方案通常一个按键同时扛开关机,短按关还是长按关只能二选一,防误触和操作便捷天生打架。双按键等于把两种使用习惯拆开:KEY1短按关机,适合天天用、随手关的设备;KEY2长按3秒才关机,适合放包里、挂身上怕误触的设备。
做产品定义的时候,先想清楚用户是按一下就走,还是要防熊孩子、防宠物乱按,再决定用哪条逻辑。儿童闹钟、宠物挂件这类场景走KEY2明显更稳,遥控手柄这类高频操作走KEY1更顺手。
【自己写状态机容易踩的坑】
如果不用这颗料,想拿MCU复刻这套逻辑,有几个细节容易翻车。
消抖窗口和长按计时不能共用一套逻辑。抖动还没滤完就开始计时,长按时长的判定必然漂,示波器上看就是时灵时不灵。
"到点触发"还是"抬手触发"必须定死。到点就触发的话,用户按住不松会连续翻转输出,通常要加锁存;抬手才判定,就必须保证按下时长跨过阈值才有效,中间松手全部清零。
长按路径和短按路径要互斥。我昨晚就栽在这:短按判断抢先执行,把长按开机流程整个顶掉了。按下期间应该先累计时长,超阈值走长按分支,没超阈值等抬手再走短按分支,两条路径不能同时生效。
【电气边界】
供电范围DC2.2-5.0V,低电平输出和高电平输出的驱动能力都能到220mA,超过这个数要外挂MOS扩流,不能硬扛大负载。静态电流和工作电流都是2uA,电池设备放很久也扛得住。
工作温度-10+70℃,普通消费电子产品够用,工业现场或户外极端环境要单独评估;储存温度-20+125℃只是存放条件,不代表这个温度区间里能正常通电工作。
【封装和布局】
超薄DFN开关机芯片这类料基本走DFN-8L无引脚封装,高度和占板面积都比SOP-8小一大截,很对厚度敏感的产品胃口。焊盘全在底面,第9脚底部大焊盘悬空,不接地,layout时别在底下铺接地铜皮。输入退耦电容尽量贴着芯片放,走线短一点;按键走线避免长距离平行,防止干扰误触发。
【什么时候该用专用料】
原来的分立MOS加RC方案,省的是芯片钱,费的是面积、工时和待机功耗。一键开关机芯片把这些成本收回去,对有一定量的产品反而更划算,这也是替代分立器件开关机方案能站住脚的原因。双按键开关机控制芯片把状态机固化在硬件里,按键和负载接对就能跑,不占MCU资源,调试周期明显缩短。
如果你手头的时序比较非标,比如想把开机时间改成1.5秒,或者要多加一路状态指示,这类芯片一般都能按功能要求重新开一版程序来适配,比自己在MCU里堆状态码省心。

浙公网安备 33010602011771号