Page 1 of 1

ESP32-S2 power consumption in active mode

Posted: Thu Dec 15, 2022 8:07 pm
by andrej32
Please help me to get the minimum current consumption in active operation mode.

I use the ESP32-S2-MINI-1 and esp-idf 4.2 module. I need to make this module work in active mode with minimal current consumption. The available energy-saving modes are not applicable for my application (continuous audio recording over I2S, radio communication is not used at this time).

In documentation esp32-s2-mini-1:

Image

I conducted experiments with a radio module on a clean board without any additional elements, only power capacitors and RN1910 for programming.

Code: Select all


void app_main(void)
{
    esp_pm_config_esp32s2_t pm_config = {
               .max_freq_mhz = 80,  // 10, 40, 80, 160, 240 -  for experiments
               .min_freq_mhz = 80,    // 10, 40, 80, 160, 240 -  for experiments
               .light_sleep_enable = false,
            };

    esp_pm_configure(&pm_config);
 
   while(1)
   {
         vTaskDelay(100);
   }
}    
    
   
results:

10 MHz ~ 9 mA
40 MHz ~ 16 mA
80 MHz ~ 21.5 mA
160 MHz ~ 27 mA

This is much more than indicated in the documentation.

I do not understand how I can get the specified current consumption values in active mode without using low power modes, radio communication and initializing any peripherals.

Specifically, I need to get 12 mA at 80 MHz.

If the current consumption values indicated in the documentation are not erroneous, are really correct, could you describe how they can be obtained and give an example of the code, if the whole thing is in the program.

Re: ESP32-S2 power consumption in active mode

Posted: Mon Jan 09, 2023 6:49 am
by andrej32
Does technical support work?

For a long time there has been no answer to my simplest question.

Re: ESP32-S2 power consumption in active mode

Posted: Mon Jan 09, 2023 9:32 am
by ESP_Sprite
I'm not sure what to tell you. You need WiFi to be active, but you're looking at the modem sleep images, where WiFi is not active. You could perhaps try to enable automatic light sleep for some more power savings, but I'm not sure if that's enough. (Also note that this officially is not a tech support forum; while there are some engineers roaming around here, we have other priorities than to answer every single question)

Re: ESP32-S2 power consumption in active mode

Posted: Mon Jan 09, 2023 12:21 pm
by andrej32
I'm sorry, I put it wrong. I meant active mode without radio. In the table it is indicated as:

Modem-sleep, 80 Mhz, cpu is running, all peripheral clocks disable.

I wrote that I only need I2C and SPI to work without using a radio. (I planned to turn on this peripheral after I achieve the minimum current consumption with all peripheral clocks disable),

Re: ESP32-S2 power consumption in active mode

Posted: Mon Jan 09, 2023 12:27 pm
by andrej32
A small addition to my experiments: If I install Flash SPI speed 40 MHz instead of 80 MHz in sdkconfig, then at 80 MHz of the CPU I get a current consumption of 18.5 mA, i.e. a decrease from 22 mA to 18.5 mA, but I can't get 12 mA in any way.

Re: ESP32-S2 power consumption in active mode

Posted: Mon Jan 09, 2023 6:24 pm
by chegewara
Please read exception 1 under table 8.

You have to disable all power domains to get current consumption lower.

Re: ESP32-S2 power consumption in active mode

Posted: Tue Jan 10, 2023 8:48 am
by andrej32
How to do it in ESP-IDF?
I also did not find any information about the state of the peripheral power supply after switching on. I found only a mention that the peripheral drivers in IDF-ESP themselves control power and the clock settings. How to manage it yourself is unclear.

Re: ESP32-S2 power consumption in active mode

Posted: Mon Jan 16, 2023 7:57 am
by chegewara

Re: ESP32-S2 power consumption in active mode

Posted: Mon Jan 16, 2023 12:06 pm
by andrej32
As far as I understand, you suggest using the esp_sleep_pd_config() function, which has parameters:
typedef enum {
ESP_PD_DOMAIN_RTC_PERIPH, //!< RTC IO, sensors and ULP co-processor
ESP_PD_DOMAIN_RTC_SLOW_MEM, //!< RTC slow memory
ESP_PD_DOMAIN_RTC_FAST_MEM, //!< RTC fast memory
ESP_PD_DOMAIN_XTAL, //!< XTAL oscillator
ESP_PD_DOMAIN_MAX //!< Number of domains
} esp_sleep_pd_domain_t;

So I'll just disconnect everything that is clocked from XTAL.
In fact, this is the use of a light sleep mode. But this does not suit me, I need to get not a light sleep mode, but a normally working CPU capable of executing the program, but all other peripherals must be disabled, and I need to be able to turn on the clocking of the necessary peripherals independently. This is how I understand the mode of operation described in the table we are talking about.
The question remains open. How to get the mode: Modem-sleep, 80 Mhz, CPU on, all peropheral off, 12 mA current consumption ?

Re: ESP32-S2 power consumption in active mode

Posted: Tue Jan 17, 2023 12:58 pm
by andrej32
Since I was unable to get an answer to my question from ESPRESSIF technical support, as well as on this forum, after my experiments with ESP32-S2-MINI-1 and SEP32-WROOM32D, I came to the conclusion that the electrical parameters of current consumption in MODEM-SLEEP mode specified in the datasheet on ESP32-S2-MINI-1 are not reliable.
The claimed characteristics do not even closely correspond to the real ones. It follows from my experiments that the actual consumption of ESP32 and ESP32-S2 in MODEM-SLEEP mode at 160 and 80 MHz are very close and there is no reduction in current consumption when using ESP32-S2 compared to ESP32.

Image

It is necessary to correct the electrical parameters of the current consumption (specified in datasheet) of the ESP32-S2-MINI-1 module and not to mislead users.