
简介在国产 BLE 物联网芯片赛道杰理 AW31N 凭借不错的成本优势、BLE5.4 协议栈、丰富外设与超低功耗能力被大量用在蓝牙遥控器、HID 设备、传感器透传模组这类消费类硬件产品上。它内置 160MHz 内核、ADC、PWM、IR 红外、SPI/I2C 等外设这些外设功能和MCU基本一样就相当于MCU蓝牙二合一而且成本不贵适合消费电子成本比较敏感的产品。但实际上手开发就会发现这颗芯片并没有像MCU开发那样一帆风顺SDK 是闭源库为主公开文档偏少很多实操细节只能靠踩坑摸索。今天就结合实际项目调试经历把开发过程中遇到的卡点问题做一下复盘总结从硬件角度如何去分析问题希望能够帮正在做 AW31N项目的朋友少走弯路。一、使用场景描述我们用 AW31N开发的一款产品应用场景为当设备充电或放电的时候会自动唤醒或者按下按键也会唤醒唤醒是有一个中断信号INT输出给AW31NAW31N检测到中断INT输入状态从休眠转换为工作状态中断INT唤醒信号是上升沿唤醒。二、问题描述设备正常充电或放电的过程中突然偶发一次AW313N没有唤醒此时按几下按键就又唤醒了很奇怪这个情况很难复现。这个问题很难复现要一直使用2-3天才会复现1次之后又会很难复现。从这个问题表象来看INT唤醒属于外部中断我们首先会想到是硬件问题因为按照正常的理解软件配置好中断之后唤醒就是纯硬件的了于是我们增加了样机数量开始测试......三、硬件分析遇到问题不可怕怕的时候问题难以复现问题难以复现就很难找到规律找不到规律就不好往下进展。终于功夫不负有心人经过持续不懈的努力测试复现到了问题。于是我们保持当前环境不变去测量信号根据以往经验遇到任何硬件的问题第一步先去测量LDO输出是否OK测试一下3.3V此时LDO电压是没问题的。第二步测量INT信号是否是高电平于是我们挂上了示波器可以看到INT一直保持稳定的高电平但是在问题出现的那一刻INT的信号不得而知这是最关键的问题所在。第三步我们试了多按了几下按键AW313N还真就唤醒了我们从信号也能看得出来如下图四、排查中断I/O口我们可以测量中断I/O口的电平对比看下休眠前后的电压是否正确。断开INT接上拉100K测量PA3休眠之后的电平内部休眠后下拉10K正常的测试结果应该是0.3V左右。飞线把INT引脚断开之后经过实测电压确实0.3V左右说明I/O口休眠之后的电平也是OK的。五、总结目前从硬件角度看很难定性问题因为问题出现那一刻的INT信号没有捕捉到我们也尝试挂了示波器监控LDO、INT信号测试了一天也没复现问题分析到这一步卡住了很难往下走。我们只能另辟蹊径从软件角度尝试去分析一波......未完待续。