引言
在做杰理AC696N蓝牙音频开发的时候,除了Type-c直接5v供电,还有很多情况是做电池供电的;芯片上有VBAT脚位,有些客户开发的时候尝试了电池插在这个VBAT脚位上,发现一直复位重启。还遇到过开了电源使能检测,会一直复位重启,这又是什么原因?
分析:
首先可以排除电量使能检测的问题,开启这个宏是不会造成复位重启这种情况;客户后续又提成了把电池直接接在了VBAT这个脚,说明客户不是通过TYPE-C和USB供电;在用电池直接插在如下图位置
硬件排查:
正常插在5Vpower in上,5V power in通过VBAT_JUMP跳线帽为芯片供电,功耗测试时可以断开3.3V_JUMP,仅测量芯片自身的功耗,排除外设功耗干扰。所以如果直接插在VBAT_JUMP也是不会出现此问题;
软件排查:
通过串口打印可以看到是软件复位,“SOFT RESET”说明是代码的问题;在我们使用开发板自带程序时,如果要用到电池去供电,如下图需要屏蔽uart_test即可解决问题。
总结
复位问题先分“硬”与“软”,日志是破案关键;外设测试代码在非标准供电场景下可能成为隐患,开发阶段应做好条件编译或初始化保护。面对“电源使能”等宏定义,保持怀疑,用事实和数据说话,才能快速找到真因。