add low power doc and picture

Merges https://github.com/espressif/esp-idf/pull/9694
This commit is contained in:
wang tao 2022-09-01 19:42:12 +08:00 committed by BOT
parent b7b6c33a17
commit 366ae76812
51 changed files with 1807 additions and 0 deletions

BIN
docs/_static/Low-power-DFS-current.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

BIN
docs/_static/Low-power-DFS-process.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

BIN
docs/_static/Low-power-DTIM4.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

BIN
docs/_static/Low-power-modem-current.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

BIN
docs/_static/Low-power-modem-process.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

BIN
docs/_static/Low-power-time.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

View File

@ -0,0 +1 @@
.. include:: ../../../zh_CN/api-guides/sleep-current/esp32_light_sleep.inc

View File

@ -0,0 +1 @@
.. include:: ../../../zh_CN/api-guides/sleep-current/esp32_modem_sleep.inc

View File

@ -0,0 +1 @@
.. include:: ../../../zh_CN/api-guides/sleep-current/esp32_summary.inc

View File

@ -0,0 +1 @@
.. include:: ../../../zh_CN/api-guides/sleep-current/esp32c2_light_sleep.inc

View File

@ -0,0 +1 @@
.. include:: ../../../zh_CN/api-guides/sleep-current/esp32c2_modem_sleep.inc

View File

@ -0,0 +1 @@
.. include:: ../../../zh_CN/api-guides/sleep-current/esp32c2_summary.inc

View File

@ -0,0 +1 @@
.. include:: ../../../zh_CN/api-guides/sleep-current/esp32c3_light_sleep.inc

View File

@ -0,0 +1 @@
.. include:: ../../../zh_CN/api-guides/sleep-current/esp32c3_modem_sleep.inc

View File

@ -0,0 +1 @@
.. include:: ../../../zh_CN/api-guides/sleep-current/esp32c3_summary.inc

View File

@ -0,0 +1 @@
.. include:: ../../../zh_CN/api-guides/sleep-current/esp32c6_light_sleep.inc

View File

@ -0,0 +1 @@
.. include:: ../../../zh_CN/api-guides/sleep-current/esp32c6_modem_sleep.inc

View File

@ -0,0 +1 @@
.. include:: ../../../zh_CN/api-guides/sleep-current/esp32c6_summary.inc

View File

@ -0,0 +1 @@
.. include:: ../../../zh_CN/api-guides/sleep-current/esp32s2_light_sleep.inc

View File

@ -0,0 +1 @@
.. include:: ../../../zh_CN/api-guides/sleep-current/esp32s2_modem_sleep.inc

View File

@ -0,0 +1 @@
.. include:: ../../../zh_CN/api-guides/sleep-current/esp32s2_summary.inc

View File

@ -0,0 +1 @@
.. include:: ../../../zh_CN/api-guides/sleep-current/esp32s3_light_sleep.inc

View File

@ -0,0 +1 @@
.. include:: ../../../zh_CN/api-guides/sleep-current/esp32s3_modem_sleep.inc

View File

@ -0,0 +1 @@
.. include:: ../../../zh_CN/api-guides/sleep-current/esp32s3_summary.inc

View File

@ -0,0 +1,27 @@
.. list-table::
:header-rows: 1
:widths: 20 10 20 20 20
* - CPU frequency
- DTIM
- Average current(mA)
- Max current(mA)
- Min current(mA)
* - 160 MHz
- 1
- 3.34
- 129.36
- 1.35
* - 160 MHz
- 3
- 2.33
- 130.17
- 1.33
* - 160 MHz
- 10
- 2.19
- 129.87
- 1.32

View File

@ -0,0 +1,52 @@
.. list-table::
:header-rows: 1
:widths: 20 10 10 20 20 20
* - CPU frequency
- DFS
- DTIM
- Average current(mA)
- Max current(mA)
- Min current(mA)
* - 160 MHz
- ON
- 1
- 22.65
- 133.03
- 5.48
* - 160 MHz
- OFF
- 1
- 31.12
- 253.74
- 27.18
* - 160 MHz
- ON
- 3
- 21.89
- 247.68
- 5.25
* - 160 MHz
- OFF
- 3
- 28.81
- 209.42
- 27.77
* - 160 MHz
- ON
- 10
- 20.01
- 216.51
- 6.02
* - 160 MHz
- OFF
- 10
- 29.66
- 114.17
- 27.77

View File

@ -0,0 +1,69 @@
.. list-table::
:header-rows: 1
:widths: 20 20 30 20 20
* - 项目
- Modem Sleep
- Modem Sleep+DFS
- auto light Sleep
- Deep Sleep
* - 休眠
- 自动
- 自动
- 自动
- 手动
* - 唤醒
- 自动
- 自动
- 自动
- 配置唤醒源
* - Wi-Fi连接
- 保持
- 保持
- 保持
- 断开
* - CPU
-
- /降频
- 暂停
-
* - 系统时钟
-
-
-
-
* - 外设
-
-
-
-
* - DTIM1
- 31.12 mA
- 22.65 mA
- 3.34 mA
- /
* - DTIM3
- 28.81 mA
- 21.89 mA
- 2.33 mA
- /
* - DTIM10
- 29.66 mA
- 20.01 mA
- 2.19 mA
- /
* - 平均电流
- /
- /
- /
- 5 μA

View File

@ -0,0 +1,27 @@
.. list-table::
:header-rows: 1
:widths: 20 10 20 20 20
* - CPU frequency
- DTIM
- Average current(mA)
- Max current(mA)
- Min current(mA)
* - 120 MHz
- 1
- 1.6
- 67.8
- 0.12
* - 120 MHz
- 3
- 0.71
- 66.5
- 0.12
* - 120 MHz
- 10
- 0.39
- 64.8
- 0.12

View File

@ -0,0 +1,52 @@
.. list-table::
:header-rows: 1
:widths: 20 10 10 20 20 20
* - CPU frequency
- DFS
- DTIM
- Average current(mA)
- Max current(mA)
- Min current(mA)
* - 120 MHz
- ON
- 1
- 7.5
- 65.9
- 6.0
* - 120 MHz
- OFF
- 1
- 13.6
- 221.5
- 12.6
* - 120 MHz
- ON
- 3
- 6.9
- 65.4
- 6.0
* - 120 MHz
- OFF
- 3
- 13.0
- 220.2
- 12.6
* - 120 MHz
- ON
- 10
- 6.6
- 64.9
- 6.0
* - 120 MHz
- OFF
- 10
- 12.9
- 216.8
- 12.6

View File

@ -0,0 +1,69 @@
.. list-table::
:header-rows: 1
:widths: 20 20 30 20 20
* - 项目
- Modem Sleep
- Modem Sleep+DFS
- auto light Sleep
- Deep Sleep
* - 休眠
- 自动
- 自动
- 自动
- 手动
* - 唤醒
- 自动
- 自动
- 自动
- 配置唤醒源
* - Wi-Fi连接
- 保持
- 保持
- 保持
- 断开
* - CPU
-
- /降频
- 暂停
-
* - 系统时钟
-
-
-
-
* - 外设
-
-
-
-
* - DTIM1
- 13.6
- 7.5
- 1.6
- /
* - DTIM3
- 13.0
- 6.9
- 0.71
- /
* - DTIM10
- 12.9
- 6.6
- 0.39
- /
* - 平均电流
- /
- /
- /
- 4.9 μA

View File

@ -0,0 +1,27 @@
.. list-table::
:header-rows: 1
:widths: 20 10 20 20 20
* - CPU frequency
- DTIM
- Average current(mA)
- Max current(mA)
- Min current(mA)
* - 160 MHz
- 1
- 1.4
- 87.26
- 0.14
* - 160 MHz
- 3
- 0.62
- 86.33
- 0.14
* - 160 MHz
- 10
- 0.31
- 86.11
- 0.14

View File

@ -0,0 +1,52 @@
.. list-table::
:header-rows: 1
:widths: 20 10 10 20 20 20
* - CPU frequency
- DFS
- DTIM
- Average current(mA)
- Max current(mA)
- Min current(mA)
* - 160 MHz
- ON
- 1
- 11.35
- 83.31
- 5.03
* - 160 MHz
- OFF
- 1
- 21.47
- 191.53
- 20.58
* - 160 MHz
- ON
- 3
- 10.71
- 82.82
- 5.09
* - 160 MHz
- OFF
- 3
- 20.82
- 82.98
- 20.48
* - 160 MHz
- ON
- 10
- 10.32
- 81.05
- 5.74
* - 160 MHz
- OFF
- 10
- 20.67
- 229.83
- 20.48

View File

@ -0,0 +1,69 @@
.. list-table::
:header-rows: 1
:widths: 20 20 30 20 20
* - 项目
- Modem Sleep
- Modem Sleep+DFS
- auto light Sleep
- Deep Sleep
* - 休眠
- 自动
- 自动
- 自动
- 手动
* - 唤醒
- 自动
- 自动
- 自动
- 配置唤醒源
* - Wi-Fi连接
- 保持
- 保持
- 保持
- 断开
* - CPU
-
- /降频
- 暂停
-
* - 系统时钟
-
-
-
-
* - 外设
-
-
-
-
* - DTIM1
- 21.47 mA
- 11.35 mA
- 1.4 mA
- /
* - DTIM3
- 20.82 mA
- 10.71 mA
- 0.62 mA
- /
* - DTIM10
- 20.67 mA
- 10.32 mA
- 0.31 mA
- /
* - 平均电流
- /
- /
- /
- 4.8 μA

View File

@ -0,0 +1,27 @@
.. list-table::
:header-rows: 1
:widths: 20 10 20 20 20
* - CPU frequency
- DTIM
- Average current(mA)
- Max current(mA)
- Min current(mA)
* - 160 MHz
- 1
- /
- /
- /
* - 160 MHz
- 3
- /
- /
- /
* - 160 MHz
- 10
- /
- /
- /

View File

@ -0,0 +1,52 @@
.. list-table::
:header-rows: 1
:widths: 20 10 10 20 20 20
* - CPU frequency
- DFS
- DTIM
- Average current(mA)
- Max current(mA)
- Min current(mA)
* - 160 MHz
- ON
- 1
- /
- /
- /
* - 160 MHz
- OFF
- 1
- /
- /
- /
* - 160 MHz
- ON
- 3
- /
- /
- /
* - 160 MHz
- OFF
- 3
- /
- /
- /
* - 160 MHz
- ON
- 10
- /
- /
- /
* - 160 MHz
- OFF
- 10
- /
- /
- /

View File

@ -0,0 +1,69 @@
.. list-table::
:header-rows: 1
:widths: 20 20 30 20 20
* - 项目
- Modem Sleep
- Modem Sleep+DFS
- auto light Sleep
- Deep Sleep
* - 休眠
- 自动
- 自动
- 自动
- 手动
* - 唤醒
- 自动
- 自动
- 自动
- 配置唤醒源
* - Wi-Fi连接
- 保持
- 保持
- 保持
- 断开
* - CPU
-
- /降频
- 暂停
-
* - 系统时钟
-
-
-
-
* - 外设
-
-
-
-
* - DTIM1
- /
- /
- /
- /
* - DTIM3
- /
- /
- /
- /
* - DTIM10
- /
- /
- /
- /
* - 平均电流
- /
- /
- /
- /

View File

@ -0,0 +1,27 @@
.. list-table::
:header-rows: 1
:widths: 20 10 20 20 20
* - CPU frequency
- DTIM
- Average current(mA)
- Max current(mA)
- Min current(mA)
* - 160 MHz
- 1
- 2.48
- 94.88
- 0.96
* - 160 MHz
- 3
- 2.96
- 97.15
- 2.25
* - 160 MHz
- 10
- 2.69
- 98.66
- 2.25

View File

@ -0,0 +1,52 @@
.. list-table::
:header-rows: 1
:widths: 20 10 10 20 20 20
* - CPU frequency
- DFS
- DTIM
- Average current(mA)
- Max current(mA)
- Min current(mA)
* - 160 MHz
- ON
- 1
- 11.71
- 83.87
- 5.04
* - 160 MHz
- OFF
- 1
- 31.14
- 160.26
- 29.04
* - 160 MHz
- ON
- 3
- 12.4
- 84.85
- 10.0
* - 160 MHz
- OFF
- 3
- 29.06
- 178.67
- 28.25
* - 160 MHz
- ON
- 10
- 12.15
- 84.18
- 10.01
* - 160 MHz
- OFF
- 10
- 28.5
- 176.69
- 28.21

View File

@ -0,0 +1,69 @@
.. list-table::
:header-rows: 1
:widths: 20 20 30 20 20
* - 项目
- Modem Sleep
- Modem Sleep+DFS
- auto light Sleep
- Deep Sleep
* - 休眠
- 自动
- 自动
- 自动
- 手动
* - 唤醒
- 自动
- 自动
- 自动
- 配置唤醒源
* - Wi-Fi连接
- 保持
- 保持
- 保持
- 断开
* - CPU
-
- /降频
- 暂停
-
* - 系统时钟
-
-
-
-
* - 外设
-
-
-
-
* - DTIM1
- 31.14 mA
- 11.71 mA
- 2.48 mA
- /
* - DTIM3
- 29.06 mA
- 12.4 mA
- 2.96 mA
- /
* - DTIM10
- 28.5 mA
- 12.15 mA
- 2.69 mA
- /
* - 平均电流
- /
- /
- /
- 5 μA

View File

@ -0,0 +1,27 @@
.. list-table::
:header-rows: 1
:widths: 20 10 20 20 20
* - CPU frequency
- DTIM
- Average current(mA)
- Max current(mA)
- Min current(mA)
* - 160 MHz
- 1
- 2.45
- 120.21
- 0.28
* - 160 MHz
- 3
- 1.33
- 120.25
- 0.28
* - 160 MHz
- 10
- 0.93
- 120.04
- 0.28

View File

@ -0,0 +1,52 @@
.. list-table::
:header-rows: 1
:widths: 20 10 10 20 20 20
* - CPU frequency
- DFS
- DTIM
- Average current(mA)
- Max current(mA)
- Min current(mA)
* - 160 MHz
- ON
- 1
- 20.7
- 113.5
- 15.0
* - 160 MHz
- OFF
- 1
- 40.1
- 235.8
- 37.8
* - 160 MHz
- ON
- 3
- 19.9
- 113.4
- 15.0
* - 160 MHz
- OFF
- 3
- 38.7
- 267.2
- 37.9
* - 160 MHz
- ON
- 10
- 19.5
- 113.4
- 15.0
* - 160 MHz
- OFF
- 10
- 38.2
- 259.7
- 37.9

View File

@ -0,0 +1,69 @@
.. list-table::
:header-rows: 1
:widths: 20 20 30 20 20
* - 项目
- Modem Sleep
- Modem Sleep+DFS
- auto light Sleep
- Deep Sleep
* - 休眠
- 自动
- 自动
- 自动
- 手动
* - 唤醒
- 自动
- 自动
- 自动
- 配置唤醒源
* - Wi-Fi连接
- 保持
- 保持
- 保持
- 断开
* - CPU
-
- /降频
- 暂停
-
* - 系统时钟
-
-
-
-
* - 外设
-
-
-
-
* - DTIM1
- 40.1
- 20.7
- 2.45
- /
* - DTIM3
- 38.7
- 19.9
- 1.33
- /
* - DTIM10
- 38.2
- 19.5
- 0.93
- /
* - 平均电流
- /
- /
- /
- 6.8 μA

View File

@ -3641,6 +3641,906 @@ Wi-Fi AMPDU
通常,应使能 AMPDU。禁用 AMPDU 通常用于调试目的。
如何使用低功耗模式
-----------------------
对于物联网应用场景,终端的待机性能表现十分重要,本文档旨在介绍{IDF_TARGET_NAME}低功耗的基本原理,同时介绍{IDF_TARGET_NAME}支持的低功耗模式需注意本文档主要针对station mode。文档还会具体给出每种模式的配置步骤、推荐配置和功耗表现以帮助用户根据实际需求快速配置适合的低功耗模式。
纯系统下低功耗模式介绍
++++++++++++++++++++++++++++++++++
低功耗模式不仅涉及到系统相关问题还涉及到芯片具体的工作场景如处在Wi-Fi工作场景就会与处在蓝牙工作场景时产生不同。为此本节将首先介绍纯系统角度即不涉及具体场景的低功耗模式主要有DFS、light sleep、deep sleep。纯系统下的低功耗模式主要思想就是在休眠时关闭或门控一些功能模块来降低功耗。
DFS
++++++++++++++++++++++++++++++++++
**简介:**
DFS即动态频率切换属于ESP-IDF 中集成的电源管理机制的基础功能。DFS可以根据应用程序组件的需求调整外围总线 (APB) 频率和 CPU 频率尽可能减少运行应用程序的功耗。其核心思想是根据应用程序持有电源锁的情况来调整CPU和APB的工作频率持有高性能锁就使用高频空闲状态不持有电源锁时则使用低频来降低功耗。
**调频机制:**
具体调频机制查看ESP-IDF电源管理参考:doc:`电源管理 <../api-reference/system/power_management>` 可以看出调频机制基本可以概括为根据持有电源锁的最大频率需求来调整同时freertos tick rates的数值还会对DFS调频产生影响。 tick rates可以看作系统任务调度的灵敏度该数值越大意味着系统能更及时的根据需求调整频率。
**理想电流图:**
下图定性的展示DFS调频机制运行的理想电流情况方便用户理解。
.. figure:: ../../_static/Low-power-DFS-current.png
:align: center
理想DFS机制调频电流图
**应用场景:**
DFS适用于CPU必须处于工作状态但是对低功耗有需求的场景因此DFS经常与其他低功耗模式共同开启下文会详细介绍。
light sleep
++++++++++++++++++++++++++++++++++
**简介:**
light sleep模式是{IDF_TARGET_NAME} 预设的一种低功耗模式其核心思想就是在休眠时关闭或门控一些功能模块来降低功耗。从纯系统方面来说light sleep模式有两种进入方式一种是通过API调用进入休眠一种是自动进入的auto模式都需要配置唤醒源进行唤醒同时在进入休眠后会门控一些模块关闭一些模块。这里主要介绍 auto light sleep模式。
auto light sleep 模式是ESP-IDF电源管理机制和light sleep的结合。开启电源管理机制是其前置条件auto体现在系统进入IDLE状态空闲状态超过设定时间后自动进入light sleep。同时根据上文DFS的介绍进入IDLE空闲状态其实就释放了所有锁所以这里会有DFS降频减小功耗。
**休眠:**
auto light sleep 依赖于电源管理机制进入休眠的条件为系统处于IDLE状态的时间超过设定时间并且系统会提前判断空闲时间是否满足条件若满足直接休眠。该过程为自动进行。休眠时会自动关闭RF、 8 MHz 振荡器、40 MHz 高速晶振、PLL 门控数字内核时钟暂停CPU工作。
**唤醒:**
auto light sleep模式需配置唤醒源其拥有多种唤醒源这些唤醒源也可以组合在一起此时任何一个唤醒源都可以触发唤醒唤醒后会从进入休眠的位置继续执行程序。 若不配置唤醒源进入light sleep的休眠芯片将一直处在睡眠状态直到外部复位。具体唤醒源有RTC定时器、触摸传感器、外部唤醒ext0、外部唤醒 (ext1)、ULP 协处理器、SDIO、GPIO 、UART、WiFi、BT唤醒等。
**工作流程:**
auto light sleep 模式工作流程相对复杂,但是进入休眠状态是自动进行,同时需注意在进入前配置好唤醒源,防止一直处在休眠状态。
.. figure:: ../../_static/Low-power-auto-light-sleep-process.png
:align: center
auto light sleep模式工作流程图
**理想电流图:**
根据auto light sleep的工作流程可得其理想电流图关键节点均在图上标出。
.. figure:: ../../_static/Low-power-auto-light-sleep-current.png
:align: center
auto light sleep模式模式理想电流图
.. note::
其中为了体现auto light sleep的主要变化DFS降频过程被省略具体在上文已经详细介绍。
**应用场景:**
auto light sleep 模式适用于不需要实时响应外界需求的场景。
Deep sleep
++++++++++++++++++++++++++++++++++
**简介:**
Deep sleep模式是为了追求更好的功耗表现所设计休眠时仅保留RTC 控制器、RTC 外设可配置、ULP 协处理器、RTC 高速内存、RTC 低速内存其余模块全部关闭。与light sleep类似Deep sleep同样通过API进入且需要配置唤醒源进行唤醒。
**休眠:**
Deep sleep通过调用API进入休眠时会关闭除RTC 控制器、RTC 外设、ULP 协处理器、RTC 高速内存、RTC 低速内存外的所有模块。
**唤醒:**
Deep sleep 模式需配置唤醒源其拥有多种唤醒源这些唤醒源也可以组合在一起此时任何一个唤醒源都可以触发唤醒。若不配置唤醒源进入Deep sleep模式芯片将一直处在睡眠状态直到外部复位。具体唤醒源有RTC定时器、触摸传感器、外部唤醒ext0、外部唤醒 (ext1)、ULP 协处理器、GPIO唤醒等。
**工作流程:**
Deep sleep模式工作流程并不复杂具体如下图所示。
.. figure:: ../../_static/Low-power-deep-sleep-process.png
:align: center
Deep sleep模式工作流程图
**理想电流图:**
Deep sleep模式主要应用场景决定了系统很长时间才会苏醒一次完成工作后又会继续进入Deep sleep所以其理想电流图如下。
.. figure:: ../../_static/Low-power-deep-sleep-current.png
:align: center
Deep sleep模式理想电流图
**应用场景:**
Deep sleep 可以用于低功耗的传感器应用,或者大部分时间都不需要进行数据传输的情况,也就是通常所说的待机模式。设备可以每隔一段时间从 Deep sleep 状态醒来测量数据并上传,之后继续进入 Deep sleep。也可以将多个数据存储于 RTC memory然后一次发送出去。
如何配置纯系统下低功耗模式
++++++++++++++++++++++++++++++++++
介绍完纯系统下的低功耗模式后本节将介绍公共配置选项、每种模式独有的配置选项以及相应低功耗模式API的使用说明同时给出相应模式推荐的配置
**公共配置选项:**
.. only:: esp32 or esp32s3
- 单双核工作模式
对于多核心芯片可以选择单核工作模式。
- RTOS Tick rate (Hz)
该参数表示系统周期任务调度的频率。例如,当 RTOS Tick rate 配置为 1000 时,意味着系统每毫秒都会进行一次任务调度,当系统空闲时,也意味着系统能够更敏锐的感知到。
**DFS配置**
DFS的配置选项十分简单具体有如下。
**可配置选项:**
- max_freq_mhz
该参数表示最大 CPU 频率 (MHz)即CPU最高性能工作时候的频率一般设置为芯片参数的最大值。
- min_freq_mhz
该参数表示最小 CPU 频率 (MHz)即系统处在空闲状态时CPU的工作频率。该字段可设置为晶振 (XTAL) 频率值,或者 XTAL 频率值除以整数。
- light_sleep_enable
使能该选项,系统将在空闲状态下自动进入 light sleep 状态即auto light sleep 使能,上文已经具体介绍。
**配置方法:**
- 1.使能CONFIG_PM_ENABLE
- 2.配置max_freq_mhz和min_freq_mhz方式如下
.. only:: esp32
::
esp_pm_config_esp32_t pm_config = {
.max_freq_mhz = CONFIG_EXAMPLE_MAX_CPU_FREQ_MHZ,
.min_freq_mhz = CONFIG_EXAMPLE_MIN_CPU_FREQ_MHZ,
.light_sleep_enable = false
};
ESP_ERROR_CHECK( esp_pm_configure(&pm_config) );
.. only:: esp32s2
::
esp_pm_config_esp32s2_t pm_config = {
.max_freq_mhz = CONFIG_EXAMPLE_MAX_CPU_FREQ_MHZ,
.min_freq_mhz = CONFIG_EXAMPLE_MIN_CPU_FREQ_MHZ,
.light_sleep_enable = false
};
ESP_ERROR_CHECK( esp_pm_configure(&pm_config) );
.. only:: esp32s3
::
esp_pm_config_esp32s3_t pm_config = {
.max_freq_mhz = CONFIG_EXAMPLE_MAX_CPU_FREQ_MHZ,
.min_freq_mhz = CONFIG_EXAMPLE_MIN_CPU_FREQ_MHZ,
.light_sleep_enable = false
};
ESP_ERROR_CHECK( esp_pm_configure(&pm_config) );
.. only:: esp32c2
::
esp_pm_config_esp32c2_t pm_config = {
.max_freq_mhz = CONFIG_EXAMPLE_MAX_CPU_FREQ_MHZ,
.min_freq_mhz = CONFIG_EXAMPLE_MIN_CPU_FREQ_MHZ,
.light_sleep_enable = false
};
ESP_ERROR_CHECK( esp_pm_configure(&pm_config) );
.. only:: esp32c3
::
esp_pm_config_esp32c3_t pm_config = {
.max_freq_mhz = CONFIG_EXAMPLE_MAX_CPU_FREQ_MHZ,
.min_freq_mhz = CONFIG_EXAMPLE_MIN_CPU_FREQ_MHZ,
.light_sleep_enable = false
};
ESP_ERROR_CHECK( esp_pm_configure(&pm_config) );
**推荐配置:**
.. list-table::
:header-rows: 1
:widths: 20 20
* - 配置名称
- 设置情况
* - CONFIG_PM_ENABLE
- ON
* - RTOS Tick rate (Hz)
- 1000
* - max_freq_mhz
- 160
* - min_freq_mhz
- 40
* - light_sleep_enable
- false
.. note::
上表中不涉及的配置均是默认。
**light sleep配置**
这里介绍 auto light sleep的推荐配置和配置步骤。
**可配置选项:**
- Minimum step to enter sleep mode
该参数表示系统自动进入休眠的阈值。该参数单位为 RTOS Tick故其表示的时间与 RTOS Tick rate 相关,例该参数值为 3RTOS Tick rate 配置为 1000 Hz 时,即当系统空闲时间大于等于 3 ms 时进入 休眠。
- Put light sleep related codes in internal RAM
如果使能该选项,一些 light sleep 功能将被移至 IRAM减少代码运行时间降低系统功耗IRAM 使用量将增加 1.8kB。
- Put RTOS IDLE related codes in internal RAM
如果使能该选项,一些 RTOS IDLE 功能将被移至 IRAM减少代码运行时间降低系统功耗IRAM 使用量将增加 260B。
- RTC slow clock source
该参数表表示RTC慢速时钟源。系统休眠时计时器模块的时钟被门控此时使用 RTC Timer 进行计时,唤醒后使用 RTC Timer 的计数值对系统时间进行补偿。
.. list-table::
:header-rows: 1
:widths: 20 20 20
* - 时钟源
- 精度
- 频偏
* - Internal 150kHz OSC
- 约6.7us/cycle
- 大
* - External 32kHz XTAL
- 约30.5us/cycle
- 小
- Disable all GPIO when chip at sleep
如果使能该选项,系统将在休眠过程中禁用所有 GPIO 管脚,消除 GPIO 漏电,降低功耗,但是休眠过程中 GPIO 无法进行信号输入和输出。
.. only:: esp32c3 or esp32s3
- Power down MAC and baseband
如果使能该选项系统将在休眠时关闭WiFi和蓝牙的MAC和baseband来降低功耗休眠电流约降低 100 uA 但是为保存上下文信息将额外消耗5.3K DRAM。
- Power down CPU
如果使能该选项系统将在休眠时将关闭CPU来降低功耗对于 esp32c3休眠电流减小 100 uA 左右,对于 esp32s3休眠电流减小 650 uA 左右。但是为保存上下文信息,对于 esp32c3将消耗 1.6 KB 的 DRAM 空间,对于 esp32s3将消耗 8.58 KB 的 DRAM 空间。
- Power down I/D-cache tag memory
如果使能该选项系统将在休眠时关闭I/D cache tag memory 来降低功耗, 但是为保存tag memory 信息,将额外消耗最大约 9 KB DRAM同时因为tag memory 信息特殊性,如需打开该选项,建议多进行测试。
- Power down flash in light sleep
如果使能该选项系统将在light sleep休眠时关闭flash降低系统功耗该选项的前提是系统没有使用PSRAM。
**唤醒源:**
- RTC Timer Wakeup
- GPIO Wakeup
- UART Wakeup
- Touchpad Wakeup
- External Wakeup (ext0)
- External Wakeup (ext1)
- ULP Coprocessor Wakeup
.. note::
以上仅列出可配置唤醒源,详细介绍请参考:doc:`睡眠模式 <../api-reference/system/sleep_modes>`
**配置方法:**
- 1.配置唤醒源
- 2.使能 CONFIG_PM_ENABLE
- 3.使能CONFIG_FREERTOS_USE_TICKLESS_IDLE
- 4.配置DFS参数
- 5.light_sleep_enable = true具体如下
.. only:: esp32
::
esp_pm_config_esp32_t pm_config = {
.max_freq_mhz = CONFIG_EXAMPLE_MAX_CPU_FREQ_MHZ,
.min_freq_mhz = CONFIG_EXAMPLE_MIN_CPU_FREQ_MHZ,
#if CONFIG_FREERTOS_USE_TICKLESS_IDLE
.light_sleep_enable = true
#endif
};
ESP_ERROR_CHECK( esp_pm_configure(&pm_config) );
.. only:: esp32s2
::
esp_pm_config_esp32s2_t pm_config = {
.max_freq_mhz = CONFIG_EXAMPLE_MAX_CPU_FREQ_MHZ,
.min_freq_mhz = CONFIG_EXAMPLE_MIN_CPU_FREQ_MHZ,
#if CONFIG_FREERTOS_USE_TICKLESS_IDLE
.light_sleep_enable = true
#endif
};
ESP_ERROR_CHECK( esp_pm_configure(&pm_config) );
.. only:: esp32s3
::
esp_pm_config_esp32s3_t pm_config = {
.max_freq_mhz = CONFIG_EXAMPLE_MAX_CPU_FREQ_MHZ,
.min_freq_mhz = CONFIG_EXAMPLE_MIN_CPU_FREQ_MHZ,
#if CONFIG_FREERTOS_USE_TICKLESS_IDLE
.light_sleep_enable = true
#endif
};
ESP_ERROR_CHECK( esp_pm_configure(&pm_config) );
.. only:: esp32c2
::
esp_pm_config_esp32c2_t pm_config = {
.max_freq_mhz = CONFIG_EXAMPLE_MAX_CPU_FREQ_MHZ,
.min_freq_mhz = CONFIG_EXAMPLE_MIN_CPU_FREQ_MHZ,
#if CONFIG_FREERTOS_USE_TICKLESS_IDLE
.light_sleep_enable = true
#endif
};
ESP_ERROR_CHECK( esp_pm_configure(&pm_config) );
.. only:: esp32c3
::
esp_pm_config_esp32c3_t pm_config = {
.max_freq_mhz = CONFIG_EXAMPLE_MAX_CPU_FREQ_MHZ,
.min_freq_mhz = CONFIG_EXAMPLE_MIN_CPU_FREQ_MHZ,
#if CONFIG_FREERTOS_USE_TICKLESS_IDLE
.light_sleep_enable = true
#endif
};
ESP_ERROR_CHECK( esp_pm_configure(&pm_config) );
- 6.配置介绍的其余相关参数
**推荐配置:**
.. only:: esp32c3 or esp32s3
.. list-table::
:header-rows: 1
:widths: 30 15
* - 配置名称
- 设置情况
* - CONFIG_PM_ENABLE
- ON
* - CONFIG_FREERTOS_USE_TICKLESS_IDLE
- ON
* - max_freq_mhz
- 160
* - min_freq_mhz
- 40
* - RTOS Tick rate (Hz)
- 1000
* - light_sleep_enable
- true
* - Minimum step to enter sleep mode
- 3
* - Put light sleep codes in IRAM
- OFF
* - Put RTOS IDLE codes in IRAM
- OFF
* - RTC slow clock source
- Internal 150kHz OSC
* - Disable all GPIO when chip at sleep
- ON
* - Power down MAC and baseband
- ON
* - Power down I/D-cache tag memory
- ON
* - Power down CPU
- ON
* - Power down flash in light sleep
- OFF
.. note::
上表中不涉及的配置均是默认
.. only:: esp32 or esp32s2
.. list-table::
:header-rows: 1
:widths: 30 15
* - 配置名称
- 设置情况
* - CONFIG_PM_ENABLE
- ON
* - CONFIG_FREERTOS_USE_TICKLESS_IDLE
- ON
* - max_freq_mhz
- 160
* - min_freq_mhz
- 40
* - RTOS Tick rate (Hz)
- 1000
* - light_sleep_enable
- true
* - Minimum step to enter sleep mode
- 3
* - Put light sleep codes in IRAM
- OFF
* - Put RTOS IDLE codes in IRAM
- OFF
* - RTC slow clock source
- Internal 150kHz OSC
* - Disable all GPIO when chip at sleep
- ON
.. note::
上表中不涉及的配置均是默认
.. only:: esp32c2
.. list-table::
:header-rows: 1
:widths: 30 15
* - 配置名称
- 设置情况
* - CONFIG_PM_ENABLE
- ON
* - CONFIG_FREERTOS_USE_TICKLESS_IDLE
- ON
* - max_freq_mhz
- 120
* - min_freq_mhz
- 40
* - RTOS Tick rate (Hz)
- 1000
* - light_sleep_enable
- true
* - Minimum step to enter sleep mode
- 3
* - Put light sleep codes in IRAM
- OFF
* - Put RTOS IDLE codes in IRAM
- OFF
* - RTC slow clock source
- Internal 150kHz OSC
* - Disable all GPIO when chip at sleep
- ON
* - Power down MAC and baseband
- ON
* - Power down I/D-cache tag memory
- ON
* - Power down CPU
- ON
* - Power down flash in light sleep
- OFF
.. note::
上表中不涉及的配置均是默认
**Deep sleep配置**
**可配置选项:**
对Deep sleep模式来说除了唤醒源相关配置其余配置意义已经不大。
- RTC Timer wakeup
- EXT0/1 wakeup
- Touchpad wakeup
- ULP wakeup
.. note::
以上仅列出可配置唤醒源,详细介绍请参考:doc:`睡眠模式 <../api-reference/system/sleep_modes>`
**配置步骤:**
- 配置唤醒源
- 调用API具体如下::
/* Enter deep sleep */
esp_deep_sleep_start();
**推荐配置:**
仅需配置唤醒源,其余无需配置。
**休眠时打开功能模块**
如果用户在休眠时有想让一些特定模块不关闭的需求,也有一些配置选项可以实现。
- Power up External 40MHz XTAL
一些特殊应用中有些模块对休眠时的时钟精度及稳定度有很高要求(例如 BT这种情况下可以考虑在休眠过程中打开 External 40MHz XTAL。
打开和关闭代码如下::
ESP_ERROR_CHECK(esp_sleep_pd_config(ESP_PD_DOMAIN_XTAL, ESP_PD_OPTION_ON));
ESP_ERROR_CHECK(esp_sleep_pd_config(ESP_PD_DOMAIN_XTAL, ESP_PD_OPTION_OFF));
- Power up Internal 8MHz OSC
一些特殊应用中有些模块(例如 LEDC将 Internal 8MHz OSC 作为时钟源并且希望在 light sleep 休眠过程中也可以正常使用,这就需要系统休眠时 Internal 8MHz OSC 依然可以正常工作。
打开和关闭代码如下::
ESP_ERROR_CHECK(esp_sleep_pd_config(ESP_PD_DOMAIN_RTC8M, ESP_PD_OPTION_ON));
ESP_ERROR_CHECK(esp_sleep_pd_config(ESP_PD_DOMAIN_RTC8M, ESP_PD_OPTION_OFF));
WiFi场景下低功耗模式介绍
++++++++++++++++++++++++++++++++++
上文介绍了纯系统方向下的低功耗模式但在实际应用中还需结合具体应用场景。本节将结合纯系统下的功耗模式来介绍在WiFi场景下的低功耗模式。因为WiFi场景的复杂性本节会会首先介绍WiFi省电的基本原理然后再介绍具体的低功耗模式同时本节主要针对station模式。
**WiFi场景如何省电**
第一点station在工作过程为在接收发送过程中避免冲突需要长时间监听信道能耗较大的RF模块会一直处于工作中浪费电量。为此WiFi协议引入省电模式。
省电模式的基本思想是减少不必要的监听时间来降低耗能AP会缓存进入省电模式的station的包同时周期发送Beacon帧该帧包含TIM 信息TIM会指示AP缓存的单播包而DTIM是特殊的TIM其会缓存广播包并且DTIM是以n由AP决定个TIM为周期发送。对station来说TIM不是必听但DTIM一定要听因此station可以选择只在每一个DTIM帧前醒来打开WiFi 相关模块RF模块而不必时刻处于监听状态这样就能有效降低功耗。
.. figure:: ../../_static/Low-power-DTIM4.png
:align: center
DTIM4 省电模式示意图
第二点station从打开到再次关闭WiFi相关模块的时间这段时间的长短也会影响功耗的表现。除开必要的数据传输处理时间还有一些其他的配置可以影响着这段时间的长短主要有四部分。
第一部分时钟准确性导致的time offset主要原因是时钟或多或少都会与理想的时间存在偏移同时偏移的正负不定。第二部分处理Beacon漏听后的时间如漏听后持续监听时间、允许最多丢失Beacon数目等这段时间存不存在以及存在多久都不定但是可以配置范围。第三部分是为了确保能够接受突发数据包而添加的active时间可由配置决定。第四部分ILDE时间是具体某些功耗模式进入条件要求。因此在满足通信需求的情况下降低工作时间可以改善功耗表现。
.. figure:: ../../_static/Low-power-time.png
:align: center
芯片工作时间组成图
第三点在station没有处于WiFi接收或发送状态时影响功耗的因素变成了芯片的其他模块。不同的功耗模式会配置不同的时钟源或者动态调整一些模块的工作频率如CPU ,同时还会关闭不同数量的功能模块,这将有效降低芯片的功耗。其实也就是纯系统相关的模式,用户可根据需求自己选择合适的配置。
**WiFi场景低功耗模式的基本电流图**
了解如何省电之后便可以得到WiFi场景低功耗模式的基本电流图。
如果以时间为横轴,电流大小为纵轴建立坐标轴,那么处在低功耗模式下芯片的理想工作电流图可以简化成下图。
.. figure:: ../../_static/Low-power-WiFi-base-current.png
:align: center
理想情况下WiFi场景低功耗模式电流图
其中station要进行WiFi通信时WiFi相关模块PHY开启电流会显著上升在工作完成前电流会一直维持在一个较高的水平。工作完成后芯片会关闭WiFi相关模块这时电流又会降低到一个较低水平。
可以看出影响功耗表现的主要有三点interval、period和 base current。
- interval是station WiFi相关模块工作的间隔既可以由低功耗模式自定义也可根据WiFi协议省电机制3.1第一点介绍由DTIM周期决定。可以看出在同等情下interval越大功耗表现会更好但是响应会更慢影响通信的及时性。
- Period可以看作每次station WiFi工作的时间这段时间的长度也会影响功耗的表现。period不是一个固定的时长3.1第二点介绍在保证WiFi通信正常的情况下period持续时间越短功耗表现越好。但是减少period时间必然会影响通信的可靠性。
- base current是WiFi相关模块不工作时芯片的电流影响其大小的因素很多不同的功耗模式下休眠策略不同。所以在满足功能的情况下优化配置降低该电流大小可以提高功耗表现但同时关闭其余模块会影响相关功能和芯片的唤醒时间。
知道了影响功耗的三点因素之后要想降低功耗应从这三点入手接下来介绍两种低功耗模式Modem sleep、auto light sleep 。两种模式主要区别就是对三点因素的优化不同。
**Modem sleep**
**简介:**
Modem sleep 模式主要工作原理基于DTIM机制周期性的醒来处理WiFi相关工作又在周期间隔之间进入休眠关闭PHYRF模块来降低功耗。同时通过DTIM机制station 可以与AP保持WiFi连接数据可传输。
**休眠:**
Modem sleep 模式会在WiFi task结束后自动进入休眠无需调用API休眠时仅会关闭WiFi相关模块PHY其余模块均处在正常上电状态。
**唤醒:**
Modem sleep模式默认会根据DTIM周期或listen interval下文介绍醒来相当于系统自动设置了一个WiFi唤醒源因此用户无需再配置唤醒源同时系统主动发包时也可以唤醒。
**工作流程:**
Modem sleep 是一个开关型的模式调用API开启后一直自动运行其工作流程十分简单具体如下图。
.. figure:: ../../_static/Low-power-modem-process.png
:align: center
Modem sleep 工作流程图
**理想电流图:**
根据上文的基本电流图结合Modem sleep的工作原理以Min Modem下文介绍为例可得理想情况下电流变化图。
.. figure:: ../../_static/Low-power-modem-current.png
:align: center
Min Modem sleep理想电流图
**应用场景:**
Modem-sleep 一般用于 CPU 持续处于工作状态并需要保持 Wi-Fi 连接的应用场景,例如,使用 {IDF_TARGET_NAME} 本地语音唤醒功能CPU 需要持续采集和处理音频数据。
**DFS+Modem sleep**
Modem sleep模式休眠状态中CPU仍处在工作状态而DFS机制主要作用于CPU和APB工作频率来降低功耗因此DFS+Modem sleep可以进一步优化功耗表现又因为WiFi task会申请ESP_PM_CPU_FREQ_MAX电源锁来保证WiFi任务快速运行所以DFS+Modem sleep 产生调频只会发生在 base current阶段即WiFi task 结束后。
在WiFi场景下为了介绍的简化让用户抓住主要的变化DFS可以进行一定的状态简化。具体来说虽然DFS主要根据CPU和APB两把锁的最高需求来调频但是WiFi场景都需要CPU的频率最大化来工作同时WiFi task结束后也可以理想化的认为没有其余的工作要完成这样就可以简单认为经过一段时间会释放两把锁进入空闲状态IDLE状态也同时忽略这段时间锁的变化导致的电流变化简化状态。
在WiFi场景下DFS最终简化为如下流程
.. figure:: ../../_static/Low-power-DFS-process.png
:align: center
WiFi场景DFS简化流程图
在WiFi 工作的active状态与系统空闲的IDLE状态转换WiFi task结束后系统经过一段时间释放了所有锁进入IDLE状态此时DFS机制降低频率到设定最低值忽略了转换状态期间的调频动作方便理解。
**理想电流图:**
经过上文的原理介绍后简化过后的DFS+Modem sleep模式理想状态下的电流大小如下图所示
.. figure:: ../../_static/Low-power-DFS-modem-current.png
:align: center
DFS+Modem sleep模式理想电流图
**auto light sleep+WiFi场景**
**简介:**
auto light sleep 模式在WiFi场景下是ESP-IDF电源管理机制、DTIM机制和light sleep的结合。开启电源管理是其前置条件auto体现在系统进入IDLE状态超过设定值后自动进入light sleep。同时auto light sleep 模式同样遵循DTIM机制会自动苏醒可以与AP保持WiFi连接。
**休眠:**
auto light sleep 模式在WiFi场景下休眠机制与纯系统下一样仍然依赖于电源管理机制进入休眠的条件为系统处于IDLE状态的时间超过设定时间并且系统会提前判断空闲时间是否满足条件若满足直接休眠。该过程为自动进行。休眠时会自动关闭RF、 8 MHz 振荡器、40 MHz 高速晶振、PLL 门控数字内核时钟暂停CPU工作。
**唤醒:**
auto light sleep模式在WiFi场景下遵循DTIM机制自动在DTIM帧到来前苏醒相当于系统自动设置了一个WiFi唤醒源因此用户无需再配置唤醒源。同时系统主动发包时也可以唤醒。
**工作流程:**
auto light sleep 模式在WiFi场景下工作流程较为复杂但全程都是自动进行具体如下图所示。
.. figure:: ../../_static/Low-power-wifi-auto-light-process.png
:align: center
auto light sleep 工作流程图
**理想电流图:**
auto light sleep模式在WiFi场景下经常与modem sleep同时开启这里给出modem+auto light sleep 模式的理想电流图,关键节点均在图上标出。
.. figure:: ../../_static/Low-power-wifi-auto-light-current.png
:align: center
modem+auto light sleep 模式理想电流图
**应用场景:**
auto light sleep 模式在WiFi场景下可用于需要保持WiFi连接可以实时响应AP发来数据的场景。并且在未接收到命令时CPU 可以处于空闲状态。比如 Wi-Fi 开关的应用,大部分时间 CPU 都是空闲的直到收到控制命令CPU 才需要进行 GPIO 的操作。
**Deep sleep+WiFi场景**
Deep sleep模式在Wi-Fi场景下与纯系统下基本相同详情可以参考(`Deep sleep`_)这里不再介绍。
如何配置WiFi场景下低功耗模式
++++++++++++++++++++++++++++++++++
介绍完WiFi场景下低功耗模式后本节将介绍公共配置选项、每种模式独有的配置选项以及相应低功耗模式API的使用说明同时给出相应模式推荐的配置(包含纯系统下的低功耗推荐配置)以及该配置的具体表现。
**公共配置选项:**
**功耗类:**
- Max WiFi TX power (dBm)
该参数表示最大 TX 功率降低该参数会减小发包功耗但会影响WiFi性能默认设置最大20。
**IRAM类**
- WiFi IRAM speed optimization
如果使能该选项,一些 WiFi 功能将被移至 IRAM减少代码运行时间降低系统功耗IRAM 使用量将增加,默认开启。
- WiFi RX IRAM speed optimization
如果使能该选项,一些 WiFi RX 功能将被移至 IRAM减少代码运行时间降低系统功耗IRAM 使用量将增加,默认开启。
- WiFi Sleep IRAM speed optimization
如果使能该选项,一些 WiFi sleep功能将被移至 IRAM减少代码运行时间降低系统功耗IRAM 使用量将增加,默认关闭。
**Wi-Fi协议类**
- Minimum active time
该参数表示Station 接收完一次数据后需要等待时间。当终端与 AP 进行通信时AP 发送到终端的数据经常是突发形式的为确保后续的突发数据能够正常接收到需要等待一段时间。默认50。
- Maximum keep alive time
该参数表示周期性的发送 sleep null data 来通告 AP 维持连接的时间。在DTIM机制下若AP长时间没有某个station的包可能会断开连接因此需要station需要周期发送 sleep null data 维持连接。默认10。
- Send gratuitous ARP periodically
如果使能该选项Station将周期性的发送 gratuitous ARP 请求更新 AP ARP 缓存表。如无该需求,可以关闭。
- Wifi sleep optimize when beacon lost
如果使能该选项, Station在检测到已经错过或者丢失beacon时 会立即关闭 RF 进入低功耗状态。
**Modem sleep配置**
**可配置选项:**
- Min Modem
该参数表示station按照 DTIM周期工作在每个DTIM前醒来接收Beacon这样不会漏掉广播信息但是DTIM周期由AP决定如果DTIM周期较短省电效果会降低。
- Max Modem
该参数表示station会自定义一个listen interval并以listen interval 为周期醒来接受Beacon。这样在listen interval 较大时会省电但是容易漏听DTIM ,错过广播数据。
**配置方法:**
- 调用API选择模式参数::
typedef enum {
WIFI_PS_NONE,
WIFI_PS_MIN_MODEM,
WIFI_PS_MAX_MODEM,
} wifi_ps_type_t;
esp_err_t esp_wifi_set_ps(wifi_ps_type_t type);
若选择WIFI_PS_MAX_MODEM还需配置listen interval示例如下::
#define LISTEN_INTERVAL 3
wifi_config_t wifi_config = {
.sta = {
.ssid = "SSID",
.password = "Password",
.listen_interval = LISTEN_INTERVAL,
},
};
ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_STA));
ESP_ERROR_CHECK(esp_wifi_set_config(ESP_IF_WIFI_STA, &wifi_config));
ESP_ERROR_CHECK(esp_wifi_start());
**配置推荐:**
这里给出的配置推荐是Min-Modem sleep+DFS开启的配置
.. list-table::
:header-rows: 1
:widths: 20 15
* - 配置名称
- 设置情况
* - WIFI_PS_MIN_MODEM
- ON
* - CONFIG_PM_ENABLE
- ON
* - RTOS Tick rate (Hz)
- 1000
* - max_freq_mhz
- 160
* - min_freq_mhz
- 40
* - light_sleep_enable
- false
**配置表现:**
.. include:: sleep-current/{IDF_TARGET_PATH_NAME}_modem_sleep.inc
**auto light sleep+Wi-Fi场景配置**
auto light sleep 在Wi-Fi场景下的配置比纯系统下少了唤醒源的配置要求其余几乎与纯系统下配置一致因此可配置选项、配置步骤、推荐配置的详细介绍可以参考上文( `light sleep`_ )。同时Wi-Fi相关配置保持默认。
**配置表现:**
该配置表现为auto light sleep 纯系统推荐配置+默认的Wi-Fi相关配置在Wi-Fi场景的表现。
.. include:: sleep-current/{IDF_TARGET_PATH_NAME}_light_sleep.inc
**Deep sleep+Wi-Fi场景配置**
Deep sleep模式在Wi-Fi场景下的配置与纯系统下配置基本一致因此可配置选项、配置步骤、推荐配置的详细介绍可以参考上文( `Deep sleep`_ )。同时Wi-Fi相关配置保持默认。
**配置表现:**
该配置表现为Deep sleep 纯系统推荐配置+默认的Wi-Fi相关配置在Wi-Fi场景的表现。
.. only:: esp32
平均电流约5.0 μA
.. only:: esp32s2
平均电流约5.0 μA
.. only:: esp32s3
平均电流约6.9 μA
.. only:: esp32c3
平均电流约4.8 μA
.. only:: esp32c2
平均电流约4.9 μA
Wi-Fi场景如何选择低功耗模式
++++++++++++++++++++++++++++++++++
为方便用户选择合适的低功耗模式现给出Wi-Fi场景下低功耗模式总结表用户可根据需求选择。
.. include:: sleep-current/{IDF_TARGET_PATH_NAME}_summary.inc
.. note::
上表中所有电流均为平均电流
故障排除
---------------
@ -3650,3 +4550,4 @@ Wi-Fi AMPDU
:hidden:
wireshark-user-guide