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

相关推荐
崇山峻岭之间1 小时前
HC32F460PETB的PB2的Vout123
单片机
恶魔泡泡糖1 小时前
stm32F103C8T6标准库串口接收之中断方式2
stm32·单片机·嵌入式硬件
充哥单片机设计1 小时前
【STM32开源项目】智能小区充电桩
stm32·单片机·嵌入式硬件·毕业设计·小区充电桩·智能小区充电桩
嵌入式-老费2 小时前
esp32开发与应用(如何解决SoC冷启动的问题)
单片机·嵌入式硬件
充哥单片机设计3 小时前
【STM32开源项目】智能语音台灯
stm32·单片机·嵌入式硬件·毕业设计·单片机设计·智能语音台灯
EatFan4 小时前
全栈自造 Status Deck(四):硬件终于到了,从点亮屏幕到跑通第一个 Demo
单片机·物联网·esp32
sunoo-2294 小时前
【嵌入式裸机开发Day04】i.MX6ULL 蜂鸣器驱动详解:从引脚地址查找到代码实现全流程
arm开发·单片机·嵌入式硬件·学习·串口·裸机
Brilliantwxx5 小时前
【STM32】 SPI阻塞式通信与HAL源码 (源码分析)
stm32·单片机·嵌入式硬件
Doraemomo5 小时前
IMX6ULL裸机开发——PWM
arm开发·嵌入式硬件·imx6ull
老当益壮梁奶奶6 小时前
ARM汇编学习笔记(五):从按键轮询到 GIC 中断控制器(ARM Cortex-A7 )
arm开发·笔记·单片机·嵌入式硬件