ULP wakeup by peripheral signal possible?
Posted: Fri Jul 10, 2020 6:33 pm
Dear ESP32ers.
Currently I am working on a low power solution where a peripheral sensor sends a signal (good for an interrup) as soon as an event has occured. Then I can fetch and pre-process the data from the peripheral and based on the pre-processing result I want to either wake up the main cores or send discard the event.
It would be ideal if I could have the event handling including the pre-processing done by the ULP without a need to wake-up the main cores unless the pre-processing produces a positive result.
According to the technical documentation the ULP can be woken up in two ways:
a) by software call
b) by timer
That would mean that either I can use the peripheral signal as an interrupt to wake up the main cores and do the pre-processing there or alternatively
I can wake up the ULP by a timer schedule and upon every wake up check if the interrupt signal from the periperal is set and then do the pre-processing.
Am I right that there is no 3rd option to directly wake up the ULP by a peripheral signal (without powering up the main cores and without regularly waking up the ULP even when there is no signal from the perpheral)?
Thanks in advance for a clarification.
Bernd
Currently I am working on a low power solution where a peripheral sensor sends a signal (good for an interrup) as soon as an event has occured. Then I can fetch and pre-process the data from the peripheral and based on the pre-processing result I want to either wake up the main cores or send discard the event.
It would be ideal if I could have the event handling including the pre-processing done by the ULP without a need to wake-up the main cores unless the pre-processing produces a positive result.
According to the technical documentation the ULP can be woken up in two ways:
a) by software call
b) by timer
That would mean that either I can use the peripheral signal as an interrupt to wake up the main cores and do the pre-processing there or alternatively
I can wake up the ULP by a timer schedule and upon every wake up check if the interrupt signal from the periperal is set and then do the pre-processing.
Am I right that there is no 3rd option to directly wake up the ULP by a peripheral signal (without powering up the main cores and without regularly waking up the ULP even when there is no signal from the perpheral)?
Thanks in advance for a clarification.
Bernd