ESP32 学习笔记(二十二)睡眠模式

ESP32 提供轻度睡眠和深度睡眠两种低功耗模式。轻度睡眠时,CPU 和大部分 RAM 时钟门控,而深度睡眠则断电 CPU 和大部分 RAM。唤醒源包括定时器、Touch pad、外部信号、ULP 协处理器等。在进入睡眠前,需配置唤醒源,并关闭 WiFi 和 BT。应用示例包括周期性唤醒以获取 NTP 时间。
摘要由CSDN通过智能技术生成

睡眠模式

概述

ESP32 有轻度睡眠(light sleep)和深度睡眠(deep sleep)两种省电模式。

在轻度睡眠模式下,数字外设,大多数 RAM 和 CPU 都是时钟门控的,电源电压会降低。从轻度睡眠退出后,外围设备和 CPU 恢复运行,其内部状态将得以保留。

在深度睡眠模式下,CPU,大多数 RAM 以及从 APB_CLK 提供时钟的所有数字外设都将断电。芯片中仍然可以通电的唯一部分是:RTC 控制器,RTC 外设(包括 ULP 协处理器)和 RTC 存储器(慢速和快速)。

可以使用多种唤醒源从深度和轻度睡眠模式唤醒。可以组合这些唤醒源,在这种情况下,当触发任何一个源时芯片将被唤醒。可以使用 esp_sleep_enable_X_wakeup API 启用唤醒源,并可以使用 esp_sleep_disable_wakeup_source() API 禁用唤醒源。下一节将详细介绍这些 API。在进入浅色或深度睡眠模式之前,可以随时配置唤醒源。

此外,应用程序可以使用 esp_sleep_pd_config() API 强制 RTC 外设和 RTC 存储器的特定掉电模式。

配置唤醒源后,应用程序可以使用 esp_light_sleep_start()esp_deep_sleep_start() API 进入睡眠模式。此时,将根据请求的唤醒源配置硬件,RTC 控制器将关闭 CPU 或数字外设的电源或关闭电源。

WiFi/BT 和睡眠模式

在深度睡眠和轻度睡眠模式下,无线外围设备断电。 在进入深度睡眠或轻度睡眠模式之前,应用程序必须调用适当的函数(esp_bluedroid_disable()esp_bt_controller_disable()esp_wifi_stop())禁用 WiFi 和 BT。 即使不调用这些功能,也不会在深度睡眠或轻度睡眠中保持 WiFi 和 BT 连接。

如果需要维护 WiFi 连接,请启用 WiFi 调制解调器睡眠(modem sleep),并启用自动轻度睡眠功能(请参阅电源管理 API)。这将允许系统在需要 WiFi 驱动程序时自动从睡眠中唤醒,从而保持与 AP 的连接。

唤醒源

定时器

RTC 控制器具有内置定时器,可用于在预定义的时间后唤醒芯片。时间以微秒精度指定,但实际分辨率取决于为 RTC SLOW_CLK 选择的时钟源。有关 RTC 时钟选项的详细信息,请参见“ESP32 技术参考手册”的“复位和时钟”一章。

此唤醒模式不需要在睡眠期间打开 RTC 外

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值