上周排查一台扫地机现场日志停在进入配网模式那一行再没动过机器灯常亮、按键失灵只能拔电池。这种就是典型的MCU跑飞软件看门狗也没兜住。MCU跑飞常见几种。死循环卡在某个等待外设标志位的地方中断被关、调度器不转外设锁死比如I2C总线被从机拉住SCL主循环一直block固件bug触发HardFault后没写好兜底直接原地跳转乱跑。轻则功能假死重则外设持续动作烧东西。软件看门狗有盲区。喂狗依赖主循环正常跑可一旦中断被长时间关闭、或者死在不可屏蔽的异常里看门狗逻辑也处理不到低功耗休眠里看门狗没开唤醒逻辑出错照样跑飞。更麻烦的是有些死法会让喂狗代码本身执行不到看门狗等于摆设。硬件延时触发复位是兜底方案。这类延时触发复位芯片不依赖任何软件纯硬件计时。拿EY404-CF42F1举例板子卡死时用户长按Key 7秒这7秒内按键怎么抖都无效防误触满7秒Out1输出1秒高脉冲去复位主控的复位脚Out2同时输出1秒低脉冲。这个低脉冲可以拿去切断负载比如关掉卡死的电机驱动或者点亮一颗已复位指示灯。触发完自动回上电态不用人再操作。它和外部看门狗芯片是分工的。外部硬件看门狗仍然是第一道靠定时喂狗抓主循环卡顿延时触发复位芯片是最后一道专治看门狗都救不活的硬死机靠人手长按强制拉回。两者不冲突一块板子可以都留着。EY404-CF42F1工作电压2.2V~5.0V静态5uA封装SOT23-6外围一只104电容加轻触键做最后保险几乎不占成本。实际接线也简单。1脚Out1进主控复位脚注意是脉冲不是电平主控复位脚要能接受单脉冲触发3脚Key对地轻触键5脚VDD取系统电2脚GND。Out2视情况悬空或驱动指示灯。试产时我会在Out1串个10k上拉避免长走线引入干扰误触发。补充一个现场细节。那台扫地机最后定位是I2C从机死锁主循环卡在while等ACK看门狗因为喂狗函数在主循环里所以还在跑可它喂的是假狗系统已经不动了。这种靠喂狗救不了必须外部硬拉复位。延时触发还有个好处是过滤抖动。7秒窗口里用户不可能一直稳定按住中间松开就清零所以搬运、运输途中的偶发触碰不会误复位只有真有人长按才动作这点是软件方案很难等价实现的。我们后来在量产板都预留了这颗的位置。落地建议恢复出厂这种危险操作就该用长延时硬触发别图省事用短按组合键用户记不住还容易误触。把Out2接指示灯复位过程有视觉反馈售后也少挨骂。边界提醒两点。一是温度推荐-10~65℃工业现场别用。二是输出是1秒脉冲不是电平保持拿它做电源开关保持不合适那是另一类料号。另外大电流负载别直接挂Out2后级加MOS。复位这种保命功能宁可多留一道硬件保险别全押在固件上。要规格书或样片可向原厂索取也支持按功能要求重新定制开发程序时长、脉宽、极性可改。跑飞复盘时记得给板子留这么一道纯硬件的保险。
