资讯动态

低功耗 BLE 玄学 bug!杰理AW313A2 静置越久越容易死机

发布时间:2026/10/16 2:06:54 来源:尧图企业网站定制
简介杰理AW313A2是一个低功耗BLE芯片有蓝牙功能可以广播数据也可以连接通信进行数据交互单片机有的外设这颗BLE一般也有像IIC、USART、ADC、定时器、外部中断等等都有而且功耗比较低最小系统板测试低功耗下4uA左右。这里的应用场景主要是工作时通过蓝牙上报数据、采集其他模块的数据、控制个别模块的工作情况不工作的时候进入休眠状态。问题来了我们在产品测试的时候设备休眠一段时间之后就开不了机了蓝牙芯片无法唤醒奇怪的很。那么根据这个问题表象我们逐步去排查一下Let s go!一、复现问题寻找规律第一台出现这种问题的时候是静置一晚上没用第二天上班一开机就无法唤醒了后面陆续出现第二台机器再后来过了个五一假期批量出现。根据这些现象看有的是静置一晚上出现异常有的是静置两天但是静置5天之后批量出现就说明静置时间越长出现的概率越高。二、排查硬件电路遇到问题第一步先排查电源。检测LDO电源信号是OK波形如下图IIC信号也是OK的处于空闲状态波形如下图外部中断唤醒信号也是OK的用示波器也测了相对都很稳定基本上关联的信号都排查了一遍没发现异常的地方走到这一步没了思路。于是开始苦思冥想从头开始捋捋思路从软件维度看看。三、排查软件根据死机的设备查看串口打印的数据看不到搜索蓝牙也搜不到那基本证明BLE是完全没工作起来。排查到这一步看表象还不能断定是哪里的问题但是有一个时间节点就是之前的样机从来没出现最近才开始出现于是我根据软件版本修改履历确认下软件修改了哪里导致的异常。这一查还真是之前一批样机没出问题的和这一批出问题一对比就发现了问题点差异点在RTC的一个定义的全局变量使能上后来的样机都使能了既然跟使能有关那就是使能之后再唤醒的时候就出问题了导致唤醒失败于是出现了开不了机的情况。有了这个猜想顺着这个思路排查和RTC相关的。这个时候我找了两台样机打开了平台的log抓取分析看看一台RTC使能的的和一台不使能做下对比看看最后死机的时候打印的log有什么差异做了两天的测试终于抓去了Log数据如下图可以看到唤醒不了最后的打印PD I/O下拉的寄存器都是没有开的唤醒的寄存器也没有开就是在RTC初始化里面自动进入poweroff了还没跑到你的唤醒IO初始化那里所以就无法唤醒了。这个跟原厂沟通发现需要做一个初始化的配置唤醒口配置之后就不会有问题了而且唤醒口的配置必须要增加到RTC配置之前。如下图好了那我们就调一下程序再验证一遍通过寄存器数据来验证下。最后抓取的数据如下图这里就是自动唤醒进入poweroff通过寄存器数据看设置唤醒口是对的那基本就可以确定应该就是唤醒口设置的问题了。走到这一步问题终于搞清楚了也基本就解决了。四、总结通过以上分析可以看出这个应该不算一个很大的问题当然这是站在上帝视角来看待的对于当时的问题现象排查起来也是很难下手的。俗话说千里之堤毁于蚁穴我们遇到的问题往往也没那么复杂大多也都是一个容易疏忽的小问题造成的问题不可怕有问题就解决问题解决了问题才能有所成长如果始终遇不到问题那基本就到了职业瓶颈的时候了。最后祝各位遇到的所有问题都能解决并有所收获。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑