当前位置:网站首页>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 :

边栏推荐
- 阿里p8推荐,测试覆盖率工具—Jacoco,实用性极佳
- How to integrate app linking services in harmonyos applications
- Arm GIC (IV) GIC V3 register class analysis notes.
- JEditableTable的使用技巧
- Three usage scenarios of annotation @configurationproperties
- Find the original code, inverse code and complement of signed numbers [C language]
- [kuangbin] topic 15 digit DP
- Sign and authenticate API interface or H5 interface
- Greenplum6.x监控软件搭建
- leetcode135. Distribute candy
猜你喜欢
随机推荐
redis故障处理 “Can‘t save in background: fork: Cannot allocate memory“
Test pits - what test points should be paid attention to when adding fields to existing interfaces (or database tables)?
Mock. JS usage details
Data type - integer (C language)
注解@ConfigurationProperties的三种使用场景
说一个软件创业项目,有谁愿意投资的吗?
数据分片介绍
Category of IP address
Leetcode 1984. Minimum difference in student scores
【踩坑】nacos注册一直连接localhost:8848,no available server
南京商品房买卖启用电子合同,君子签助力房屋交易在线网签备案
Novice entry SCM must understand those things
[kuangbin] topic 15 digit DP
What is the method of manual wiring in PCB design in 22protel DXP_ Chengdu electromechanical Development Undertaking
测试踩坑 - 当已有接口(或数据库表中)新增字段时,都需要注意哪些测试点?
All about PDF crack, a complete solution to meet all your PDF needs
快速集成认证服务-HarmonyOS平台
JEditableTable的使用技巧
Interpolation lookup (two methods)
LeetCode 736. Lisp 语法解析
https://github.com/espressif/esp-iot-solution







