From f0888d131e14de707a7700493caaaeb7ae383a39 Mon Sep 17 00:00:00 2001 From: leo Date: Sat, 26 Nov 2022 17:56:59 +0100 Subject: [PATCH] ble modem sleep --- main/CO2_Sense.c | 9 +++++++++ sdkconfig | 35 +++++++++++++++++++++++++++-------- 2 files changed, 36 insertions(+), 8 deletions(-) diff --git a/main/CO2_Sense.c b/main/CO2_Sense.c index 5ef8fab..dfbfdca 100644 --- a/main/CO2_Sense.c +++ b/main/CO2_Sense.c @@ -12,6 +12,7 @@ #include "esp_log.h" #include "esp_sleep.h" +#include "esp_pm.h" #include "driver/gpio.h" #include "driver/i2c.h" @@ -37,6 +38,14 @@ void app_main(void){ GPIO_INTR_DISABLE, }; ESP_ERROR_CHECK(gpio_config(&VBAT_OK_c)); + + esp_pm_config_esp32c3_t pm_config = { + .max_freq_mhz = 80, + .min_freq_mhz = 40, + .light_sleep_enable = true, // enable light sleep + }; + ESP_ERROR_CHECK(esp_pm_configure(&pm_config)); + configuration_data_t* conf = malloc(sizeof(configuration_data_t)); init_conf_from_nvs(conf, nvs_handle); diff --git a/sdkconfig b/sdkconfig index 2208232..e2889f8 100644 --- a/sdkconfig +++ b/sdkconfig @@ -546,11 +546,15 @@ CONFIG_BT_CTRL_COEX_PHY_CODED_TX_RX_TLIM_EFF=0 # # MODEM SLEEP Options # -# CONFIG_BT_CTRL_MODEM_SLEEP is not set +CONFIG_BT_CTRL_MODEM_SLEEP=y +CONFIG_BT_CTRL_MODEM_SLEEP_MODE_1=y +# CONFIG_BT_CTRL_LPCLK_SEL_MAIN_XTAL is not set +CONFIG_BT_CTRL_LPCLK_SEL_EXT_32K_XTAL=y +# CONFIG_BT_CTRL_MAIN_XTAL_PU_DURING_LIGHT_SLEEP is not set # end of MODEM SLEEP Options -CONFIG_BT_CTRL_SLEEP_MODE_EFF=0 -CONFIG_BT_CTRL_SLEEP_CLOCK_EFF=0 +CONFIG_BT_CTRL_SLEEP_MODE_EFF=1 +CONFIG_BT_CTRL_SLEEP_CLOCK_EFF=2 CONFIG_BT_CTRL_HCI_TL_EFF=1 # CONFIG_BT_CTRL_AGC_RECORRECT_EN is not set # end of Controller Options @@ -777,8 +781,8 @@ CONFIG_ESP_SLEEP_GPIO_RESET_WORKAROUND=y # # RTC Clock Config # -CONFIG_RTC_CLK_SRC_INT_RC=y -# CONFIG_RTC_CLK_SRC_EXT_CRYS is not set +# CONFIG_RTC_CLK_SRC_INT_RC is not set +CONFIG_RTC_CLK_SRC_EXT_CRYS=y # CONFIG_RTC_CLK_SRC_EXT_OSC is not set # CONFIG_RTC_CLK_SRC_INT_8MD256 is not set CONFIG_RTC_CLK_CAL_CYCLES=1024 @@ -847,6 +851,7 @@ CONFIG_ESP_PHY_CALIBRATION_AND_DATA_STORAGE=y # CONFIG_ESP_PHY_INIT_DATA_IN_PARTITION is not set CONFIG_ESP_PHY_MAX_WIFI_TX_POWER=20 CONFIG_ESP_PHY_MAX_TX_POWER=20 +# CONFIG_ESP_PHY_MAC_BB_PD is not set CONFIG_ESP_PHY_REDUCE_TX_POWER=y CONFIG_ESP_PHY_ENABLE_USB=y # end of PHY @@ -854,7 +859,13 @@ CONFIG_ESP_PHY_ENABLE_USB=y # # Power Management # -# CONFIG_PM_ENABLE is not set +CONFIG_PM_ENABLE=y +# CONFIG_PM_DFS_INIT_AUTO is not set +# CONFIG_PM_PROFILING is not set +# CONFIG_PM_TRACE is not set +# CONFIG_PM_SLP_IRAM_OPT is not set +# CONFIG_PM_RTOS_IDLE_OPT is not set +CONFIG_PM_SLP_DISABLE_GPIO=y CONFIG_PM_POWER_DOWN_CPU_IN_LIGHT_SLEEP=y # end of Power Management @@ -881,6 +892,8 @@ CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT=y # CONFIG_ESP_SYSTEM_PANIC_GDBSTUB is not set # CONFIG_ESP_SYSTEM_GDBSTUB_RUNTIME is not set CONFIG_ESP_SYSTEM_SINGLE_CORE_MODE=y +CONFIG_ESP_SYSTEM_RTC_EXT_XTAL=y +CONFIG_ESP_SYSTEM_RTC_EXT_XTAL_BOOTSTRAP_CYCLES=0 CONFIG_ESP_SYSTEM_RTC_FAST_MEM_AS_HEAP_DEPCHECK=y CONFIG_ESP_SYSTEM_ALLOW_RTC_FAST_MEM_AS_HEAP=y # CONFIG_ESP_SYSTEM_USE_EH_FRAME is not set @@ -915,6 +928,7 @@ CONFIG_ESP_TASK_WDT_INIT=y # CONFIG_ESP_TASK_WDT_PANIC is not set CONFIG_ESP_TASK_WDT_TIMEOUT_S=5 CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU0=y +# CONFIG_ESP_XT_WDT is not set # CONFIG_ESP_PANIC_HANDLER_IRAM is not set # CONFIG_ESP_DEBUG_STUBS_ENABLE is not set CONFIG_ESP_DEBUG_OCDAWARE=y @@ -1061,6 +1075,8 @@ CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10 CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0 # CONFIG_FREERTOS_USE_TRACE_FACILITY is not set # CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS is not set +CONFIG_FREERTOS_USE_TICKLESS_IDLE=y +CONFIG_FREERTOS_IDLE_TIME_BEFORE_SLEEP=3 # end of Kernel # @@ -1718,8 +1734,8 @@ CONFIG_POST_EVENTS_FROM_IRAM_ISR=y # CONFIG_OTA_ALLOW_HTTP is not set CONFIG_ESP_SYSTEM_PD_FLASH=y CONFIG_ESP32C3_LIGHTSLEEP_GPIO_RESET_WORKAROUND=y -CONFIG_ESP32C3_RTC_CLK_SRC_INT_RC=y -# CONFIG_ESP32C3_RTC_CLK_SRC_EXT_CRYS is not set +# CONFIG_ESP32C3_RTC_CLK_SRC_INT_RC is not set +CONFIG_ESP32C3_RTC_CLK_SRC_EXT_CRYS=y # CONFIG_ESP32C3_RTC_CLK_SRC_EXT_OSC is not set # CONFIG_ESP32C3_RTC_CLK_SRC_INT_8MD256 is not set CONFIG_ESP32C3_RTC_CLK_CAL_CYCLES=1024 @@ -1727,12 +1743,15 @@ CONFIG_ESP32_PHY_CALIBRATION_AND_DATA_STORAGE=y # CONFIG_ESP32_PHY_INIT_DATA_IN_PARTITION is not set CONFIG_ESP32_PHY_MAX_WIFI_TX_POWER=20 CONFIG_ESP32_PHY_MAX_TX_POWER=20 +# CONFIG_MAC_BB_PD is not set +# CONFIG_ESP32_PHY_MAC_BB_PD is not set CONFIG_REDUCE_PHY_TX_POWER=y CONFIG_ESP32_REDUCE_PHY_TX_POWER=y CONFIG_ESP_SYSTEM_PM_POWER_DOWN_CPU=y # CONFIG_ESP32C3_DEFAULT_CPU_FREQ_80 is not set CONFIG_ESP32C3_DEFAULT_CPU_FREQ_160=y CONFIG_ESP32C3_DEFAULT_CPU_FREQ_MHZ=160 +CONFIG_ESP32_RTC_XTAL_BOOTSTRAP_CYCLES=0 CONFIG_ESP32C3_MEMPROT_FEATURE=y CONFIG_ESP32C3_MEMPROT_FEATURE_LOCK=y CONFIG_SYSTEM_EVENT_QUEUE_SIZE=32