JL杰理AC696N系列芯片开发经验:芯片复位与唤醒源深度解析
简介
做低功耗产品,最头疼的就是两个问题:一是设备无缘无故重启了,找不到原因;二是睡眠之后唤不醒,或者误唤醒导致功耗居高不下。
JL杰理AC696N这个系列的芯片在蓝牙耳机、音箱、IoT设备里用得很多,它的复位和唤醒机制其实挺灵活的,但官方文档分散在各个模块里,新手容易漏配置。最近在AC696N开发板上调试低功耗方案,把复位源和唤醒IO这块理了一下,整理出来方便后面排查问题用。

芯片复位与唤醒源深度解析
在低功耗产品设计中,复位与唤醒机制至关重要。JL杰理AC696N芯片提供了丰富的复位源和灵活的唤醒IO配置。
- 唤醒源获取
- BR25(AC696,AC6082)接口添加
- u8 wkup_pnd = 0;
- u8 get_wakeup_pnd(void)
- {
- return wkup_pnd;
- }
- //返回值: 0x00 | BIT(x)//x唤醒的IO口编号
- SDK打印的复位源含义
AC695X 为例:
u8 power_reset_source_dump(void);

通过power_reset_source_dump()函数可以打印复位原因,包括:
- VDDIO POR(上电复位)
- VDDIO LVD(电压低于设定值复位)
- WDT(看门狗复位)
- VCM(VCOM复位)
- PPINR(长按Reset IO复位)
- SYS RESET(主系统复位P33)
- SOFT RESET(软件复位)
这些信息对于调试异常重启问题极具价值。
打印测试:


唤醒功能方面,AC696N支持注册多个IO口作为唤醒源。
开发者需要在板级文件中配置port_wakeup结构体,设置内部上下拉使能、唤醒边沿(上升沿/下降沿)以及具体的唤醒IO映射(如IO_PORTA_06)。
通过wakeup_param结构体将多个唤醒端口、sub唤醒和charge唤醒统一管理,实现灵活的低功耗唤醒策略。
唤醒IO设置
- 注册多个IO口唤醒
AC696N 注册多IO口做唤醒功能(BR23,BR25通用)


总结
复位原因打印这个功能挺实用的,设备异常重启的时候,上电第一时间调一下power_reset_source_dump(),基本能定位是看门狗咬的、电压不稳掉的,还是软件主动复位。唤醒配置这块,建议先在AC696N开发板上把单IO唤醒调通,确认边沿和上下拉配置没问题,再往里加多路唤醒。
另外注意一下,有些IO在睡眠状态下默认是复用的(比如UART、ADC),如果要当唤醒IO用,得先把复用功能关掉,否则可能唤不醒或者电流偏大。这些坑踩过一次之后,后面做低功耗项目就顺多了。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)