mirror of
https://github.com/espressif/esp-idf
synced 2025-03-10 01:29:21 -04:00
soc_caps: since esp32c6 only support one ext wakeup src, split SOC_PM_SUPPORT_EXT_WAKEUP
Close IDF-5924
This commit is contained in:
parent
df6b33712f
commit
709adaaa37
@ -193,8 +193,7 @@ touch_pad_t esp_sleep_get_touchpad_wakeup_status(void);
|
||||
*/
|
||||
bool esp_sleep_is_valid_wakeup_gpio(gpio_num_t gpio_num);
|
||||
|
||||
#if SOC_PM_SUPPORT_EXT_WAKEUP
|
||||
|
||||
#if SOC_PM_SUPPORT_EXT0_WAKEUP
|
||||
/**
|
||||
* @brief Enable wakeup using a pin
|
||||
*
|
||||
@ -223,7 +222,9 @@ bool esp_sleep_is_valid_wakeup_gpio(gpio_num_t gpio_num);
|
||||
* - ESP_ERR_INVALID_STATE if wakeup triggers conflict
|
||||
*/
|
||||
esp_err_t esp_sleep_enable_ext0_wakeup(gpio_num_t gpio_num, int level);
|
||||
#endif // SOC_PM_SUPPORT_EXT0_WAKEUP
|
||||
|
||||
#if SOC_PM_SUPPORT_EXT1_WAKEUP
|
||||
/**
|
||||
* @brief Enable wakeup using multiple pins
|
||||
*
|
||||
@ -259,7 +260,7 @@ esp_err_t esp_sleep_enable_ext0_wakeup(gpio_num_t gpio_num, int level);
|
||||
*/
|
||||
esp_err_t esp_sleep_enable_ext1_wakeup(uint64_t mask, esp_sleep_ext1_wakeup_mode_t mode);
|
||||
|
||||
#endif // SOC_PM_SUPPORT_EXT_WAKEUP
|
||||
#endif // SOC_PM_SUPPORT_EXT1_WAKEUP
|
||||
|
||||
#if SOC_GPIO_SUPPORT_DEEPSLEEP_WAKEUP
|
||||
/**
|
||||
|
@ -207,8 +207,10 @@ void esp_sleep_periph_use_8m(bool use_or_not)
|
||||
}
|
||||
|
||||
static uint32_t get_power_down_flags(void);
|
||||
#if SOC_PM_SUPPORT_EXT_WAKEUP
|
||||
#if SOC_PM_SUPPORT_EXT0_WAKEUP
|
||||
static void ext0_wakeup_prepare(void);
|
||||
#endif
|
||||
#if SOC_PM_SUPPORT_EXT1_WAKEUP
|
||||
static void ext1_wakeup_prepare(void);
|
||||
#endif
|
||||
static void timer_wakeup_prepare(void);
|
||||
@ -433,11 +435,13 @@ static uint32_t IRAM_ATTR esp_sleep_start(uint32_t pd_flags, esp_sleep_mode_t mo
|
||||
rtc_clk_cpu_freq_get_config(&cpu_freq_config);
|
||||
rtc_clk_cpu_freq_set_xtal();
|
||||
|
||||
#if SOC_PM_SUPPORT_EXT_WAKEUP
|
||||
#if SOC_PM_SUPPORT_EXT0_WAKEUP
|
||||
// Configure pins for external wakeup
|
||||
if (s_config.wakeup_triggers & RTC_EXT0_TRIG_EN) {
|
||||
ext0_wakeup_prepare();
|
||||
}
|
||||
#endif
|
||||
#if SOC_PM_SUPPORT_EXT1_WAKEUP
|
||||
if (s_config.wakeup_triggers & RTC_EXT1_TRIG_EN) {
|
||||
ext1_wakeup_prepare();
|
||||
}
|
||||
@ -928,11 +932,13 @@ esp_err_t esp_sleep_disable_wakeup_source(esp_sleep_source_t source)
|
||||
} else if (CHECK_SOURCE(source, ESP_SLEEP_WAKEUP_TIMER, RTC_TIMER_TRIG_EN)) {
|
||||
s_config.wakeup_triggers &= ~RTC_TIMER_TRIG_EN;
|
||||
s_config.sleep_duration = 0;
|
||||
#if SOC_PM_SUPPORT_EXT_WAKEUP
|
||||
#if SOC_PM_SUPPORT_EXT0_WAKEUP
|
||||
} else if (CHECK_SOURCE(source, ESP_SLEEP_WAKEUP_EXT0, RTC_EXT0_TRIG_EN)) {
|
||||
s_config.ext0_rtc_gpio_num = 0;
|
||||
s_config.ext0_trigger_level = 0;
|
||||
s_config.wakeup_triggers &= ~RTC_EXT0_TRIG_EN;
|
||||
#endif
|
||||
#if SOC_PM_SUPPORT_EXT1_WAKEUP
|
||||
} else if (CHECK_SOURCE(source, ESP_SLEEP_WAKEUP_EXT1, RTC_EXT1_TRIG_EN)) {
|
||||
s_config.ext1_rtc_gpio_mask = 0;
|
||||
s_config.ext1_trigger_mode = 0;
|
||||
@ -1071,8 +1077,7 @@ bool esp_sleep_is_valid_wakeup_gpio(gpio_num_t gpio_num)
|
||||
#endif // SOC_RTCIO_INPUT_OUTPUT_SUPPORTED
|
||||
}
|
||||
|
||||
#if SOC_PM_SUPPORT_EXT_WAKEUP
|
||||
|
||||
#if SOC_PM_SUPPORT_EXT0_WAKEUP
|
||||
esp_err_t esp_sleep_enable_ext0_wakeup(gpio_num_t gpio_num, int level)
|
||||
{
|
||||
if (level < 0 || level > 1) {
|
||||
@ -1101,7 +1106,9 @@ static void ext0_wakeup_prepare(void)
|
||||
rtcio_hal_function_select(rtc_gpio_num, RTCIO_FUNC_RTC);
|
||||
rtcio_hal_input_enable(rtc_gpio_num);
|
||||
}
|
||||
#endif // SOC_PM_SUPPORT_EXT0_WAKEUP
|
||||
|
||||
#if SOC_PM_SUPPORT_EXT1_WAKEUP
|
||||
esp_err_t esp_sleep_enable_ext1_wakeup(uint64_t mask, esp_sleep_ext1_wakeup_mode_t mode)
|
||||
{
|
||||
if (mode > ESP_EXT1_WAKEUP_ANY_HIGH) {
|
||||
@ -1339,9 +1346,11 @@ esp_sleep_wakeup_cause_t esp_sleep_get_wakeup_cause(void)
|
||||
return ESP_SLEEP_WAKEUP_GPIO;
|
||||
} else if (wakeup_cause & (RTC_UART0_TRIG_EN | RTC_UART1_TRIG_EN)) {
|
||||
return ESP_SLEEP_WAKEUP_UART;
|
||||
#if SOC_PM_SUPPORT_EXT_WAKEUP
|
||||
#if SOC_PM_SUPPORT_EXT0_WAKEUP
|
||||
} else if (wakeup_cause & RTC_EXT0_TRIG_EN) {
|
||||
return ESP_SLEEP_WAKEUP_EXT0;
|
||||
#endif
|
||||
#if SOC_PM_SUPPORT_EXT1_WAKEUP
|
||||
} else if (wakeup_cause & RTC_EXT1_TRIG_EN) {
|
||||
return ESP_SLEEP_WAKEUP_EXT1;
|
||||
#endif
|
||||
|
@ -386,7 +386,7 @@ TEST_CASE_MULTIPLE_STAGES("can set sleep wake stub from stack in RTC RAM", "[dee
|
||||
|
||||
#if SOC_RTCIO_INPUT_OUTPUT_SUPPORTED
|
||||
|
||||
#if SOC_PM_SUPPORT_EXT_WAKEUP
|
||||
#if SOC_PM_SUPPORT_EXT0_WAKEUP
|
||||
TEST_CASE("wake up using ext0 (13 high)", "[deepsleep][ignore]")
|
||||
{
|
||||
ESP_ERROR_CHECK(rtc_gpio_init(GPIO_NUM_13));
|
||||
@ -404,7 +404,9 @@ TEST_CASE("wake up using ext0 (13 low)", "[deepsleep][ignore]")
|
||||
ESP_ERROR_CHECK(esp_sleep_enable_ext0_wakeup(GPIO_NUM_13, ESP_EXT0_WAKEUP_LEVEL_LOW));
|
||||
esp_deep_sleep_start();
|
||||
}
|
||||
#endif // SOC_PM_SUPPORT_EXT0_WAKEUP
|
||||
|
||||
#if SOC_PM_SUPPORT_EXT1_WAKEUP
|
||||
TEST_CASE("wake up using ext1 when RTC_PERIPH is off (13 high)", "[deepsleep][ignore]")
|
||||
{
|
||||
// This test needs external pulldown
|
||||
@ -440,7 +442,7 @@ TEST_CASE("wake up using ext1 when RTC_PERIPH is on (13 low)", "[deepsleep][igno
|
||||
ESP_ERROR_CHECK(esp_sleep_enable_ext1_wakeup(BIT(GPIO_NUM_13), ESP_EXT1_WAKEUP_ALL_LOW));
|
||||
esp_deep_sleep_start();
|
||||
}
|
||||
#endif // SOC_PM_SUPPORT_EXT_WAKEUP
|
||||
#endif // SOC_PM_SUPPORT_EXT1_WAKEUP
|
||||
|
||||
__attribute__((unused)) static float get_time_ms(void)
|
||||
{
|
||||
|
@ -39,7 +39,7 @@ typedef struct rtc_cntl_sleep_retent {
|
||||
|
||||
#define RTC_HAL_DMA_LINK_NODE_SIZE (16)
|
||||
|
||||
#if SOC_PM_SUPPORT_EXT_WAKEUP
|
||||
#if SOC_PM_SUPPORT_EXT1_WAKEUP
|
||||
|
||||
#define rtc_hal_ext1_get_wakeup_status() rtc_cntl_ll_ext1_get_wakeup_status()
|
||||
|
||||
@ -51,7 +51,7 @@ typedef struct rtc_cntl_sleep_retent {
|
||||
|
||||
#define rtc_hal_ext1_get_wakeup_pins() rtc_cntl_ll_ext1_get_wakeup_pins()
|
||||
|
||||
#endif
|
||||
#endif // SOC_PM_SUPPORT_EXT1_WAKEUP
|
||||
|
||||
#if SOC_GPIO_SUPPORT_DEEPSLEEP_WAKEUP
|
||||
|
||||
|
@ -719,6 +719,14 @@ config SOC_PHY_DIG_REGS_MEM_SIZE
|
||||
int
|
||||
default 21
|
||||
|
||||
config SOC_PM_SUPPORT_EXT0_WAKEUP
|
||||
bool
|
||||
default y
|
||||
|
||||
config SOC_PM_SUPPORT_EXT1_WAKEUP
|
||||
bool
|
||||
default y
|
||||
|
||||
config SOC_PM_SUPPORT_EXT_WAKEUP
|
||||
bool
|
||||
default y
|
||||
|
@ -365,7 +365,10 @@
|
||||
#define SOC_PHY_DIG_REGS_MEM_SIZE (21*4)
|
||||
|
||||
/*-------------------------- Power Management CAPS ---------------------------*/
|
||||
#define SOC_PM_SUPPORT_EXT_WAKEUP (1)
|
||||
#define SOC_PM_SUPPORT_EXT0_WAKEUP (1)
|
||||
#define SOC_PM_SUPPORT_EXT1_WAKEUP (1)
|
||||
#define SOC_PM_SUPPORT_EXT_WAKEUP (1) /*!<Compatible to the old version of IDF */
|
||||
|
||||
#define SOC_PM_SUPPORT_TOUCH_SENSOR_WAKEUP (1) /*!<Supports waking up from touch pad trigger */
|
||||
#define SOC_PM_SUPPORT_RTC_PERIPH_PD (1)
|
||||
#define SOC_PM_SUPPORT_RTC_FAST_MEM_PD (1)
|
||||
|
@ -1031,6 +1031,10 @@ config SOC_PM_SUPPORT_BT_WAKEUP
|
||||
bool
|
||||
default y
|
||||
|
||||
config SOC_PM_SUPPORT_EXT1_WAKEUP
|
||||
bool
|
||||
default y
|
||||
|
||||
config SOC_PM_SUPPORT_CPU_PD
|
||||
bool
|
||||
default y
|
||||
|
@ -436,6 +436,7 @@
|
||||
/*-------------------------- Power Management CAPS ----------------------------*/
|
||||
#define SOC_PM_SUPPORT_WIFI_WAKEUP (1)
|
||||
#define SOC_PM_SUPPORT_BT_WAKEUP (1)
|
||||
#define SOC_PM_SUPPORT_EXT1_WAKEUP (1)
|
||||
#define SOC_PM_SUPPORT_CPU_PD (1)
|
||||
#define SOC_PM_SUPPORT_MODEM_PD (1)
|
||||
#define SOC_PM_SUPPORT_XTAL32K_PD (1)
|
||||
|
@ -951,6 +951,14 @@ config SOC_SPI_MEM_SUPPORT_WRAP
|
||||
bool
|
||||
default y
|
||||
|
||||
config SOC_PM_SUPPORT_EXT0_WAKEUP
|
||||
bool
|
||||
default y
|
||||
|
||||
config SOC_PM_SUPPORT_EXT1_WAKEUP
|
||||
bool
|
||||
default y
|
||||
|
||||
config SOC_PM_SUPPORT_EXT_WAKEUP
|
||||
bool
|
||||
default y
|
||||
|
@ -414,7 +414,10 @@
|
||||
#define SOC_SPI_MEM_SUPPORT_WRAP (1)
|
||||
|
||||
/*-------------------------- Power Management CAPS ---------------------------*/
|
||||
#define SOC_PM_SUPPORT_EXT_WAKEUP (1)
|
||||
#define SOC_PM_SUPPORT_EXT0_WAKEUP (1)
|
||||
#define SOC_PM_SUPPORT_EXT1_WAKEUP (1)
|
||||
#define SOC_PM_SUPPORT_EXT_WAKEUP (1) /*!<Compatible to the old version of IDF */
|
||||
|
||||
#define SOC_PM_SUPPORT_WIFI_WAKEUP (1)
|
||||
#define SOC_PM_SUPPORT_WIFI_PD (1)
|
||||
#define SOC_PM_SUPPORT_RTC_PERIPH_PD (1)
|
||||
|
@ -983,6 +983,14 @@ config SOC_AES_SUPPORT_AES_256
|
||||
bool
|
||||
default y
|
||||
|
||||
config SOC_PM_SUPPORT_EXT0_WAKEUP
|
||||
bool
|
||||
default y
|
||||
|
||||
config SOC_PM_SUPPORT_EXT1_WAKEUP
|
||||
bool
|
||||
default y
|
||||
|
||||
config SOC_PM_SUPPORT_EXT_WAKEUP
|
||||
bool
|
||||
default y
|
||||
|
@ -404,7 +404,10 @@
|
||||
|
||||
|
||||
/*-------------------------- Power Management CAPS ---------------------------*/
|
||||
#define SOC_PM_SUPPORT_EXT_WAKEUP (1)
|
||||
#define SOC_PM_SUPPORT_EXT0_WAKEUP (1)
|
||||
#define SOC_PM_SUPPORT_EXT1_WAKEUP (1)
|
||||
#define SOC_PM_SUPPORT_EXT_WAKEUP (1) /*!<Compatible to the old version of IDF */
|
||||
|
||||
#define SOC_PM_SUPPORT_WIFI_WAKEUP (1)
|
||||
#define SOC_PM_SUPPORT_BT_WAKEUP (1)
|
||||
#define SOC_PM_SUPPORT_TOUCH_SENSOR_WAKEUP (1) /*!<Supports waking up from touch pad trigger */
|
||||
|
@ -36,7 +36,6 @@ api-reference/network/esp-wifi-mesh
|
||||
api-reference/network/esp_smartconfig
|
||||
api-reference/network/esp_wifi
|
||||
api-reference/network/index
|
||||
api-reference/system/sleep_modes
|
||||
api-reference/system/ulp_macros
|
||||
api-reference/system/ulp
|
||||
api-reference/system/efuse
|
||||
|
@ -42,7 +42,7 @@ Dynamic frequency scaling (DFS) and automatic light sleep can be enabled in an a
|
||||
|
||||
In light sleep, peripherals are clock gated, and interrupts (from GPIOs and internal peripherals) will not be generated. A wakeup source described in the :doc:`sleep_modes` documentation can be used to trigger wakeup from the light sleep state.
|
||||
|
||||
.. only:: SOC_PM_SUPPORT_EXT_WAKEUP
|
||||
.. only:: SOC_PM_SUPPORT_EXT0_WAKEUP or SOC_PM_SUPPORT_EXT1_WAKEUP
|
||||
|
||||
For example, the EXT0 and EXT1 wakeup sources can be used to wake up the chip via a GPIO.
|
||||
|
||||
|
@ -71,7 +71,7 @@ RTC peripherals or RTC memories don't need to be powered on during sleep in this
|
||||
|
||||
:cpp:func:`esp_sleep_enable_touchpad_wakeup` function can be used to enable this wakeup source.
|
||||
|
||||
.. only:: SOC_PM_SUPPORT_EXT_WAKEUP
|
||||
.. only:: SOC_PM_SUPPORT_EXT0_WAKEUP or SOC_PM_SUPPORT_EXT1_WAKEUP
|
||||
|
||||
External Wakeup (ext0)
|
||||
^^^^^^^^^^^^^^^^^^^^^^
|
||||
@ -127,11 +127,11 @@ RTC peripherals or RTC memories don't need to be powered on during sleep in this
|
||||
GPIO Wakeup (Light-sleep Only)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. only:: SOC_PM_SUPPORT_EXT_WAKEUP
|
||||
.. only:: (SOC_PM_SUPPORT_EXT0_WAKEUP or SOC_PM_SUPPORT_EXT1_WAKEUP)
|
||||
|
||||
In addition to EXT0 and EXT1 wakeup sources described above, one more method of wakeup from external inputs is available in Light-sleep mode. With this wakeup source, each pin can be individually configured to trigger wakeup on high or low level using :cpp:func:`gpio_wakeup_enable` function. Unlike EXT0 and EXT1 wakeup sources, which can only be used with RTC IOs, this wakeup source can be used with any IO (RTC or digital).
|
||||
|
||||
.. only:: not SOC_PM_SUPPORT_EXT_WAKEUP
|
||||
.. only:: not (SOC_PM_SUPPORT_EXT0_WAKEUP or SOC_PM_SUPPORT_EXT1_WAKEUP)
|
||||
|
||||
One more method of wakeup from external inputs is available in Light-sleep mode. With this wakeup source, each pin can be individually configured to trigger wakeup on high or low level using :cpp:func:`gpio_wakeup_enable` function. This wakeup source can be used with any IO (RTC or digital).
|
||||
|
||||
@ -257,7 +257,7 @@ Checking Sleep Wakeup Cause
|
||||
|
||||
For touchpad, it is possible to identify which touch pin has caused wakeup using :cpp:func:`esp_sleep_get_touchpad_wakeup_status` functions.
|
||||
|
||||
.. only:: SOC_PM_SUPPORT_EXT_WAKEUP
|
||||
.. only:: SOC_PM_SUPPORT_EXT1_WAKEUP
|
||||
|
||||
For ext1 wakeup sources, it is possible to identify which touch pin has caused wakeup using :cpp:func:`esp_sleep_get_ext1_wakeup_status` functions.
|
||||
|
||||
|
@ -42,7 +42,7 @@ ESP-IDF 中集成的电源管理算法可以根据应用程序组件的需求,
|
||||
|
||||
Light-sleep 状态下,外设设有时钟门控,不会产生来自 GPIO 和内部外设的中断。:doc:`sleep_modes` 文档中所提到的唤醒源可用于从 Light-sleep 状态触发唤醒。
|
||||
|
||||
.. only:: SOC_PM_SUPPORT_EXT_WAKEUP
|
||||
.. only:: SOC_PM_SUPPORT_EXT0_WAKEUP or SOC_PM_SUPPORT_EXT1_WAKEUP
|
||||
|
||||
例如,EXT0 和 EXT1 唤醒源可以通过 GPIO 唤醒芯片。
|
||||
|
||||
|
@ -71,7 +71,7 @@ RTC 控制器中内嵌定时器,可用于在预定义的时间到达后唤醒
|
||||
|
||||
可调用 :cpp:func:`esp_sleep_enable_touchpad_wakeup` 函数来启用该唤醒源。
|
||||
|
||||
.. only:: SOC_PM_SUPPORT_EXT_WAKEUP
|
||||
.. only:: SOC_PM_SUPPORT_EXT0_WAKEUP or SOC_PM_SUPPORT_EXT1_WAKEUP
|
||||
|
||||
外部唤醒 (ext0)
|
||||
^^^^^^^^^^^^^^^^^^^^^^
|
||||
@ -127,11 +127,11 @@ RTC 控制器中内嵌定时器,可用于在预定义的时间到达后唤醒
|
||||
GPIO 唤醒(仅适用于 Light-sleep 模式)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. only:: SOC_PM_SUPPORT_EXT_WAKEUP
|
||||
.. only:: SOC_PM_SUPPORT_EXT0_WAKEUP or SOC_PM_SUPPORT_EXT1_WAKEUP
|
||||
|
||||
除了上述 EXT0 和 EXT1 唤醒源之外,还有一种从外部唤醒 Light-sleep 模式的方法——使用函数 :cpp:func:`gpio_wakeup_enable`。启用该唤醒源后,可将每个管脚单独配置为在高电平或低电平时唤醒。EXT0 和 EXT1 唤醒源只能用于 RTC IO,但此唤醒源既可以用于 RTC IO,可也用于数字 IO。
|
||||
|
||||
.. only:: not SOC_PM_SUPPORT_EXT_WAKEUP
|
||||
.. only:: not (SOC_PM_SUPPORT_EXT0_WAKEUP or SOC_PM_SUPPORT_EXT1_WAKEUP)
|
||||
|
||||
此外,还有一种从外部唤醒 Light-sleep 模式的方法。启用该唤醒源后,可将每个管脚单独配置为在高电平或低电平时调用 :cpp:func:`gpio_wakeup_enable` 函数触发唤醒。此唤醒源既可以用于 RTC IO,可也用于数字 IO。
|
||||
|
||||
@ -257,7 +257,7 @@ UART 输出处理
|
||||
|
||||
对于触摸传感器唤醒源,可以调用函数 :cpp:func:`esp_sleep_get_touchpad_wakeup_status` 来确认触发唤醒的触摸管脚。
|
||||
|
||||
.. only:: SOC_PM_SUPPORT_EXT_WAKEUP
|
||||
.. only:: SOC_PM_SUPPORT_EXT1_WAKEUP
|
||||
|
||||
对于 ext1 唤醒源,可以调用函数 :cpp:func:`esp_sleep_get_ext1_wakeup_status` 来确认触发唤醒的触摸管脚。
|
||||
|
||||
|
@ -216,7 +216,7 @@ static int deep_sleep(int argc, char **argv)
|
||||
ESP_LOGI(TAG, "Enabling wakeup on GPIO%d, wakeup on %s level",
|
||||
io_num, level ? "HIGH" : "LOW");
|
||||
|
||||
#if SOC_PM_SUPPORT_EXT_WAKEUP
|
||||
#if SOC_PM_SUPPORT_EXT1_WAKEUP
|
||||
ESP_ERROR_CHECK( esp_sleep_enable_ext1_wakeup(1ULL << io_num, level) );
|
||||
#endif
|
||||
}
|
||||
|
@ -224,7 +224,7 @@ static void register_tasks(void)
|
||||
|
||||
static struct {
|
||||
struct arg_int *wakeup_time;
|
||||
#if SOC_PM_SUPPORT_EXT_WAKEUP
|
||||
#if SOC_PM_SUPPORT_EXT0_WAKEUP || SOC_PM_SUPPORT_EXT1_WAKEUP
|
||||
struct arg_int *wakeup_gpio_num;
|
||||
struct arg_int *wakeup_gpio_level;
|
||||
#endif
|
||||
@ -245,7 +245,7 @@ static int deep_sleep(int argc, char **argv)
|
||||
ESP_ERROR_CHECK( esp_sleep_enable_timer_wakeup(timeout) );
|
||||
}
|
||||
|
||||
#if SOC_PM_SUPPORT_EXT_WAKEUP
|
||||
#if SOC_PM_SUPPORT_EXT1_WAKEUP
|
||||
if (deep_sleep_args.wakeup_gpio_num->count) {
|
||||
int io_num = deep_sleep_args.wakeup_gpio_num->ival[0];
|
||||
if (!esp_sleep_is_valid_wakeup_gpio(io_num)) {
|
||||
@ -266,7 +266,7 @@ static int deep_sleep(int argc, char **argv)
|
||||
ESP_ERROR_CHECK( esp_sleep_enable_ext1_wakeup(1ULL << io_num, level) );
|
||||
ESP_LOGE(TAG, "GPIO wakeup from deep sleep currently unsupported on ESP32-C3");
|
||||
}
|
||||
#endif // SOC_PM_SUPPORT_EXT_WAKEUP
|
||||
#endif // SOC_PM_SUPPORT_EXT1_WAKEUP
|
||||
|
||||
#if CONFIG_IDF_TARGET_ESP32
|
||||
rtc_gpio_isolate(GPIO_NUM_12);
|
||||
@ -280,7 +280,7 @@ static void register_deep_sleep(void)
|
||||
int num_args = 1;
|
||||
deep_sleep_args.wakeup_time =
|
||||
arg_int0("t", "time", "<t>", "Wake up time, ms");
|
||||
#if SOC_PM_SUPPORT_EXT_WAKEUP
|
||||
#if SOC_PM_SUPPORT_EXT0_WAKEUP || SOC_PM_SUPPORT_EXT1_WAKEUP
|
||||
deep_sleep_args.wakeup_gpio_num =
|
||||
arg_int0(NULL, "io", "<n>",
|
||||
"If specified, wakeup using GPIO with given number");
|
||||
@ -293,7 +293,7 @@ static void register_deep_sleep(void)
|
||||
const esp_console_cmd_t cmd = {
|
||||
.command = "deep_sleep",
|
||||
.help = "Enter deep sleep mode. "
|
||||
#if SOC_PM_SUPPORT_EXT_WAKEUP
|
||||
#if SOC_PM_SUPPORT_EXT0_WAKEUP || SOC_PM_SUPPORT_EXT1_WAKEUP
|
||||
"Two wakeup modes are supported: timer and GPIO. "
|
||||
#else
|
||||
"Timer wakeup mode is supported. "
|
||||
|
@ -15,7 +15,7 @@ menu "Example Configuration"
|
||||
bool "Enable wakeup from GPIO (ext0)"
|
||||
default y if !IDF_TARGET_ESP32
|
||||
default n if IDF_TARGET_ESP32
|
||||
depends on SOC_PM_SUPPORT_EXT_WAKEUP
|
||||
depends on SOC_PM_SUPPORT_EXT0_WAKEUP
|
||||
help
|
||||
This option enables wake up from deep sleep from GPIO25(ESP32)/GPIO3(ESP32S2,S3). The pin should be
|
||||
connected to LOW to avoid being in a floating state. When triggering a wake up, connect the pin to HIGH.
|
||||
@ -26,7 +26,7 @@ menu "Example Configuration"
|
||||
config EXAMPLE_EXT1_WAKEUP
|
||||
bool "Enable wakeup from GPIO (ext1)"
|
||||
default y
|
||||
depends on SOC_PM_SUPPORT_EXT_WAKEUP
|
||||
depends on SOC_PM_SUPPORT_EXT1_WAKEUP
|
||||
help
|
||||
This option enables wake up from deep sleep from GPIO2 and GPIO4. They should be connected to LOW to avoid
|
||||
floating pins. When triggering a wake up, connect one or both of the pins to HIGH. Note that floating
|
||||
|
Loading…
x
Reference in New Issue
Block a user