当前位置:网站首页>Esp32-ulp coprocessor low power mode RTC GPIO interrupt wake up
Esp32-ulp coprocessor low power mode RTC GPIO interrupt wake up
2022-07-07 08:50:00 【Morning breeze】
Chen Tuo 2022/07/06-2022/07/06
1. summary
This example shows when ULP adopt WAKE Command to RTC When the controller sends an interrupt signal , How should the main program configure the interrupt handling function to respond to the interrupt signal .
- RTC GPIO
RTC GPIO Altogether 18 individual IO mouth , these GPIO Pins have low power consumption RTC Performance and simulation functions , And by the ESP32 Of RTC Subsystem control . These functions are not used IO_MUX and GPIO Commutative matrix , But use RTC_MUX take IO Point to RTC Subsystem .
When these pins are configured as RTC GPIO When pin , As an output pin, the chip can be in Deep-Sleep Keep the output level value in sleep , Or when used as an input pin, the chip can be removed from Deep-Sleep Wake up in the .
The following table lists them RTC Pin and its corresponding GPIO Pin
ULP Interrupt sending official routine in ESP-IoT-Solution In the library :
- ESP-IoT-Solution brief introduction
RTC GPIO
Official documents :
https://docs.espressif.com/projects/espressif-esp-iot-solution/zh_CN/latest/gettingstarted.html
- ESP-IoT-Solution edition
Different versions ESP-IoT-Solution The explanation is as follows :
- ESP-IoT-Solution Programming Guide
https://docs.espressif.com/projects/espressif-esp-iot-solution/zh_CN/latest/index.html
2. obtain ESP-IoT-Solution
- Get orders
If from the official of Lexin github Library Download is difficult , You can start with gitee Clone a library on , And then from gitee Upload and download . Here is the download from my cloned Library , My library is private , You need to clone one yourself .
- download esp-iot-solution v1.1
cd ~/esp
git clone -b release/v1.1 --recursive https://gitee.com/chentuo2000/esp-iot-solution.git
from gitee When downloading clone library , The subject is going well , Having trouble downloading submodules , You need to manually download the following sub modules :
Download manually according to the source and the corresponding installation path .
If you still can't download , You can download this from the link below 3 Sub module :
download Adafruit-GFX-Library.tar.gz
https://download.csdn.net/download/chentuo2000/85481416
download ugfx.tar.gz
https://download.csdn.net/download/chentuo2000/85481491
download lvgl.tar.gz
https://download.csdn.net/download/chentuo2000/85481538
3. development environment
《 Use Lexin domestic Gitee Image building ESP32 development environment 》
https://zhuanlan.zhihu.com/p/348106034
https://blog.csdn.net/chentuo2000/article/details/113424934?spm=1001.2014.3001.5501
4. Build the project
- Official routine
ULP Example of interrupt sending program :
https://github.com/espressif/esp-iot-solution/tree/release/v1.1/examples/ulp_examples/ulp_send_interrupt
according to ULP Of WAKE Instructions :
-- If the Lord CPU In sleep mode , And ULP Wakeup is enabled , Then the interrupt signal will wake up the master CPU;
-- If the Lord CPU In non sleep mode , And RTC Interrupt enable register (RTC_CNTL_INT_ENA_REG) Corresponding ULP Interrupt enable bit (RTC_CNTL_ULP_CP_INT_ENA) To be placed , Then the interrupt signal will trigger RTC The controller generates an interrupt ;
The following is a ULP Interrupt registration and interrupt handling functions :
- Copy official routine
Copy the official example project to ESP-IDF Beyond development tools :
cd ~/esp
cp -r ~/esp/esp-iot-solution/examples/ulp_examples/ulp_send_interrupt ~/esp/
- Project tree
cd ulp_send_interrupt
- Refresh esp-idf Environmental Science
get_idf
Be careful : Each time you open the terminal, enter sdk Execute this command once
- Set the target chip
idf.py set-target esp32
- Clear previous builds
- Configuration items
idf.py menuconfig
1) Set up Flash The memory size is 4MB
2) ULP It is enabled by default
3) choice Support array 'rtc_gpio_desc' fot ESP32
Otherwise, there will be error: 'rtc_gpio_desc' undeclared
preservation , sign out .
- Compile the project
idf.py build
- Burn project
see USB Serial port COM slogan :
burning :
idf.py -p /dev/ttyS3 -b 115200 flash
- Enable monitor
idf.py monitor -p /dev/ttyS3
5. Sample test
After example startup ,ULP Will always be in a cycle ( Time is 20ms) Running state , testing GPIO0 Is it pressed . When the key is pressed and released :
-- If the Lord CPU In sleep mode , Then this operation will wake up the master CPU;
-- If the Lord CPU In non sleep mode , Then this operation will send a RTC interrupt , After the interrupt program completes the corresponding processing , Will the Lord CPU Set to enter sleep mode ;
The log of the system is printed as follows :
边栏推荐
- Greenplum 6.x monitoring software setup
- Calling the creation engine interface of Huawei game multimedia service returns error code 1002, error message: the params is error
- What are the advantages of commas in conditional statements- What is the advantage of commas in a conditional statement?
- Oracle makes it clear at one time that a field with multiple separators will be split into multiple rows, and then multiple rows and columns. Multiple separators will be split into multiple rows, and
- [machine learning] watermelon book data set_ data sharing
- redis故障处理 “Can‘t save in background: fork: Cannot allocate memory“
- ES6_ Arrow function
- [Yu Yue education] C language programming reference of Zhongbei College of Nanjing Normal University
- Find the original code, inverse code and complement of signed numbers [C language]
- Shell script for changing the current folder and the file date under the folder
猜你喜欢
[Yugong series] February 2022 U3D full stack class 007 - production and setting skybox resources
联想混合云Lenovo xCloud:4大产品线+IT服务门户
Greenplum 6.x reinitialization
A single game with goods increased by 100000, and the rural anchor sold men's clothes on top of the list?
【MySQL】数据库进阶之触发器内容详解
Lenovo hybrid cloud Lenovo xcloud: 4 major product lines +it service portal
What is the method of manual wiring in PCB design in 22protel DXP_ Chengdu electromechanical Development Undertaking
Introduction to data fragmentation
Upload an e-office V9 arbitrary file [vulnerability recurrence practice]
Appeler l'interface du moteur de création du service multimédia de jeu Huawei renvoie le Code d'erreur 1002, le message d'erreur: les paramètres sont l'erreur
随机推荐
Calling the creation engine interface of Huawei game multimedia service returns error code 1002, error message: the params is error
Data type - floating point (C language)
数字三角形模型 AcWing 1027. 方格取数
ES6_ Arrow function
指针进阶,字符串函数
Redis fault handling "can't save in background: fork: cannot allocate memory“
JS operation
How to integrate app linking services in harmonyos applications
Nanjing commercial housing sales enabled electronic contracts, and Junzi sign assisted in the online signing and filing of housing transactions
[Yugong series] February 2022 U3D full stack class 008 - build a galaxy scene
Greenplum6.x重新初始化
关于基于kangle和EP面板使用CDN
Tronapi-波场接口-源码无加密-可二开--附接口文档-基于ThinkPHP5封装-作者详细指导-2022年7月6日-新手快速上手-可无缝升级tp6版本
IP地址的类别
oracle一次性说清楚,多种分隔符的一个字段拆分多行,再多行多列多种分隔符拆多行,最终处理超亿亿。。亿级别数据量
Mountaineering team (DFS)
【踩坑】nacos注册一直连接localhost:8848,no available server
leetcode134. gas station
调用华为游戏多媒体服务的创建引擎接口返回错误码1002,错误信息:the params is error
[wechat applet: cache operation]