2020-07-21 09:15:19 +00:00
|
|
|
menu "Power Management"
|
|
|
|
config PM_ENABLE
|
|
|
|
bool "Support for power management"
|
2022-06-15 08:17:59 +00:00
|
|
|
# SMP FreeRTOS currently does not support power management IDF-4997
|
|
|
|
depends on !FREERTOS_SMP
|
2020-07-21 09:15:19 +00:00
|
|
|
default n
|
|
|
|
help
|
|
|
|
If enabled, application is compiled with support for power management.
|
|
|
|
This option has run-time overhead (increased interrupt latency,
|
|
|
|
longer time to enter idle state), and it also reduces accuracy of
|
|
|
|
RTOS ticks and timers used for timekeeping.
|
|
|
|
Enable this option if application uses power management APIs.
|
|
|
|
|
|
|
|
config PM_DFS_INIT_AUTO
|
|
|
|
bool "Enable dynamic frequency scaling (DFS) at startup"
|
|
|
|
depends on PM_ENABLE
|
|
|
|
default n
|
|
|
|
help
|
|
|
|
If enabled, startup code configures dynamic frequency scaling.
|
|
|
|
Max CPU frequency is set to DEFAULT_CPU_FREQ_MHZ setting,
|
|
|
|
min frequency is set to XTAL frequency.
|
|
|
|
If disabled, DFS will not be active until the application
|
|
|
|
configures it using esp_pm_configure function.
|
|
|
|
|
|
|
|
config PM_PROFILING
|
|
|
|
bool "Enable profiling counters for PM locks"
|
|
|
|
depends on PM_ENABLE
|
|
|
|
default n
|
|
|
|
help
|
|
|
|
If enabled, esp_pm_* functions will keep track of the amount of time
|
|
|
|
each of the power management locks has been held, and esp_pm_dump_locks
|
|
|
|
function will print this information.
|
|
|
|
This feature can be used to analyze which locks are preventing the chip
|
|
|
|
from going into a lower power state, and see what time the chip spends
|
|
|
|
in each power saving mode. This feature does incur some run-time
|
|
|
|
overhead, so should typically be disabled in production builds.
|
|
|
|
|
|
|
|
config PM_TRACE
|
|
|
|
bool "Enable debug tracing of PM using GPIOs"
|
|
|
|
depends on PM_ENABLE
|
|
|
|
default n
|
|
|
|
help
|
|
|
|
If enabled, some GPIOs will be used to signal events such as RTOS ticks,
|
|
|
|
frequency switching, entry/exit from idle state. Refer to pm_trace.c
|
|
|
|
file for the list of GPIOs.
|
|
|
|
This feature is intended to be used when analyzing/debugging behavior
|
|
|
|
of power management implementation, and should be kept disabled in
|
|
|
|
applications.
|
|
|
|
|
2020-12-23 06:45:36 +00:00
|
|
|
config PM_SLP_IRAM_OPT
|
|
|
|
bool "Put lightsleep related codes in internal RAM"
|
|
|
|
depends on FREERTOS_USE_TICKLESS_IDLE
|
|
|
|
help
|
2020-12-25 12:04:32 +00:00
|
|
|
If enabled, about 1.8KB of lightsleep related source code would be in IRAM and chip would sleep
|
2020-12-23 06:45:36 +00:00
|
|
|
longer for 760us at most each time.
|
2020-12-25 12:04:32 +00:00
|
|
|
This feature is intended to be used when lower power consumption is needed
|
|
|
|
while there is enough place in IRAM to place source code.
|
2020-07-21 09:15:19 +00:00
|
|
|
|
2020-12-23 06:45:36 +00:00
|
|
|
config PM_RTOS_IDLE_OPT
|
|
|
|
bool "Put RTOS IDLE related codes in internal RAM"
|
|
|
|
depends on FREERTOS_USE_TICKLESS_IDLE
|
|
|
|
help
|
2020-12-25 12:04:32 +00:00
|
|
|
If enabled, about 260B of RTOS_IDLE related source code would be in IRAM and chip would sleep
|
2020-12-23 06:45:36 +00:00
|
|
|
longer for 40us at most each time.
|
2020-12-25 12:04:32 +00:00
|
|
|
This feature is intended to be used when lower power consumption is needed
|
|
|
|
while there is enough place in IRAM to place source code.
|
|
|
|
|
2020-11-12 12:39:55 +00:00
|
|
|
config PM_SLP_DISABLE_GPIO
|
|
|
|
bool "Disable all GPIO when chip at sleep"
|
|
|
|
depends on FREERTOS_USE_TICKLESS_IDLE
|
|
|
|
help
|
|
|
|
This feature is intended to disable all GPIO pins at automantic sleep to get a lower power mode.
|
|
|
|
If enabled, chips will disable all GPIO pins at automantic sleep to reduce about 200~300 uA current.
|
|
|
|
If you want to specifically use some pins normally as chip wakes when chip sleeps,
|
|
|
|
you can call 'gpio_sleep_sel_dis' to disable this feature on those pins.
|
|
|
|
You can also keep this feature on and call 'gpio_sleep_set_direction' and 'gpio_sleep_set_pull_mode'
|
|
|
|
to have a different GPIO configuration at sleep.
|
|
|
|
Waring: If you want to enable this option on ESP32, you should enable `GPIO_ESP32_SUPPORT_SWITCH_SLP_PULL`
|
|
|
|
at first, otherwise you will not be able to switch pullup/pulldown mode.
|
|
|
|
|
2021-02-23 02:17:27 +00:00
|
|
|
config PM_SLP_DEFAULT_PARAMS_OPT
|
|
|
|
bool
|
|
|
|
default n
|
|
|
|
|
2021-03-10 13:55:49 +00:00
|
|
|
config PM_POWER_DOWN_CPU_IN_LIGHT_SLEEP
|
|
|
|
bool "Power down CPU in light sleep"
|
2021-06-18 09:25:04 +00:00
|
|
|
depends on IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32S3
|
2021-08-20 12:33:33 +00:00
|
|
|
select PM_POWER_DOWN_TAGMEM_IN_LIGHT_SLEEP if ESP32S3_DATA_CACHE_16KB
|
2021-03-10 13:55:49 +00:00
|
|
|
default y
|
|
|
|
help
|
2021-06-18 09:25:04 +00:00
|
|
|
If enabled, the CPU will be powered down in light sleep. On esp32c3 soc, enabling this
|
|
|
|
option will consume 1.68 KB of internal RAM and will reduce sleep current consumption
|
|
|
|
by about 100 uA. On esp32s3 soc, enabling this option will consume 8.58 KB of internal
|
|
|
|
RAM and will reduce sleep current consumption by about 650 uA.
|
2021-03-10 13:55:49 +00:00
|
|
|
|
2021-08-20 12:33:33 +00:00
|
|
|
config PM_POWER_DOWN_TAGMEM_IN_LIGHT_SLEEP
|
|
|
|
bool "Power down I/D-cache tag memory in light sleep"
|
|
|
|
depends on IDF_TARGET_ESP32S3 && PM_POWER_DOWN_CPU_IN_LIGHT_SLEEP
|
|
|
|
default y
|
|
|
|
help
|
|
|
|
If enabled, the I/D-cache tag memory will be retained in light sleep. Depending on the the
|
|
|
|
cache configuration, if this option is enabled, it will consume up to 9 KB of internal RAM.
|
|
|
|
|
2021-11-10 03:46:46 +00:00
|
|
|
config PM_UPDATE_CCOMPARE_HLI_WORKAROUND
|
|
|
|
bool
|
|
|
|
default y if PM_ENABLE && BTDM_CTRL_HLI
|
|
|
|
|
2020-07-21 09:15:19 +00:00
|
|
|
endmenu # "Power Management"
|