Implementing ULP Coprocessor Wake-up from Deep Sleep in the ESP32

Advanced ESP32 Deep Sleep in the ESP32
6 minutes
Share the link to this page
Copied
  Completed
You need to have access to the item to view this lesson.
One-time Fee
$69.99
List Price:  $99.99
You save:  $30
€66.35
List Price:  €94.79
You save:  €28.44
£55.27
List Price:  £78.97
You save:  £23.69
CA$97.91
List Price:  CA$139.89
You save:  CA$41.97
A$107.61
List Price:  A$153.73
You save:  A$46.12
S$94.02
List Price:  S$134.32
You save:  S$40.30
HK$544.76
List Price:  HK$778.26
You save:  HK$233.50
CHF 61.99
List Price:  CHF 88.57
You save:  CHF 26.57
NOK kr773.52
List Price:  NOK kr1,105.08
You save:  NOK kr331.55
DKK kr494.87
List Price:  DKK kr706.99
You save:  DKK kr212.12
NZ$119.04
List Price:  NZ$170.06
You save:  NZ$51.02
د.إ257.07
List Price:  د.إ367.26
You save:  د.إ110.18
৳8,334.01
List Price:  ৳11,906.24
You save:  ৳3,572.23
₹5,905.12
List Price:  ₹8,436.24
You save:  ₹2,531.12
RM312.96
List Price:  RM447.10
You save:  RM134.14
₦117,219.95
List Price:  ₦167,464.25
You save:  ₦50,244.30
₨19,380.58
List Price:  ₨27,687.73
You save:  ₨8,307.15
฿2,429.14
List Price:  ฿3,470.35
You save:  ฿1,041.21
₺2,412.08
List Price:  ₺3,445.98
You save:  ₺1,033.89
B$405.06
List Price:  B$578.68
You save:  B$173.62
R1,267.31
List Price:  R1,810.53
You save:  R543.21
Лв129.73
List Price:  Лв185.34
You save:  Лв55.60
₩97,779.80
List Price:  ₩139,691.42
You save:  ₩41,911.61
₪261.55
List Price:  ₪373.67
You save:  ₪112.11
₱4,130.77
List Price:  ₱5,901.36
You save:  ₱1,770.58
¥10,901.93
List Price:  ¥15,574.86
You save:  ¥4,672.92
MX$1,414.26
List Price:  MX$2,020.46
You save:  MX$606.19
QR254.33
List Price:  QR363.35
You save:  QR109.01
P948.83
List Price:  P1,355.53
You save:  P406.70
KSh9,063.70
List Price:  KSh12,948.70
You save:  KSh3,885
E£3,478.50
List Price:  E£4,969.50
You save:  E£1,491
ብር8,583.46
List Price:  ብር12,262.61
You save:  ብር3,679.15
Kz63,877.12
List Price:  Kz91,256.94
You save:  Kz27,379.82
CLP$67,980.58
List Price:  CLP$97,119.28
You save:  CLP$29,138.70
CN¥507.18
List Price:  CN¥724.58
You save:  CN¥217.39
RD$4,200.06
List Price:  RD$6,000.34
You save:  RD$1,800.28
DA9,338.81
List Price:  DA13,341.73
You save:  DA4,002.91
FJ$158.92
List Price:  FJ$227.04
You save:  FJ$68.12
Q538.38
List Price:  Q769.16
You save:  Q230.77
GY$14,583.53
List Price:  GY$20,834.51
You save:  GY$6,250.97
ISK kr9,640.42
List Price:  ISK kr13,772.62
You save:  ISK kr4,132.20
DH696.78
List Price:  DH995.44
You save:  DH298.66
L1,273.82
List Price:  L1,819.82
You save:  L546
ден4,077.60
List Price:  ден5,825.40
You save:  ден1,747.79
MOP$559.09
List Price:  MOP$798.74
You save:  MOP$239.64
N$1,260.89
List Price:  N$1,801.35
You save:  N$540.46
C$2,566.52
List Price:  C$3,666.61
You save:  C$1,100.09
रु9,423.16
List Price:  रु13,462.23
You save:  रु4,039.07
S/264.65
List Price:  S/378.10
You save:  S/113.44
K280.62
List Price:  K400.90
You save:  K120.28
SAR262.75
List Price:  SAR375.38
You save:  SAR112.62
ZK1,926.57
List Price:  ZK2,752.36
You save:  ZK825.79
L330.17
List Price:  L471.69
You save:  L141.52
Kč1,676.98
List Price:  Kč2,395.79
You save:  Kč718.80
Ft27,187.34
List Price:  Ft38,840.72
You save:  Ft11,653.38
SEK kr769.78
List Price:  SEK kr1,099.74
You save:  SEK kr329.95
ARS$70,112.88
List Price:  ARS$100,165.56
You save:  ARS$30,052.67
Bs483.65
List Price:  Bs690.96
You save:  Bs207.30
COP$308,470.35
List Price:  COP$440,690.82
You save:  COP$132,220.46
₡35,450.59
List Price:  ₡50,645.88
You save:  ₡15,195.28
L1,762.11
List Price:  L2,517.41
You save:  L755.29
₲543,153.02
List Price:  ₲775,966.15
You save:  ₲232,813.12
$U2,992.07
List Price:  $U4,274.58
You save:  $U1,282.50
zł287.83
List Price:  zł411.21
You save:  zł123.37
Already have an account? Log In

Transcript

Video implementing a ul p ko process of wake up from deep sleep in the ESP 32. In this video, we will learn in depth on implementing the UL Pico process of wakeup in the Arduino ID by understanding the function of the main core code and the header code. We will continue with the example code we showed in the earlier video. Open the UL p underscore ATC dot INF file in the Arduino it you can see that the project has automatically loaded all the other files related to the main code. First, let me explain what this whole mini project does. The you will Pico processor reads voltage values with an ADC and averages the results.

If this value is below a certain low threshold, the LED will be off. If it's between the two threshold values the LED is on if it's about the higher threshold value Then it will make up the main course, and it will then print the ADC values on the serial monitor. Coming back to the code. Let's just quickly go through the main core code. Just like the previous deep sleep implementations, all the magic happens in the setup function. All main codes with LP implementation must have the following header files for it to work.

They are one, ESP underscore sleep dot h, two ESP 32 forward slash ul p dot h and three you will be underscore main dot hedge in this code. We have also added the RTC underscore IO dot hedge an ADC dot hedge. These are included to access and use the ADC in RTC GPIO pins. Remember that during deep sleep, we can only use the RTC GPIO pins and not the GPIO pins of the main board. Each up program is embedded inside the main core program like a binary chunk. As far as the main code is concerned, the you will pay program is just another binary buffer, which needs to be loaded to the artists in memory for the up core processor to access and execute does to keep track of the start and end address of the USB program binary, we use the following two instructions.

Next, we define and assign the GPIO pins which we want to use for this project. Inside the setup loop right after the boot, the ESP 32 main code has to confirm whether the USB coprocessor caused the wakeup or not. This is done by using the following function. The conditional statement checks the reason for wake up and if it was not working up, but you will pay then it will initialize that you will pay program by using the internet underscore ULP underscore program function. But if the wakeup is caused by the you will pay coprocessor it means that the you will be coprocessor has detected the ADC value to be more than the higher threshold. In this condition, we need to print the ADC values on the serial monitor.

The following instructions will show the count of measurements by you LP, the low and high threshold value and the value which went above the threshold that caused the main core to wake up in the first place. Next, we need to start that up program before the main cost go to sleep so that the coprocessor can keep on taking measurements. Next, by using this single line of instruction, we enable the up wakeup as well as check for errors on implementing the up wakeup. At the end of the setup loop. We start at the deep sleep. Conceptually, this is the end of the code The loop function is empty.

Now let's discuss about the function definitions of the init underscore evil p underscore program function. And the start underscore user underscore program function in the init underscore up underscore program function. First we have loaded that you will be binary code to the artists in memory that you will be underscore load underscore binary function accepts three input parameters. The first parameter is the RTC memory address to which the up binary should be uploaded. The second parameter is the starting ad resolve that you will be binary stored in the main memory and the final parameter is the size of the UEFI binary code. After the error check is done.

These instructions configure the GPIO pins 27 and 13 as RTC GPIO output. Now we will configure the ADC channel by configuring the GPIO pin mux and setting the activation of a particular channel on ADC one later, the ADC bit width is set an ADC for you LP is enabled. Next, we set the lower threshold as one volt and higher threshold as to volts. We also said that you will be wakeup period as 100 milliseconds. The start underscore ul p underscore program function uses a function named u LP underscore run. To run the UL PE binary program loaded into the artist in memory.

It accepts only a single parameter that is the entry point of the program expressed in 32 bit words. The explanation of the main core code is done. Now let's look at the URL p underscore main dot h header code. This consists of the Arduino dot h library and all The variables, which can be shared between the up code and the main sketch for transferring the ADC measurements to the main core once it's woken up summary In this video we have covered the following topics, explanation of the ADC voltage measurement project, understanding the main core code and the header code in new LP core processor programming. In the next video, we take an in depth look at assembly level code for the up core processor in the ESP 32.

Sign Up

Share

Share with friends, get 20% off
Invite your friends to LearnDesk learning marketplace. For each purchase they make, you get 20% off (upto $10) on your next purchase.