当前位置: 首页 > news >正文

西安网站建设l西安搜推宝网络厦门网站建设方案

西安网站建设l西安搜推宝网络,厦门网站建设方案,医生在网站上做自我宣传,wordpress 3.9 模板1. 简介 ESP32支持5种低功耗模式,低功耗管理单元包括调压器、功耗控制器、电源开关单元、电源域隔离单元 (Isolation Cell) 等部分。 1.1 RTC单元 RTC单元是ESP32低功耗管理的核心,可用于管理低功耗模式的进入和退出,控制时钟源、PLL、电源开…

1. 简介

        ESP32支持5种低功耗模式,低功耗管理单元包括调压器、功耗控制器、电源开关单元、电源域隔离单元 (Isolation Cell) 等部分。

1.1 RTC单元

        RTC单元是ESP32低功耗管理的核心,可用于管理低功耗模式的进入和退出,控制时钟源、PLL、电源开关和隔离单元以产生电源门控、时钟门控和复位信号。

        RTC单元主要包含以下几个模块:

  1. RTC主状态机:记录电源状态;
  2. 数字和模拟电源控制器:可用于为RTC的数字模块和模拟模块生成电源门控/时钟门控信号;
  3. 睡眠和唤醒控制器:可处理低功耗模式的进入和退出;
  4. 计时器:包括RTC主计时器、ULP协处理器计时器和触摸计时器;
  5. 低功耗处理器和传感器控制器:ULP协处理器、触摸控制器、SAR ADC控制器等;
  6. 保留内存:RTC慢速内存,绝大部分用作保留内存或存储ULP协处理器的指令和数据内存;RTC快速内存,绝大部分用作保留内存;
  7. 保留寄存器:该寄存器永远开启,可用于数据存储;
  8. RTC IO管脚:18 个“always-on”管脚,通常作为唤醒源。

1.2 低功耗时钟

        在低功耗模式下,ESP32的40 MHz晶振和PLL通常将断电以降低功耗,转而使用低功耗时钟维持工作。

        RTC模块可以使用5个低功耗时钟源:

  1. 外部低速晶振时钟XTL32K_CLK(32.768 kHz);
  2. 外部高速晶振时钟XTAL_DIV_CLK(2 MHz ~ 40 MHz);
  3. 内部RC振荡器RC_SLOW_CLK(频率可调,通常为150 kHz);
  4. 内部8MHz振荡器RC_FAST_CLK;
  5. 内部31.25 kHz时钟RC_FAST_DIV_CLK(来自内部8MHz振荡器,256分频)。

        以上的时钟源在RTC内部会区分成慢速时钟和快速时钟,每个RTC内部模块所使用的时钟类型是不同的;像RTC定时器、RTC主状态机和电源管理模块使用的是慢速时钟,ULP协处理器、传感器控制器、RTC内存和RTC寄存器使用的是快速时钟。

         对于数字内核(无线模块)则可以使用上面的4种时钟源。

1.3 低功耗模式

1. Active模式

  • CPU的工作时钟为XTAL_DIV_N(40 MHz/26 MHz)或PLL(80 MHz/160 MHz/240 MHz);
  • 芯片可以接收、发射或监听信号。

2. Modem-sleep模式

  • CPU可以工作,时钟可以配置;
  • Wi-Fi/蓝牙基带受时钟门限控制或关闭,射频模块关闭;
  • PLL 为 80 MHz 时,电流消耗:≈ 30 mA;
  • XTAL 为 2 MHz 时,电流消耗:≈ 3 mA;
  • 即刻唤醒;

3. Light-sleep模式

  • 内部 8 MHz 振荡器、40 MHz 高速晶振、PLL 及射频模块均禁用;
  • 数字内核时钟受门限限制,CPU暂停工作;
  • ULP 协处理器和触摸控制器可以周期性触发,对传感器进行监测;
  • 电流消耗:≈ 800 µA;
  • 唤醒延迟:< 1 ms;

4. Deep-sleep模式

  • 内部 8 MHz 振荡器、40 MHz 高速晶振、PLL 及射频模块均禁用;
  • 数字内核断电,CPU内容丢失;
  • RTC 内核的供电电压降至 0.7V;
  • 8 x 32 位数据保存在通用保留寄存器中;
  • RTC 内存和快速 RTC 内存可以保持;
  • 电流消耗:≈ 6.5 µA;
  • 唤醒延迟:< 1 ms。

5. 休眠模式

  • 内部 8 MHz 振荡器、40 MHz 高速晶振、PLL 及射频模块均禁用;
  • 数字内核断电,CPU 内容丢失;
  • RTC 外设域断电;
  • RTC 内核的供电电压降至 0.7V;
  • 8 x 32 位数据保存在通用保留寄存器中;
  • RTC 内存和快速 RTC 内存断电;
  • 电流消耗:≈ 4.5 µA;
  • 唤醒源:仅支持 RTC 计时器;
  • 唤醒延迟:< 1 ms。

1.4 唤醒源

唤醒源Light-sleepDeep-sleep休眠
EXT0YYN
EXT1YYY
GPIOYYN
RTC定时器YYY
SDIOYNN
WiFiYNN
UART0YNN
UART1YNN
TOUCHYYN
ULP协处理器YYN
蓝牙YNN

2. 例程

2.1 RTC定时器唤醒

        这个例程中配置RTC定时器,使处理器在进入深度睡眠后5秒自动唤醒。

#include "freertos/FreeRTOS.h"
#include "freertos/queue.h"
#include "esp_log.h"
#include "esp_sleep.h"#include <string.h>#define TAG "app"int app_main()
{while (1) {ESP_ERROR_CHECK(esp_sleep_enable_timer_wakeup(5 * 1000000));ESP_LOGI(TAG, "Enter deep sleep");esp_deep_sleep_start();ESP_LOGI(TAG, "Exit deep sleep");}
}

        idf对低功耗的封装是比较完善的,仅需两个函数就可以完成。

        esp_sleep_enable_timer_wakeup配置定时器唤醒的时间,单位为微秒。

默认情况下,RTC定时器的时钟源选择的是RC_SLOW_CLK,即内部150kHz振荡器,因为该时钟源的功耗是最小的。如果需要更改时钟源,需要修改CONFIG_RTC_CLK_SRC编译选项

        esp_deep_sleep_start使处理器进入深度睡眠模式;当然也可以调用esp_light_sleep_start进入浅睡眠模式。

         下面就是程序的系统打印log。需要注意的是,因为深度睡眠下CPU会断电,内部寄存器的内容丢失,所以唤醒后程序是从头开始执行的

2.2 按键唤醒

        这个例程中配置处理器进入深度睡眠,使用GPIO按键唤醒。

 

#include "freertos/FreeRTOS.h"
#include "freertos/queue.h"
#include "esp_log.h"
#include "esp_sleep.h"
#include "driver/rtc_io.h"#include <string.h>#define TAG "app"int app_main()
{esp_sleep_wakeup_cause_t cause = esp_sleep_get_wakeup_cause();if (cause == ESP_SLEEP_WAKEUP_EXT0) {ESP_LOGI(TAG, "Wake up by EXT0");}while (1) {ESP_ERROR_CHECK(esp_sleep_enable_ext0_wakeup(0, 0));ESP_ERROR_CHECK(rtc_gpio_pullup_en(0));  // 内部上拉ESP_ERROR_CHECK(rtc_gpio_pulldown_dis(0));ESP_LOGI(TAG, "Enter deep sleep");esp_deep_sleep_start();}
}

        如果要在深度睡眠模式下使用GPIO唤醒,必须使用RTC GPIO,ESP32中只有部分GPIO可以复用为该功能。

         我使用的是IO0作为唤醒脚。esp_sleep_enable_ext0_wakeup函数传入唤醒IO号和唤醒电平;0就是低电平唤醒,1就是高电平唤醒。

        rtc_gpio_pullup/pulldown_dis/en函数配置GPIO的上下拉,我设置成上拉模式。这里要注意即使板子上的IO带了硬件上下拉,但是进入深度睡眠是会关闭VDD电源的,所以还是需要配置。

        同样使用esp_deep_sleep_start进入深度睡眠。

        下面就是按键唤醒后的系统log。

http://www.yayakq.cn/news/901335/

相关文章:

  • 南沙建设局网站wordpress设置邮件注册
  • 网站建设案例分享温州在线制作网站
  • 自己做免流网站安徽建筑大学招生网录取查询
  • 庆阳做网站公司网站设计公司推荐
  • 天津网站在哪里建设全国网页制作大赛
  • 许昌小学网站建设插件素材网站
  • 在微信上做彩票网站吗网站备案政策
  • 温州专业手机网站制作哪家好wordpress301插件
  • 网站开发翻译插件广告设计专业专升本有哪些专业
  • 阜宁网站制作具体报价wordpress计数器
  • 网站备案进程查询网站制作首选 新鸿儒
  • dw建设手机网站品牌网络推广方式
  • 嘉兴网站制作平台互联网运营在线培训
  • 手机版网站怎么上传厅网站建设中标公告
  • 网站运营方案书个人网站怎么做游戏
  • 外贸国际站有哪些平台海口平台公司
  • 无锡专业制作网站wordpress 禁用编辑器
  • 网站的结构布局安装一个宽带多少钱
  • 网站的营销特点wordpress搭建ss
  • 站长是什么级别山东一建建设有限公司网站
  • 北湖区网站建设公司哪家好微信广告怎么制作
  • 好网站页面海外推广引流
  • 网站上面如何加入视频wordpress自带轮播
  • 网站文件权限设置优搜云seo
  • 网站设计 企业 济南专门做女性产品的网站
  • 如何建设动漫网站培训机构seo
  • 信誉好的o2o网站建设公司开办流程
  • 手机网站建设技术方案书网站建设 中企动力
  • 网站建设和维护的职责wordpress 如何制作模板
  • 网站建设初级工程师网站建设公司演讲稿