menu "Example Configuration"
config WIFI_SSID
- string "WiFi SSID"
- default "myssid"
- help
- SSID (network name) for the example to connect to.
+ string "WiFi SSID"
+ default "myssid"
+ help
+ SSID (network name) for the example to connect to.
config WIFI_PASSWORD
- string "WiFi Password"
- default "mypassword"
- help
- WiFi password (WPA or WPA2) for the example to use.
-
+ string "WiFi Password"
+ default "mypassword"
+ help
+ WiFi password (WPA or WPA2) for the example to use.
+
config WIFI_LISTEN_INTERVAL
- int "WiFi listen interval"
- default 3
- help
- Interval for station to listen to beacon from AP. The unit of listen interval is one beacon interval.
- For example, if beacon interval is 100 ms and listen interval is 3, the interval for station to listen
- to beacon is 300 ms.
+ int "WiFi listen interval"
+ default 3
+ help
+ Interval for station to listen to beacon from AP. The unit of listen interval is one beacon interval.
+ For example, if beacon interval is 100 ms and listen interval is 3, the interval for station to listen
+ to beacon is 300 ms.
choice POWER_SAVE_MODE
- prompt "power save mode"
- default POWER_SAVE_MIN_MODEM
- help
- Power save mode for the esp32 to use. Modem sleep mode includes minimum and maximum power save modes.
- In minimum power save mode, station wakes up every DTIM to receive beacon. Broadcast data will not be
- lost because it is transmitted after DTIM. However, it can not save much more power if DTIM is short
- for DTIM is determined by AP.
- In maximum power save mode, station wakes up every listen interval to receive beacon. Broadcast data
- may be lost because station may be in sleep state at DTIM time. If listen interval is longer, more power
- is saved but broadcast data is more easy to lose.
+ prompt "power save mode"
+ default POWER_SAVE_MIN_MODEM
+ help
+ Power save mode for the esp32 to use. Modem sleep mode includes minimum and maximum power save modes.
+ In minimum power save mode, station wakes up every DTIM to receive beacon. Broadcast data will not be
+ lost because it is transmitted after DTIM. However, it can not save much more power if DTIM is short
+ for DTIM is determined by AP.
+ In maximum power save mode, station wakes up every listen interval to receive beacon. Broadcast data
+ may be lost because station may be in sleep state at DTIM time. If listen interval is longer, more power
+ is saved but broadcast data is more easy to lose.
config POWER_SAVE_NONE
- bool "none"
+ bool "none"
config POWER_SAVE_MIN_MODEM
- bool "minimum modem"
+ bool "minimum modem"
config POWER_SAVE_MAX_MODEM
- bool "maximum modem"
+ bool "maximum modem"
endchoice
+choice EXAMPLE_MAX_CPU_FREQ
+ prompt "Maximum CPU frequency"
+ default EXAMPLE_MAX_CPU_FREQ_80
+ help
+ Maximum CPU frequency to use for dynamic frequency scaling.
+
+config EXAMPLE_MAX_CPU_FREQ_80
+ bool "80 MHz"
+config EXAMPLE_MAX_CPU_FREQ_160
+ bool "160 MHz"
+config EXAMPLE_MAX_CPU_FREQ_240
+ bool "240 MHz"
+endchoice
+
+config EXAMPLE_MAX_CPU_FREQ_MHZ
+ int
+ default 80 if EXAMPLE_MAX_CPU_FREQ_80
+ default 160 if EXAMPLE_MAX_CPU_FREQ_160
+ default 240 if EXAMPLE_MAX_CPU_FREQ_240
+
+
+choice EXAMPLE_MIN_CPU_FREQ
+ prompt "Minimum CPU frequency"
+ default EXAMPLE_MIN_CPU_FREQ_10M
+ help
+ Minimum CPU frequency to use for dynamic frequency scaling.
+ Should be set to XTAL frequency or XTAL frequency divided by integer.
+
+config EXAMPLE_MIN_CPU_FREQ_40M
+ bool "40 MHz (use with 40MHz XTAL)"
+ depends on ESP32_XTAL_FREQ_40 || ESP32_XTAL_FREQ_AUTO
+config EXAMPLE_MIN_CPU_FREQ_20M
+ bool "20 MHz (use with 40MHz XTAL)"
+ depends on ESP32_XTAL_FREQ_40 || ESP32_XTAL_FREQ_AUTO
+config EXAMPLE_MIN_CPU_FREQ_10M
+ bool "10 MHz (use with 40MHz XTAL)"
+ depends on ESP32_XTAL_FREQ_40 || ESP32_XTAL_FREQ_AUTO
+config EXAMPLE_MIN_CPU_FREQ_26M
+ bool "26 MHz (use with 26MHz XTAL)"
+ depends on ESP32_XTAL_FREQ_26 || ESP32_XTAL_FREQ_AUTO
+config EXAMPLE_MIN_CPU_FREQ_13M
+ bool "13 MHz (use with 26MHz XTAL)"
+ depends on ESP32_XTAL_FREQ_26 || ESP32_XTAL_FREQ_AUTO
+endchoice
+
+config EXAMPLE_MIN_CPU_FREQ_MHZ
+ int
+ default 40 if EXAMPLE_MIN_CPU_FREQ_40M
+ default 20 if EXAMPLE_MIN_CPU_FREQ_20M
+ default 10 if EXAMPLE_MIN_CPU_FREQ_10M
+ default 26 if EXAMPLE_MIN_CPU_FREQ_26M
+ default 13 if EXAMPLE_MIN_CPU_FREQ_13M
+
endmenu
ESP_ERROR_CHECK( ret );
#if CONFIG_PM_ENABLE
- // Configure dynamic frequency scaling: maximum frequency is set in sdkconfig,
- // minimum frequency is XTAL.
- rtc_cpu_freq_t max_freq;
- rtc_clk_cpu_freq_from_mhz(CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ, &max_freq);
+ // Configure dynamic frequency scaling:
+ // maximum and minimum frequencies are set in sdkconfig,
+ // automatic light sleep is enabled if tickless idle support is enabled.
esp_pm_config_esp32_t pm_config = {
- .max_cpu_freq = max_freq,
- .min_cpu_freq = RTC_CPU_FREQ_XTAL,
+ .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