esp的深度睡眠关机功耗很高,一般软件方面应该查哪里?

一般先从这几处查,软件侧最常见:

  1. 先确认真的进了 Deep Sleep

    • 看日志是不是已经执行到 esp_deep_sleep_start()

    • 上电后打印 esp_sleep_get_wakeup_cause(),确认不是刚睡下又被立刻唤醒

    • 如果功耗是 mA 级,很多时候不是深睡眠没进去,就是反复唤醒了

  2. 查唤醒源是不是配错

    • 定时器、GPIO、触摸、UART、ULP 有没有误开

    • GPIO 唤醒脚是否悬空、极性是否配反,导致一进睡眠就醒

    • 先只保留一个最简单的唤醒源测试,比如只开 timer

  3. 睡前有没有把外设都关干净

    • Wi-Fi / BT:esp_wifi_stop()esp_bt_controller_disable()esp_bluedroid_disable()

    • UART、ADC、I2C、SPI、LED、传感器电源控制脚是否还在工作

    • 某些任务/定时器/中断如果还在跑,说明根本没真正进入深睡

  4. 查 RTC 电源域有没有被保留

    • 重点看有没有显式保留:

      • ESP_PD_DOMAIN_RTC_PERIPH

      • ESP_PD_DOMAIN_RTC_SLOW_MEM

      • ESP_PD_DOMAIN_RTC_FAST_MEM

      • ESP_PD_DOMAIN_XTAL

    • 如果不需要,尽量关掉,例如:

      复制代码

      esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_PERIPH, ESP_PD_OPTION_OFF);

      esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_SLOW_MEM, ESP_PD_OPTION_OFF);

      esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_FAST_MEM, ESP_PD_OPTION_OFF);

  5. 查 GPIO 状态

    • 睡前 GPIO 电平是否导致外部电路漏电

    • 某些 IO 内部上下拉没关,或者外部上下拉打架,会明显增大功耗

    • 特别查:

      • 接 MOS 管使能脚

      • 传感器 EN 脚

      • 电平转换芯片 OE 脚

      • 外挂 Flash / PSRAM / 屏幕背光 / LDO EN

  6. 查是否用了 GPIO hold / RTC IO 配置不当

    • gpio_hold_en() / gpio_deep_sleep_hold_en() 有时能稳住电平省电

    • 但配错也可能让外围一直处于耗电状态

    • RTC IO 如果作为唤醒脚,注意其上下拉和方向配置

  7. 查日志和调试配置

    • 串口日志本身不会让 deep sleep 一直高很多,但如果程序在睡前还卡在打印、flush、等待事件,就会误以为"睡了"

    • 先用最小代码验证:

      复制代码

      void app_main(void)

      {

      esp_sleep_enable_timer_wakeup(10 * 1000000ULL);

      esp_deep_sleep_start();

      }

    • 如果这个版本功耗正常,说明问题就在你业务初始化/外设/唤醒配置里

  8. 查有没有"反复重启"而不是"持续休眠"

    • 很多板子看起来是深睡高功耗,实际上是:

      • 睡下去

      • 被错误唤醒

      • 又启动一遍

      • 再睡

    • 这样平均电流就很高

    • 先做一个最小 deep sleep 示例 测功耗

      再一项项加回:

    • 先加唤醒源

    • 再加 GPIO 配置

    • 这样最快定位。

    • 再加外设初始化

    • 最后加 Wi-Fi / BLE

相关推荐
Linux猿21 分钟前
基于单片机的自行车里程表设计|附源码
单片机·嵌入式硬件·嵌入式·课程设计
学嵌入式的小杨同学2 小时前
STM32 进阶封神之路(三十九)FreeRTOS 临界区、挂起 / 删除、钩子函数、调度底层原理|从应用到内核深度解析
c++·stm32·单片机·嵌入式硬件·mcu·硬件架构·pcb
恒森宇电子有限公司4 小时前
南麟SA8304 单通道 H 桥直流有刷电机驱动芯片 ESOP8封装
单片机·嵌入式硬件
FreakStudio4 小时前
ESP32 实现在线动态安装库和自动依赖安装-使用uPyPI包管理平台
python·单片机·嵌入式·面向对象·电子diy·sourcetrail
4caf15 小时前
【51单片机】26/4/2 --0416
单片机·嵌入式硬件·51单片机
EmbeddedCore6 小时前
硬核实战:基于 C 语言宏定义的物联网网关命令分发框架设计
单片机·嵌入式
EmbeddedCore7 小时前
轻量级消息防重模块全解析:从原理到高性能优化
linux·运维·服务器·嵌入式硬件
啃玉米的艺术家8 小时前
中断 ------ 中断方式
嵌入式硬件
悠哉悠哉愿意8 小时前
【物联网学习笔记】ADC
笔记·单片机·嵌入式硬件·物联网·学习
foundbug9999 小时前
基于STM32的步进电机加减速程序设计(梯形加减速算法)
stm32·单片机·算法