news 2026/2/26 1:20:00

S3 + Deep-sleep + EXT1 电平唤醒后功耗到 ~130 µA 量级

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
S3 + Deep-sleep + EXT1 电平唤醒后功耗到 ~130 µA 量级

你这个现象(S3 + Deep-sleep + EXT1 电平唤醒后功耗到 ~130 µA 量级)很常见,通常不是“CPU没睡”,而是EXT1 把 GPIO 作为 RTC IO 输入在工作,再叠加IO电平不够“干净”(靠 300k 下拉太弱、落在阈值附近)某些 IO/外设漏电,就会到 100µA+。

下面给你一套“最有效、最容易验证”的降功耗路线(按收益从大到小):


1) 先确认:是不是 EXT1 把你拉到更高的 Deep-sleep 子模式

ESP32-S3 的 Deep-sleep 有子模式;文档明确提到:当使用“RTC IO 作为输入”等特性时,芯片无法进入更极限的 ultra low 模式,功耗会更高。
而 EXT1 恰好就是用 RTC 控制器监测 RTC IO 输入(并且会在 RTC 外设断电时用 HOLD 锁住管脚状态来保证唤醒仍可用)。

👉 这意味着:如果你必须用 EXT1 电平唤醒,S3 的 deep-sleep 电流比 ESP32 经典款更高是有可能“正常”的,你要靠“把 IO 状态做到最省电”去抠下来。


2) 300k 下拉太弱:很容易把 GPIO6 拉到“半高不高”的模拟阈值区

你自己也测到了:

  • GPIO6 直接短地:130 µA

  • GPIO6 300k 下拉:160 µA(更高)

这非常像管脚在 deep-sleep 时被内部/外部漏电“顶起来”,300k 压不住,电压落在输入阈值附近 →输入缓冲/比较器附近抖动,电流上去。

✅ 建议你直接试两种之一(都很常用):

  • 把外部下拉改成 47k~100k(先用 47k 最稳)

  • 或者不用外部下拉,改用 RTC 内部下拉 + HOLD(见下面代码)


3) 关键软件配置:用 RTC IO 下拉 + HOLD(别只看你贴的 IO DUMP)

你贴的 IO DUMP(Pullup=0 Pulldown=0 InputEn=0…)多半是数字 GPIO 域的状态;而 EXT1 会把 pad 配到RTC IO 域,数字域 dump 往往不代表最终睡眠态。文档也强调 EXT1 会把 IO pad 配成 RTC IO。

你可以按下面方式把 GPIO6 在睡眠前固定成“省电的低电平输入 + 下拉 + HOLD”:

#include "esp_sleep.h"

#include "driver/rtc_io.h"

#define WAKE_GPIO GPIO_NUM_6

void go_sleep(void)

{

// 1) 把 GPIO6 走 RTC IO 配置(EXT1 会用到 RTC IO)

rtc_gpio_init(WAKE_GPIO);

rtc_gpio_set_direction(WAKE_GPIO, RTC_GPIO_MODE_INPUT_ONLY);

// 2) 关上拉、开下拉(让它在睡眠里稳稳为低)

rtc_gpio_pullup_dis(WAKE_GPIO);

rtc_gpio_pulldown_en(WAKE_GPIO);

// 3) EXT1:ANY_HIGH 唤醒

esp_sleep_enable_ext1_wakeup_io(1ULL << WAKE_GPIO, ESP_EXT1_WAKEUP_ANY_HIGH);

// 4) 不需要 RTC memory 的话,关掉(只能省一点点,但建议做)

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);

esp_deep_sleep_start();

}

文档说明:EXT1 即使 RTC 外设断电也能唤醒,因为 IDF 会在入睡前把唤醒脚状态锁住(HOLD)并在唤醒后解除。
也说明了:关 RTC_PERIPH 时会用 HOLD 维持上下拉,这还“有助于进一步减小睡眠功耗”。


4) 把“其它 IO 漏电”抠掉:rtc_gpio_isolate 很有用

很多时候你看到的 100µA+ 并不是唤醒脚本身,而是其它 IO 还连着外设/电阻网络,睡眠时内部上下拉或外设 ESD 路径形成漏电。

ESP-IDF 文档明确建议:Deep-sleep 下可以isolate 一些 IO 来进一步降电流,用rtc_gpio_isolate()可以关掉该脚的输入输出/上下拉以避免漏电。

✅ 做法(思路):

  • 除了 GPIO6 以外,把**所有“连到外设/有上下拉/有电平”的 RTC IO(0~21)**逐个 isolate 测电流,找到“罪魁祸首”那几根。

  • 注意别 isolate 你真正需要保持状态的脚(比如电源使能脚)。


5) 兼容性坑:某些 IDF 版本/特定 GPIO 上,EXT1 会让管脚在 deep-sleep 出现“被抬高”导致额外耗电

社区里确实出现过类似现象:升级 IDF 后 deep-sleep 从 ~20µA 变 ~131µA,定位到EXT1 使某个 GPIO 在 deep-sleep 被抬到 ~0.79V/1.12V,如果外部有下拉就会额外耗电。

✅ 你可以快速验证是不是同类问题:

  1. 只保留最小程序:enable ext1 → deep_sleep

  2. deep-sleep 时用万用表量 GPIO6 电压(配 47k 下拉更好观察)

    • 若你看到0.5~1.2V 这种“悬空偏置”,优先:

    • 换一个 RTC IO 做 EXT1(比如 7/8/9…)对比电流

    • 或升级到更新的 ESP-IDF 分支/patch 版本再测


你现在这组数据我会怎么判断

  • 130µA(短地)已经说明:基础电流不低,不只是“300k 下拉电阻的电流”(300k 对 3.3V 也就 11µA)。

  • 300k 下拉更高,强烈暗示:GPIO6 在睡眠态可能被“顶到阈值附近”或有漏电路径,300k 压不住 → 额外耗电。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/25 4:05:14

告别微调!斯坦福提出Agentic上下文工程

想象一下&#xff0c;你正在教一个非常聪明的实习生完成一项复杂的工作。你有两种选择&#xff1a;一是给他一句非常精炼的指令&#xff0c;比如“把这份报告处理好”&#xff1b;二是给他一本详细的工作手册&#xff0c;里面记录了之前处理类似任务的成功经验、踩过的坑、具体…

作者头像 李华
网站建设 2026/2/15 11:46:53

防爆气象站:可在易燃易爆环境(如石油化工、煤矿等)中安全运行

超声波防爆气象站是一种专为易燃易爆环境设计的高精度气象监测设备&#xff0c;采用非接触式超声波技术&#xff0c;实时采集风速、风向、温度、湿度等气象参数。主要应用于石油化工、天然气开采、危化品存储等高风险区域&#xff0c;确保安全生产环境监测需求。一、安全可靠的…

作者头像 李华
网站建设 2026/2/24 20:42:49

基于深度学习YOLOv12的皮肤病识别检测系统(YOLOv12+YOLO数据集+UI界面+登录注册界面+Python项目源码+模型)

一、项目介绍 本文提出了一种基于深度学习YOLOv12的皮肤病识别检测系统&#xff0c;旨在实现对7类常见皮肤病变的自动化识别与分类。该系统整合了YOLOv12目标检测算法、定制化的皮肤病YOLO数据集&#xff08;包含Bowens Disease、Basal Cell Carcinoma等7类病变&#xff0c;总计…

作者头像 李华
网站建设 2026/2/25 15:16:13

PID十年演进

PID 控制&#xff08;Proportional-Integral-Derivative&#xff09; 的十年&#xff08;2015–2025&#xff09;&#xff0c;是从“经典自动化基石”向“智能化、自适应与 AI 深度融合”演进的十年。 作为工业控制界最长寿、应用最广&#xff08;覆盖超过 90% 控制回路&#x…

作者头像 李华
网站建设 2026/2/13 21:47:57

基于DeepSeek-OCR的智能合约审计:区块链安全新方案

基于DeepSeek-OCR的智能合约审计&#xff1a;区块链安全新方案 1. 当智能合约审计遇上OCR技术 你有没有遇到过这样的场景&#xff1a;一份DeFi项目的智能合约审计报告&#xff0c;密密麻麻几十页PDF&#xff0c;关键漏洞信息藏在某个表格角落里&#xff1b;或者项目方只提供截…

作者头像 李华