Durata della batteria

Tanti sensori

In questa pagina si riporta l'analisi del consumo energetico del sensore wireless PIC-WL-Sen al fine di stimare la durata della batteria. Quanto qui descritto deve essere ritenuto come frutto di un'analisi preliminare solo in parte già validata con prove sul campo.

Il PIC-WL-Sen di riferimento utilizza il solo sensore di temperatura LM75A ed è alimentato da una batteria al litio CR2032.

Analisi teorica

Per mantenere bassi i consumi medi di energia la tecnica universalmente adottata con i sensori wireless è quella di alternare due fasi:

La batteria ha una durata che, in ore, può essere stimata come rapporto tra la sua capacità espressa in mAh e la media pesata della corrente in mA (nota 1). Per esempio:

Corrente media: (0,1 * 5 + 1 * 0,05) / 1,1 = 0,5 mA

Durata della batteria: 200 mAh / 0,5 mA = 400 ore (circa 17 giorni)

Il processore PIC18LF2xK22

L'assorbimento di corrente di questo processore (come di tutti i circuiti CMOS) dipende il larga parte dalla frequenza di funzionamento e dall'eventuale carico collegato alle sue uscite. Nelle figure seguenti è mostrato l'assorbimento per diverse frequenze in assenza di carico e quando viene acceso un LED. I risultati sono coerenti con i fogli tecnici.

Consumo con clock a 64, 16 ed 1  MHz

La scelta della frequenza operativa dipende dall'applicazione, tenendo conto che:

La corrente di standby della versione eXtreme Low-Power del processore (PIC18LF26k22) è molto bassa ed al di sotto del limite misurabile con strumenti generici. Ad essa occorre aggiungere la corrente del watchdog timer necessario al risveglio periodico del processore (nota 2), raggiungendo il valore di 320 nA, trascurabile rispetto alla corrente richiesta dagli altri componenti presenti sul PIC-WL-Sen.

Al fine di mantenere basso il consumo durante lo standby è necessario evitare gli ingressi digitali, disattivare i dispositivi analogici interni (in particolare ADC e riferimento di tensione) ed usare altre tecniche descritte per esempio nella nota applicativa AN1416.

L'apparato radio nRF24L01+

Questo circuito ha tre stati principali per quanto riguarda il consumo energetico:

La scelta tra standby e power down durante la fase non attiva dipende dalla frequenza con cui sono effettuate le misure; l'esempio che trovate al termine di questa pagina usa la modalità power down in quanto pensato per rilevare la temperatura poche volte al minuto.

Un impatto importante sul consumo deriva dall'adozione o meno di tecniche di ritrasmissione dei pacchetti in caso di errori di ricezione. La correzione degli errori può essere gestita autonomamente da nRF24L01+ attraverso le modalità di automatic packet transaction handling descritte nei fogli tecnici. La scelta (tutt'altro che definitiva!) è stata quella di non utilizzare metodi di correzione degli errori tramite ritrasmissione, per due motivi:

Al fine di mitigare l'impatto degli errori, se ritenuto necessario, è comunque possibile ritrasmettere più volte la stessa misura.

Per scegliere gli altri parametri con cui configurare il trasmettitore occorre considerare anche ulteriori aspetti:

Il sensore LM75A

Questo circuito ha tre stati per quanto riguarda il consumo energetico:

LM75A ha due grossi problemi nel funzionamento in applicazioni a basso consumo:

Il suo uso è quindi giustificato solo per il costo contenuto (circa 0,10 €) e dalla facile reperibilità.

La batteria CR2032

Questa batteria ha una capacità nominale di 210-240 mAh (nota 5), valore che si riduce sensibilmente quando l'assorbimento di corrente è elevato oppure a bassa temperatura.

La tensione dipende da una serie di aspetti:

I LED

Il circuito utilizza un LED RGB (Red, Green e Blue) come unico output visibile. Questo componente ha un consumo molto elevato e quindi va utilizzato con estrema moderazione.

I grafici seguenti mostrano l'aumento della corrente quando viene acceso un LED con in serie una resistenza da 330 Ω: rispettivamente un incremento di circa 3,4 mA, 2,2 mA e 1,8 mA per ciascun colore, da confrontarsi con il consumo dell'intero processore, inferiore a 1 mA.

     

Altri componenti

L'assorbimento di corrente può essere infine aumentato da:

La sperimentazione con i primi prototipi

Il consumo complessivo del PIC-WL-Sen dipende dall'interazione tra i vari componenti hardware ed il software. Gli scopi della prima fase della sperimentazione sono stati:

I due prototipi utilizzati in questa prima sperimentazione avevano le seguenti caratteristiche comuni:

Il secondo prototipo, nato durante la breve esperienza con il primo:

La sperimentazione è stata condotta ad una temperatura ambiente compresa tra 16 °C e 22 °C.

Consumo di corrente

Il grafico seguente, relativo al primo prototipo, mostra la corrente assorbita durante le varie fasi:

  1. durante lo standby l'assorbimento è di circa 50 µA (un decimo nel secondo prototipo)
  2. il watchdog attiva il processore con clock a 16 MHz che a sua volta accende il LED rosso ed il sensore LM75A
  3. il processore diminuisce la sua frequenza di clock a 1 MHz ed attende per 100 ms che il sensore termini la misura (nota 3)
  4. il processore imposta nuovamente il clock a 16 MHz e spegne il sensore LM75A
  5. il processore misura la tensione di alimentazione ed elabora la stringa da trasmettere
  6. nRF24L01+ trasmette il frame contenente temperatura e tensione
  7. il processore spegne nRF24L0+ ed il LED e torna in standby

Nel secondo prototipo l'andamento della corrente è simile anche se, soprattutto grazie al minor tempo di accensione del LED, la corrente media è passata da circa 5 mA ad un decimo; inoltre grazie al condensatore elettrolitico più grande la corrente massima è scesa da 16 mA a 3 mA, pur rimanendo invariata quella media.

Tensione di alimentazione

Il grafico seguente, anch'esso relativo al primo prototipo, mostra il valore istantaneo della tensione di alimentazione (nota 7); esso è sovrapponibile al precedente le significative variazioni sono causate dalla resistenza interna della batteria. Si noti in particolare che:

Tensione di alimentazione

Il secondo prototipo ha mostrato minori diminuzioni della tensione di alimentazione, soprattutto nella fase 6.

Prima sperimentazione

I test preliminari sono stati condotti utilizzando una frequenza di campionamento di circa un hertz, dalle 10 alle 100 volte superiore a quella che può essere considerata una scelta ragionevole. Questo ha permesso di concludere i test in meno di tre mesi, fino alla scarica della batteria (nota 5).

Il grafico che segue mostra l'andamento della tensione di alimentazione nei due prototipi, partendo da una batteria nuova:

Dirata batteria

Nella tabella a fine pagina è riportata nelle prime due colonna la sintesi di dati di questa prima sperimentazione.

Seconda sperimentazione

Questa seconda sperimentazione (nota 9) utilizza il codice che potete scaricare a fondo pagina. Rispetto alle impostazioni utilizzate nella precedente sperimentazione sono stati introdotti alcuni accorgimenti per rendere hardware e software adatti ad essere usati sul campo. In particolare è stata ulteriormente ridotta la corrente media nella fase attiva ponendo in idle la CPU durante la misura della temperatura e disattivando l'ADC nella fase attiva quando non in uso.

Inoltre, aspetto che ha peggiorato la durata a fronte di una maggiore affidabilità, è stata è stato prolungato da 100 ms a 300 ms il tempo di attesa nella conversione di LM75A in quanto i fogli tecnici NXP si limitano ad indicare il valore tipico di 100 ms (nota 6).

Il grafico seguente mostra l'andamento istantaneo della corrente: la linea rossa nel caso in cui C2 = 10 µF (utile solo durante le fasi di analisi ed ottimizzazione del software) e quella blu con C2 = 220 µF, valore tipico dell'utilizzo reale. Esaminiamo il suo andamento, in riferimento alla curva rossa (ingrandita nella seconda figura):

  1. durante lo stanby la corrente è di circa 5 µA
  2. al risveglio il clock del processore è 16 MHz, viene risvegliato LM75A che inizia autonomamente a misurare la temperatura. Viene inoltre impostato il clock a 32 kHz e avviato Timer1 che genererà una interruzione dopo 300 ms. Quindi il processore si pone in idle con praticamente tutte le periferiche interne spente (ad eccezione di Timer1)
  3. in questa fase LM75A misura la temperatura ambiente (nota 6). Il consumo di corrente è circa 100 uA, quasi esclusivamente dovuto a LM75A stesso
  4. Timer1 risveglia la CPU, la frequenza della CPU viene impostata prima a 16 MHz, poi a 1 MHz. Viene letta la temperatura, spento LM75A e misurata la tensione di alimentazione. Infine nRF24L01+ passa da power down a standby
  5. la frequenza della CPU è impostata a 16 MHz, viene acceso il LED e viene predisposto il frame da trasmettere
  6. il LED è spento
  7. il frame è trasmesso
  8. il PIC torna in standby

Assorbimento di corrente

Assorbimento di corrente - dettaglio

Nella tabella a fine pagina è riportata nella ultime tra colonne la sintesi di tali dati e la stima della durata della batteria che ragionevolmente potrà essere di due anni.

Durata presunta della batteria In fase di sviluppo

La tabella seguente mostra la durata calcolata di una batteria CR2032 con capacità nominale 210 mAh, nelle condizioni descritte in questa pagina. Sono anche riportati i dati sperimentali, quando disponibili.

I due dati più significativi sono:

La durata teorica della batteria è semplicemente ottenuta dividendo la capacità nominale per la corrente media (nota 5)

Le ultime due righe sono relative alla durata sperimentale dell'attività del sensore:

Durata dello standby 1 1 1 8 35 s
Durata della fase attiva 0,12 0,45 0,55 0,55 0,55 s
       
Corrente durante lo standby 50 5 5 5 5 µA
Corrente media durante la fase attiva 4800 400 160 160 160 µA
       
Energia per trasmettere un frame 1600 500 250 250 250 µJ
Corrente media 560 130 60 15 7 µA
       
Durata teorica della batteria 371 1646 3500 14027 28386 Ore
Durata teorica della batteria 16 69 146 584 1183 Giorni
Durata sperimentale della batteria (VDD > 2.8 V) 11 53 - 640 (min) - Giorni
Durata sperimentale della batteria (funzionamento effettivo) 16 71 - 860 (min) - Giorni

Il grafico seguente mostra la tensione della batteria misurata con un pool di otto sensori in produzione presso l'auditorium di Casatenovo dal 2 gennaio 2018 al 10 ottobre 2020 (nota 10).

Tre anni di tensione di aimentazione

Alcune osservazioni:

Note

  1. Per un'analisi dettagliata occorrerebbe tenere conto dell'energia consumata, della resistenza interna, della temperatura, della non linearità del carico: anche alla luce della nota 5, ciò renderebbe (inutilmente) complessa l'analisi...
  2. Il watchdog del PIC18 può funzionare anche in modalità wake-up timer
  3. Tale tempo è indicato sui fogli tecnici solo come valore tipico
  4. I fogli tecnici di LM75A  raccomandano una tensione minima di alimentazione 2.8 V (NXP, valore utilizzato) oppure 2,7 V (TI). Prove sperimentali hanno mostrato che a 2.3 V e temperatura ambiente il componente è ancora funzionante
  5. Il valore della capacità della batteria dipende anche dalla definizione di "batteria scarica": in genere i produttori considerano scarica una batteria con tensione pari a 2,0 V; in questa applicazione la batteria può invece essere considerata scarica quando la tensione scende sotto i 2,8 V
  6. Il valore di 300 ms, forse eccessivo, è indicato solo sui fogli tecnici TI come valore massimo del tempo di conversione
  7. Questo grafico è relativo ad una batteria praticamente scarica
  8. La procedura utilizzata per misurare la tensione di alimentazione è corretta solo se VDD > 2.05 V circa
  9. Sono installati otto sensori dal gennaio 2018 presso l'auditorium di Casatenovo ed una ventina dal marzo 2018 presso il municipio di Casatenovo
  10. Il grafico utilizza i dati in un database InfluxDB ed è realizzato con Grafana

Data di creazione di questa pagina: ottobre 2017
Ultima modifica: 12 ottobre 2020

Licenza Creative Commons Attribuzione 4.0 Internazionale


Pagina principaleAccessibilitàNote legaliPosta elettronicaXHTML 1.0 StrictCSS 3

Vai in cima