简介
在国产 BLE 物联网芯片赛道,杰理 AW31N 凭借不错的成本优势、BLE5.4 协议栈、丰富外设与超低功耗能力,被大量用在蓝牙遥控器、HID 设备、传感器透传模组这类消费类硬件产品上。它内置 160MHz 内核、ADC、PWM、IR 红外、SPI/I2C 等外设,这些外设功能和MCU基本一样,就相当于MCU+蓝牙二合一,而且成本不贵,适合消费电子成本比较敏感的产品。
但实际上手开发就会发现,这颗芯片并没有像MCU开发那样一帆风顺,SDK 是闭源库为主,公开文档偏少,很多实操细节只能靠踩坑摸索。
今天就结合实际项目调试经历,把开发过程中遇到的卡点问题做一下复盘总结,从硬件角度如何去分析问题,希望能够帮正在做 AW31N项目的朋友少走弯路。
一、使用场景描述
我们用 AW31N开发的一款产品,应用场景为当设备充电或放电的时候会自动唤醒,或者按下按键也会唤醒,唤醒是有一个中断信号INT输出给AW31N,AW31N检测到中断INT输入,状态从休眠转换为工作状态,中断INT唤醒信号是上升沿唤醒。

一、问题描述?
设备正常充电或放电的过程中,突然偶发一次AW313N没有唤醒,此时按几下按键就又唤醒了,很奇怪,这个情况很难复现。
这个问题很难复现,要一直使用2-3天才会复现1次,之后又会很难复现。
从这个问题表象来看,INT唤醒属于外部中断,我们首先会想到是硬件问题,因为按照正常的理解,软件配置好中断之后,唤醒就是纯硬件的了,于是我们增加了样机数量开始测试......
二、硬件分析
遇到问题不可怕,怕的时候问题难以复现,问题难以复现就很难找到规律,找不到规律就不好往下进展。
终于,功夫不负有心人,经过持续不懈的努力测试,复现到了问题。
于是,我们保持当前环境不变,去测量信号,根据以往经验,遇到任何硬件的问题,第一步先去测量LDO输出是否OK,测试一下3.3V,此时LDO电压是没问题的。

第二步,测量INT信号是否是高电平,于是我们挂上了示波器,可以看到INT一直保持稳定的高电平,但是在问题出现的那一刻INT的信号不得而知,这是最关键的问题所在。

第三步,我们试了多按了几下按键,AW313N还真就唤醒了,我们从信号也能看得出来,如下图:

三、总结
目前从硬件角度看,很难定性问题,因为问题出现那一刻的INT信号没有捕捉到,我们也尝试挂了示波器监控LDO、INT信号,测试了一天也没复现,问题分析到这一步卡住了,很难往下走。
我们只能另辟蹊径,从软件角度尝试去分析一波......
未完待续。