ESP32 C3深度睡眠唤醒不稳定问题求助
ESP32 C3深度睡眠唤醒不稳定问题求助
各位大佬好,我最近碰到个头疼的问题,想请大家帮忙分析下我哪里出错了。
我自己做了一块ESP32 C3的自定义开发板,用18650电池供电,板上集成了充电电路和电池保护电路。原本设计的逻辑是:ESP32 C3运行30秒后进入深度睡眠,之后通过GPIO2引脚的按键唤醒,按键配置的是内部下拉电阻。
可现在的情况是,这个唤醒功能时好时坏——有时候能正常被按键唤醒,有时候就直接卡在睡眠状态,怎么按都没反应。
我现在有几个疑问想请教大家:
- 有没有什么巧妙的办法,能用看门狗定时器来检查GPIO唤醒功能是否正常启用了?
- 会不会是我的电池保护电路出问题了?我发现当板子连接编程器的时候,睡眠模式失效的情况好像少很多。
- GPIO2是不是ESP32 C3的特殊引脚?会不会是引脚的某种特性影响了唤醒功能?
- 有没有大佬遇到过类似的不稳定唤醒情况?
我把相关的电路原理图和代码贴出来:
GPIO配置及进入睡眠的代码
gpio_config_t io_conf = {}; io_conf.intr_type = GPIO_INTR_ANYEDGE; io_conf.mode = GPIO_MODE_INPUT; io_conf.pin_bit_mask = GPIO_INPUT_PIN_SEL; io_conf.pull_down_en = GPIO_PULLDOWN_ENABLE; io_conf.pull_up_en = GPIO_PULLUP_DISABLE; gpio_config(&io_conf); esp_deep_sleep_enable_gpio_wakeup((1ULL<<GPIO_INPUT_IO_RIGHT), ESP_GPIO_WAKEUP_GPIO_HIGH); esp_deep_sleep_start();
到目前为止,我还没找到故障出现的规律,完全摸不清什么时候会正常工作,什么时候会卡住。
备注:内容来源于stack exchange,提问作者Niklas Jakob




