Il consumo di corrente del dispositivo ESP32 può essere ridotto con le modalità di sospensione

Di Jeremy Cook

L'ESP32 è un dispositivo incredibile: è in grado di elaborare informazioni a centinaia di megahertz, comunicare tramite WiFi e Bluetooth e portare a termine un'ampia varietà di attività mediante i suoi pin GPIO. Tuttavia, si potrebbe dire che una grande potenza implica un grande…consumo di corrente.

Per correttezza, il consumo di corrente dell'ESP32 in realtà è abbastanza basso rispetto a dispositivi simili di un decennio fa. Per le moderne applicazioni IoT, tuttavia, specialmente nel caso in cui sia coinvolta una batteria, può trattarsi di un consumo energetico elevato, di milioni di milliampere di corrente, in caso di potenza piena.

La buona notizia è che l'ESP32 dispone anche di un sistema di modalità di sospensione e ibernazione. Se utilizzate con attenzione, queste modalità consentono di calmare la fame di corrente dell'ESP o almeno di limitarla a brevi picchi di attività.

Modalità di sospensione

La modalità di sospensione profonda dell'ESP32 e le altre modalità di alimentazione sono delineate nel grafico di seguito, preso dalla scheda dati del dispositivo:

L'ESP32 dispone di cinque modalità di bassa potenza: sospensione del modem ESP32, sospensione leggera, sospensione profonda, ibernazione e spegnimento. Le modalità di sospensione del modem e di sospensione profonda dispongono di diverse modalità secondarie, con differenti consumi energetici a seconda delle funzionalità di elaborazione attive. L'ibernazione arresta quasi tutta la funzionalità del chip, tranne un RTC per attivarlo dopo un determinato periodo di tempo. La modalità di spegnimento viene attivata in risposta al pin CHIP_PU impostato su basso e richiede l'interazione esterna per avviare nuovamente l'elaborazione.

Il risultato di tutto questo è che le modalità di alimentazione bassa dell'ESP32 possono consumare tra 68mA e 5µA o 0,068A e 0,000005A rispettivamente, senza tenere in considerazione lo spegnimento. Lo svantaggio è che ogni modalità limita l'utilità dell'ESP32, come indicato di seguito:

  • Sospensione del modem: la comunicazione wireless è interrotta.
  • Sospensione leggera: mette in pausa la CPU ma conserva gli stati della memoria.
  • Sospensione profonda: disattiva la memoria principale dell'ESP32. Viene conservata una quantità limitata di memoria RTC (real-time clock) che può essere utilizzata alla riattivazione. Il processore ULP (ultra-low power) è attivo in due delle tre modalità secondarie di sospensione profonda, consentendo così l'esecuzione di attività semplici e il monitoraggio dell'ingresso.
  • Ibernazione: lascia solo l'RTC e un numero limitato di pin GPIO attivi per la riattivazione. La memoria non viene conservata.
  • Spegnimento: deve essere eseguito esternamente. Il consumo di corrente di 1 µA è trascurabile nella maggior parte delle situazioni.
  • Trascurando gli effetti della tensione, una piccola batteria ricaricabile da 3,7 V, 850 mAh sarebbe in grado di alimentare un ESP32 in modalità di sospensione del modem per circa 12,5 ore. In modalità di sospensione leggera l'unità potrebbe funzionare fino a oltre 1000 ore. L'ibernazione in modalità di sospensione profonda di medio livello garantisce 8500 ore di funzionamento (circa un anno), mentre uno stato di ibernazione in teoria potrebbe essere mantenuto per circa 20 anni. Naturalmente, per essere utile, il dispositivo dovrà riattivarsi in maniera intermittente; tuttavia, con un'attenta pianificazione, la configurazione di un ESP32 può allungare notevolmente la durata tra due cariche della batteria.

    Differenze nelle modalità di sospensione profonda del dispositivo ESP32

    Quando si parla di consumo energetico, il chip o il modulo di un dispositivo ESP32 è solo una parte dell'elettronica. Per la sperimentazione, è probabile che venga utilizzata una scheda di sviluppo. Per progetti di elettronica più precisi, per l'IoT sarà necessaria una disposizione personalizzata di parti associate. Con una programmazione attenta, l'uso di un dispositivo ESP32 può essere molto efficiente dal punto di vista energetico, ma l'elettronica circostante necessita di un'attenta configurazione.

    Per illustrare questo punto, ho collegato una scheda di sviluppo Adafruit HUZZAH32 ESP32 a una fonte di alimentazione e a un dispositivo per la misurazione della corrente, insieme a una scheda DFRobot DFR0478 ESP32. Entrambi sono presentati in questo post video composito ESP32 e si comportano in modo diverso in quello che può essere considerato un caso d'uso piuttosto di nicchia. Forse l'efficienza energetica dovrebbe dimostrarsi una caratteristica distintiva tra i due dispositivi.

    Per testarlo, ho utilizzato uno schizzo di esempio del "TimerWakeUp" ESP32 Arduino che passa dalla modalità di sospensione profonda, alla riattivazione, all'accensione della luce LED integrata e infine ricomincia il ciclo partendo di nuovo dalla sospensione. Ogni riceveva 5,3 V da convertire nel livello di tensione di ~3,3 per l'ESP32. I consumi derivanti sono stati quelli indicati di seguito:

    HUZZAH32:   sospensione = 6,6 mA    attività = 43,2 mA attività + LED = 44,6 mA 
     DFR0478:  sospensione = 0,02 mA     attività = 39,7 mA attività + LED = 40,0 mA

    Per correttezza, per simulare meglio l'uso effettivo di IoT sarebbe stato opportuno misurare la corrente attraverso la porta della batteria. Tuttavia, sembra che in questo scenario la scheda DFR0478 FireBeetle sia di gran lunga più efficiente in modalità di sospensione rispetto alla controparte.

    Il dispositivo HUZZAH32 ricava 7000 µA (7 mA) in fase di sospensione dall'alimentazione a batteria, all'incirca quella che ho misurato nel mio esperimento. Un'analisi di Andreas Spiess ha scoperto che il dispositivo DFR0478 ricava una corrente dichiarata di 53 µA (0,053 mA) dalla batteria in modalità di sospensione. Si tratta di una quantità nettamente superiore a quella misurata sul dispositivo DFR0478. Tuttavia, il suo report usa un ingresso diverso per l'alimentazione e una versione precedente della scheda (2.0 rispetto alla 4.0 da me provata). Tale misurazione va oltre i limiti inferiori di quello che il mio multimetro è in grado di segnalare, il che potrebbe influenzarne l'accuratezza. Come ultima osservazione, il FireBeetle testato usa un modulo WROOM-32D ESP32, mentre il dispositivo HUZZAH32 usa un modulo WROOM-32E.

    Detto questo, la differenza tra le due schede testate è enorme, e questa è una buona rappresentazione del fatto che i circuiti che supportano un dispositivo ESP32 possono avere un effetto notevole sul consumo di corrente.

    Riduzione del consumo di corrente del dispositivo ESP32 tramite le modalità di sospensione

    L'ESP32 è un dispositivo incredibilmente potente che può richiedere una quantità di corrente relativamente grande per funzionare. Tuttavia, con una programmazione attenta, è possibile fare in modo che l'alimentazione a batteria duri per settimane, mesi o anche di più. La chiave sta nel comprendere il compromesso tra il design a basso consumo di corrente e ciò che è possibile trascurare pur ottenendo delle prestazioni accettabili.

    Ultime notizie

    Sorry, your filter selection returned no results.

    Non perderti le ultime novità sull'elettronica

    Abbiamo aggiornato la nostra politica sulla privacy. Si prega di prendere un momento per rivedere questi cambiamenti. Cliccando su Accetto, l'utente accetta la Politica sulla privacy e Condizioni di utilizzo di Arrow Electronics.

    Il nostro sito web mette i cookies sul vostro dispositivo per migliorare la vostra esperienza e il nostro sito. Leggete altre informazioni sui cookies che usiamo e su come disabilitarli qui. I cookies e le tecnologie di tracking possono essere usati per scopi commerciali.

    Con un click su “Accept”, voi consentite l'inserimento dei cookies sul vostro dispositivo e l'uso da parte nostra di tecnologie di tracking. Per avere altre informazioni e istruzioni su come disabilitare i cookies e le tecnologie di tracking, clickate su “Read More” qui sotto. Mentre l'accettazione dei cookies e delle tecnologie di tracking è volontaria, una loro disabilitazione potrebbe determinare un funzionamento non corretto del sito web, ed alcuni messaggi di allarme potrebbero essere per voi meno importanti.

    Noi rispettiamo la vostra privacy. Leggete qui la nostra politica relativa alla privacy