ESP32 e le sue modalità di funzionamento per il risparmio energetico

Introduzione

Se il nostro sistema è connesso alla rete elettrica il problema di limitare il consumo energetico del dispositivo  è sicuramente poco rilevante.

Se invece il nostro sistema è alimentato con una batteria, per esempio un sistema IOT installato in un’area remota dove non è  presente l’energia elettrica di rete,  oppure, considerate i sistemi come i sensori montati  su un dispositivo d’allarme con connessione wireless.

In queste condizioni è indispensabile  centellinare il consumo di energia, affinché si possa prolungare  la durata media della batteria e quindi diminuire la frequenza della sua sostituzione.

Modalità di funzionamento

Il microcontrollore ESP32, come indicato nel datasheet,  può essere configurato con ben cinque modalità differenti di funzionamento, e ognuna di esse ha un consumo proporzionale alle periferiche attive.

Figura 1
  • Active
  • Modem-Sleep
  • Light-Sleep
  • Deep-Sleep
  • Hibernation
Tabella 1

Modalità Active

Nella modalità “Active”, tutti i dispositivi inclusi CPU, Bluetooth, Wi-Fi, RTC e coprocessore ULP sono alimentati. Questa è la modalità di alimentazione più inefficiente, ed è usata principalmente quando il dispositivo è alimentato tramite la rete elettrica. Per questa modalità di funzionamento il datasheet  riporta i seguenti consumi:  95-240 mA, che dipendo da quante periferiche contemporaneamente sono in attive e in funzione.

Elevato consumo energetico
(95-240 mA)

Modalità Modem-Sleep   

Il blocco radio, WIFI e Bluetooth, sono le periferiche che hanno un maggior  assorbimento di potenza e in questa modalità  sono disattivate, in questo modo  l’assorbimento di corrente è compreso tra  2-50 mA.

Minor consumo energetico
(2-50 mA)

Modalità Light-Sleep

Nella modalità Light-Sleep, le periferiche digitali, la maggior parte della memoria RAM sono spente  mentre la  CPU è viene messe in pausa, e il suo  stato è memorizzato nella parte di memoria RAM ancora attiva per poi recuperarlo  quando il microcontrollore esce dalla stato di pausa. Con  questa modalità di funzionamento il microcontrollore ha un assorbimento di corrente di circa 0,8 mA.

Medio Basso consumo energetico
(0,8 mA )

Modalità Deep-Sleep

Questa modalità di funzionamento ha un assorbimento di corrente molto basso, poiché  la CPU è nello stato spento, a differenza della modalità precedente  dove la CPU è in pausa. Sono attive solo il coprocessore ULP, RTC  e la sua memoria.   L’unico codice in esecuzione gira in ULP e memorizzato nel modulo RTC, e possiamo riattivare il sistema utilizzando il timer o un interrupt esterno. L’assorbimento di corrente è di circa 10-150uA.

Basso consumo energetico
(10-150uA)

Modalità Hibernation

In questa modalità tutte le periferiche e le CPU sono spente  tranne i timer RTC e alcuni pin GPIO che possono essere usati per riattivare il sistema. Quando il microcontrollore si trova in questo stato, non è possibile salvare i dati e lo stato della CPU prima del suo spegnimento, a differenza delle precedenti modalità, quindi il sistema quando è riattivato riparte come se  il microcontrollore fosse stato resettato. L’assorbimento di corrente è di circa 5 uA.

Bassissimo consumo energetico
(5 uA)

Ho scritto un articolo che tratta il risparmio energetico del microcontrollore ESP32 da un punto di vista pratico, fornendo un esempio concreto (link).

Lascia una risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Ti sei iscritto alla newsletter

There was an error while trying to send your request. Please try again.

Quattrodispositivi utilizzerà le informazioni fornite in questo modulo per restare in contatto con te e fornire aggiornamenti del sito