低功耗下唤醒触发机制*
PMU_CTRL 是 电源管理单元的控制模块,用于控制PMU、MUC的整体工作,软件可以通过操作PMU_CTRL 模块对 MCU 进行一系列操作,包括时钟控制、电源控制、复位控制等。PMU_CTRL在系统中的位置如下:
-
支持以下唤醒方式
-
GPIO 中断唤醒
-
RTC 中断唤醒
-
AUDIO_IN 中断唤醒
-
HW_I2C 中断唤醒
由于应用中,更经常使用的是 GPIO 唤醒,比如遥控器产品,按键唤醒动作。
下面针对这个场景进行简单说明。
LvpPmuSuspend(LRT_GPIO | LRT_AUDIO_IN | LRT_I2C);
int LvpPmuSuspend(int type) 这个API接口,是设置8002进入低功耗后,可以通过什么方式被唤醒。如果只想保留GPIO唤醒,那么如下使用即可:
LvpPmuSuspend(LRT_GPIO);
8002任何一个管脚,配置为GPIO的话,即可支持低功耗唤醒。但是使用的时候,务必要配置为中断的方式。代码示例如下:
padmux_set(3, 1); // 设置GPIO03作为GPIO模式
// GPIO03上升沿出发中断,带参数出发中断
gx_gpio_enable_trigger(3, GX_GPIO_TRIGGER_EDGE_RISING, NULL, NULL);