唤醒源及唤醒原因

唤醒源

在不同低功耗模式下,可用于唤醒系统的唤醒源如下表所示:

唤醒源

Sleep CG

Sleep PG

Deep-Sleep

限制

WLAN

X

BT

X

IPC

X

仅 KM0 可通过 IPC 唤醒 KM4

Basic Timer4~7

X

PMC Timer

X

仅内部使用

UART0~2

X

当使用 UART 作为唤醒源时:

  • Rx 的时钟源只能是 OSC2M,且在睡眠期间禁止关闭 OSC4M

  • 当波特率大于 115200bps 时,不建议使用 UART 作为唤醒源

  • 当唤醒指令超过 64 字节 FIFO 深度时,超出的部分会丢失

LOGUART

X

当使用 LOGUART 作为唤醒源时:

  • 如果 Rx 的时钟源是 XTAL40M,在睡眠期间禁止关闭 XTAL 或 OSC4M

  • 如果 Rx 的时钟源是 OSC2M,在睡眠期间禁止关闭 OSC4M

  • 当唤醒指令超过 16 字节 FIFO 深度时,超出的部分会丢失

GPIO

X

I2C

X

CAP_TOUCH

X

ADC

X

SDIO

X

Key-Scan

X

BOR

PWR_DOWN

AON_TIMER

AON_WAKEPIN

RTC

唤醒原因 API

备注

唤醒时,相应的外设中断会被触发;清除中断时,唤醒原因中的对应位也会被清除。因此,在中断被清除之后,将无法获得唤醒原因。

SOCPS_AONWakeReason

项目

描述

功能

获取从深睡眠唤醒的原因

参数

返回值

  • Bit[0]: CHIP_EN 短按

  • Bit[1]: CHIP_EN 长按

  • Bit[2]: 掉电复位

  • Bit[3]: AON 定时器

  • Bit[5:4]: AON GPIO

  • Bit[8]: RTC

WAK_STATUS0

以下寄存器可用于获取唤醒原因。

寄存器

参数

WAK_STATUS0

  • Bit[1:0]: WLAN

  • Bit[2]: KM4_WAKE

  • Bit[3]: BT_WAKE_HOST

  • Bit[4]: IPC_KM4

  • Bit[9:6]: Basic TIMER4~7

  • Bit[11:10]: PMC TIMER0~1

  • Bit[14:12]: UART0~2

  • Bit[15]: UART_LOG

  • Bit[16]: GPIOA

  • Bit[17]: GPIOB

  • Bit[19:18]:I2C0~1

  • Bit[20]: Cap-Touch

  • Bit[21]: RTC

  • Bit[22]: ADC

  • Bit[24]: BOR

  • Bit[25]: PWR_DOWN

  • Bit[26]: Key-Scan

  • Bit[27]: AON_Timer

  • Bit[28]: AON_Wakepin

  • Bit[29]: SDIO