ESP 低功耗入门

news2025/1/17 3:57:14

此篇博客以 ESP32 为例来说明 ESP 的睡眠模式。

ESP32 芯片可以大致分成以为五个模块:

  • RF 模块,也就是射频模块,用于蓝牙 / Wi-Fi 的收发(TX / RX)功能。
  • CPU,如 Xtensa 内核 (ESP32 / ESP32-S2 / ESP32-S3),RISC-V 内核(ESP32-C3 / ESP32-C2)。
  • 无线数字模块,包括 Wi-Fi 和蓝牙的物理层,如 Wi-Fi 的 MAC,蓝牙的 Link controller。
  • 非 RTC 外设,如常用的 SPI, I2C, LEDC 等
  • RTC 相关。包括 RTC GPIO, ULP 等。

处于工作状态的模块越多,芯片功耗越大,ESP32 一共有四种工作模式,按照运行时的平均功耗由高到底排序,依次为 active, modem sleep, light sleep 和 deep sleep。不同的工作模式下的各模块状态如图 1-1 所示:
在这里插入图片描述

图 1-1 不同工作模式下的模块运行状态

1.1. active 模式

该模式下所有的模块都可以正常使用,此时芯片的底电流大约为 20 ~40 mA。

1.2. modem sleep 模式

该模式也就是通常的 Wi-Fi 保活模式。在该模式下 RF 射频模块将被关闭,芯片的底电流会在 20 mA 左右。该模式只能应用于 STA 模式,是否开启由 esp_err_t esp_wifi_set_ps(wifi_ps_type_t type) 这一个 API 决定。

  • type= WIFI_PS_NONE, 关闭 modem sleep,此时 RF 会一直处于打开状态。

  • type= WIFI_PS_MIN_MODEM,芯片每隔一个 DTIM 会和路由器进行一次交互,交互结束就暂时关闭 RF,然后在下一个 DTIM 再醒来。(补充内容:DTIM 和 listen interval 的区别)

  • type= WIFI_PS_MAX_MODEM,每隔一个 listen interval 会和路由器进行一次交互,交互结束就暂时关闭 RF,然后在下一个 listen interval 醒来。

ESP32 的 STA 默认是 WIFI_PS_MIN_MODEM,因此 modem sleep 模式是默认打开的。

1.3. light sleep 模式

该模式下 RF 模块会被关闭,除 RTC 相关模块外大多数模块都会被下电或者进行动态频率调节,以此来达到功耗降低的结果。此时的芯片底电流可以参考 datasheet 上的功耗,如 ESP32-C3 为 130 μA,ESP32-S3 为 240 μA。

1.4. deep sleep 模式

Deep sleep 模式下除 RTC 模块外全部被下电,底电流可以参考 datasheet,ESP32-C3 为 5 μA,ESP32-S3 为7 μA。

1.5. 唤醒源

处于 light sleep 和 deep sleep状态的芯片可以被唤醒,light sleep 和 deep sleep 唤醒源分别如表 1-1 和表 1-2 所示。各唤醒源的具体使用可以查看我们的light sleep例程以及 IDF 编程指南。

表 1-1 light sleep 唤醒源
ESP32ESP32-S2ESP32-S3ESP32-C3
Timer
GPIO
EXT0
EXT1
UART
Touch
表 1-2 deep sleep 唤醒源
ESP32ESP32-S2ESP32-S3ESP32-C3
Timer
GPIO
EXT0
EXT1
UART
Touch
ULP-FSM
ULP-RISCV

1.6.注意事项

  • EXT0 和 EXT1 只能用于 RTC GPIO,和 GPIO 唤醒相比需要保持的硬件电源域不同,实际使用体验差别不大。
  • ESP32 不支持 UART 唤醒中断,其余芯片在 IDF 版本 4.4 及以后都支持 UART 唤醒中断,但是真正可以应用 UART 中断要在最新的 master 上,如果想在 4.4 上应用 UART 中断需要自己修改驱动。
  • UART 中断需要一定数量字节用于唤醒,所以如果想要使用 UART 中断需要约定好唤醒规则。
  • Deep sleep 的唤醒源和 light sleep 类似,多了 ULP (协处理器) 唤醒。ESP32 只能使用 ULP-FSM,需要用汇编进行唤醒程序的编写,ESP32-S2 / ESP32-S3 还能使用 ULP-RISCV,运用 C 语言进行协处理器程序的编写。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/93680.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ssm项目-商城管理系统

1 逆向工程设计 1.1 xml文件配置&#xff08;generatorConfig.xml&#xff09; <?xml version"1.0" encoding"UTF-8"?> <!DOCTYPE generatorConfigurationPUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"&q…

滑动窗口的最大值【滑动窗口问题】

文章目录题目解题思路代码展示题目 给定一个长度为 n 的数组 num 和滑动窗口的大小 size &#xff0c;窗口从最左边滑动到最右边&#xff0c;每次向右边滑动一个位置&#xff0c;找出所有滑动窗口里数值的最大值。 窗口大于数组长度或窗口长度为0的时候&#xff0c;返回空 数…

硬件需知知识 -- 基本元件(电阻)

一、电阻 1.1 贴片电阻 1.1.1 贴片电阻的封装大小是和功率时相关的。 封装大小功率(W)0201120\frac{1}{20}201​0402116\frac{1}{16}161​0603110\frac{1}{10}101​080518\frac{1}{8}81​12060.2518120.5或1201012\frac{1}{2}21​25121或者21.1.2 贴片电阻读数 贴片电阻的读数…

Spring Security 竟然可以同时存在多个过滤器链?

目录Spring Security 中的过滤器多个过滤器链多个过滤器链配置例子http.authorizeRequests() 开头是什么意思&#xff1f;引用Spring Security 中的过滤器 Spring Security 中认证、授权功能的实现机制是通过过滤器来实现的。Spring Security 中一共提供了 32 个过滤器&#x…

Nacos集群版本安装(三)

一、前言 注&#xff1a;我这里的nacos集群安装环境使用的是本地MacOs系统&#xff0c;使用的是同一个IP不同端口&#xff0c;这里就不再讲解具体的目录结构之内的了&#xff0c;下面我们开始演示具体的配置和安装。了解nacos单机版本安装 二、nacos集群安装部署&#xff1a; …

Redis常见面试题(二)

目录 1、Redis和Memcached有什么区别? 2、Redis支持哪些数据类型? 3、Redis支持JSON数据类型吗?为什么? 4、Redis模块系统有什么用? 5、Redis支持对象映射模型吗? 6、Redis默认支持多少个数据库?怎么修改? 7、Redis SET命令可以代替SETNX吗? 8、Redis单个实例最…

【浅学Java】索引的分类、创建、删除以及新特性

索引的创建和设计原则1. 索引的分类1.1 普通索引1.2 唯一性索引1.3 主键索引1.4 单列索引1.5 多列&#xff08;联合&#xff0c;组合&#xff09;索引1.6 全文索引2. 索引的创建2.1 创建表时创建索引1. 隐式创建2. 显式创建3. 全文检索2.2 创建表后创建索引1. alter table 的方…

基于java(ssm)家教管理平台(java毕业设计)

基于java&#xff08;ssm&#xff09;家教管理平台 家教管理&#xff0c;是基于java变成语言&#xff0c;mysql数据库&#xff0c;ssm框架和idea工具开发&#xff0c;本系统分为用户&#xff0c;管理员&#xff0c;教师三个角色&#xff0c;其中用户可以注册&#xff0c;登陆&…

网络工程师之海明校验

海明校验&#xff08;又称汉明码&#xff09; 基本思想 将有效信息按某种规律分成若干组&#xff0c;每组安排一个校验位&#xff0c;做奇偶测试&#xff0c;就能提供多位检错信息&#xff0c;以指出最大可能是哪位出错&#xff0c;从而将其纠正。 特点 它不仅具有检测错误的…

深入浅出网络编程TCP,UDP,Socket,Http网络编程面试题

目录 什么是网络编程 网络编程中的主要问题 计算机网络体系结构 TCP / UDP Socket HTTP 什么是网络编程 网络编程中的主要问题 计算机网络体系结构 OSI参考模型 OSI&#xff08;Open System Interconnect&#xff09;&#xff0c;即开放式系统互联。一般都叫OSI参考模型&…

Geoserver提示HTTP ERROR 503 Service Unaviaiable以及Context initialization failed

场景 GeoServer简介、下载、配置启动、发布shapefile全流程(图文实践)&#xff1a; GeoServer简介、下载、配置启动、发布shapefile全流程(图文实践)_霸道流氓气质的博客-CSDN博客_geoserver简介 geoserver版本为2.19.2&#xff0c;在windows10系统中正常启动并运行后&#…

教程篇 | 史上最简单也最全新手Revit教程

Hi&#xff0c;朋友们&#xff0c;我是建模助手。 近期发现&#xff0c;后台留言的画风日渐扭曲&#xff0c;很多用户的私信内容不仅跟有求必应无关&#xff0c;甚至跟建模助手也无关&#xff0c;而是关于Revit的问题。&#xff08;这就很离谱了&#xff09; 但后来小编也算是…

MySQL数据库入门到精通,从mysql安装到mysql高级、mysql优化全囊括

1、存储引擎 1.1、MySQL体系结构 连接层&#xff1a;最上层是一些客户端和链接服务&#xff0c;主要完成一些类似于连接处理、授权认证以及相关的安全方案。服务器也会为安全接入的每个客户端验证它所具有的操作权限。服务层&#xff1a;第二层架构主要完成大多数的核心服务功…

Qt6 qtmqtt编译及演示示例(附带动态库)

前言 随着物联网的不断发展&#xff0c;如今很多项目都需要接入&#xff0c;而两年前也是因为项目需要&#xff0c;了解了一些关于mqtt的用法&#xff0c;并将其过程记录成几篇博客&#xff0c;近一年多时间陆陆续续有好多人私信咨询关于mqtt相关的问题&#xff0c;其中又有很…

ReentrantLock源码分析AQS原理

目录 (一)AQS简介 (二)AQS原理剖析 (三)源码思想-加锁&#xff1a; (1)构造方法 (2)公平锁lock方法(核心) 3、acquire获取资源方法(核心) (一)AQS简介 AQS是AbstractQueuedSynchronizer的简称,是一种实现阻塞锁和依赖FIFO队列的同步器框架。其依赖于一个原子变量state,子…

Unity Text Mesh Pro 浮动文字-学习

TextMeshPro&#xff08;TMP&#xff09;是unity的一套UI文字方案&#xff0c;支持对顶点、颜色进行编辑&#xff0c;自定义强&#xff0c;可扩展等优点。 对于英文数字即字符只需制作ASCII的文件即可&#xff0c;但是对于中文&#xff0c;如果我们的文字需要动态生成且不可控…

k8s教程(19)-pod之批处理调度

文章目录01 引言02 批处理调度2.1 任务模式分类2.1.1 按实现方式分类2.1.2 按批处理并行分类2.1 案例2.1.1 Job Template Expansion案例2.1.2 Queue with Pod Per Work Item案例2.1.3 Queue with Variable Pod Count案例03 文末01 引言 声明&#xff1a;本文为《Kubernetes权威…

思维方式之系统思维

这世界上的所有事物&#xff0c;都被规律作用着&#xff0c;以一种叫作“系统”的方式存在着。 我们身处时代这个大系统之中&#xff0c;如果没有一种全局的系统观&#xff0c;很容易就会和机遇失之交臂。凡事要顺势而为&#xff0c;用“个位”的管理对抗“千位”的时代&#…

精华推荐 |【Redis技术探索】「底层架构原理」深入透析主从架构的底层原理分析实现机制

&#x1f4d5;技术箴言 当心中有更高的山峰去攀登&#xff0c;就不会在意脚下的泥沼。 &#x1f4d5;前提概要 Redis高可用的方案包括&#xff1a;持久化、主从复制&#xff08;及读写分离&#xff09;、哨兵和集群&#xff08;Cluster&#xff09;。 &#x1f4d5;&#x1f…

音视频面试涨知识(四)

视频格式播放体验流量占用情况DASH统计直播推流端到播放端延时。支持和视频帧绑定的内容交互。比如&#xff0c;直播答题在播放端的弹窗等。小HLS对视频进行切片&#xff0c;按切片播放&#xff0c;缓存小起播快&#xff1b;拖动时间轴到任意时间播放时&#xff0c;可以快速定位…