Salta la barra di navigazione [1] - Vai alla barra di navigazione [3] - Scrivimi una mail [4]

PIC-WL-Sen: analisi della durata della batteria

Sommario - Novità - Tutorial - Progetti - Risorse - Non solo elettronica

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 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 è quella di alternare due fasi:

La durata della batteria in ore può essere, in prima approssimazione, 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 = 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  MHz   Consumo con clock a 16 MHz   Consumo con clock a 1 MHz   Consumo con clock a 32 kHz

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 disattivare gli ingressi digitali 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 6) che si riduce sensibilmente quando l'assorbimento di corrente è elevato oppure a bassa temperatura.

Il grafico seguente mostra il legame tra temperatura ambiente e tensione: per variazioni di 20 °C, la tensione cambia di circa 100 mV, scendendo alle temperature più basse. Tensione di alimentazione e temperatura sono state rilevate con un PIC-WL-Sen appoggiato sopra un termosifone, usando come riferimento la VREF interna al PIC18 e salvando i dati in un database InfluxDB.

Il legame tra tensione di alimentazione e temperatura

La tensione di uscita dipende fortemente dalla corrente erogata, a causa dell'elevata resistenza interna come mostrato per esempio nel grafico seguente. In particolare viene spesso indicata come ottimale una corrente media inferiore a frazioni di mA con picchi di breve durata non superiori a 10-20 mA.

Un altro elemento da considerare è l'autoscarica (circa l'uno percento all'anno).

Si è infine osservato che nelle prime ore d'uso la tensione erogata dalla batteria scende molto velocemente, da 3,3 V a 3 V circa. Non ho trovato spiegazioni a questo fenomeno.

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, era caratterizzato dalle seguenti migliorie:

La sperimentazione è stata condotta ad una temperatura 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.

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.

Conclusioni

I test è stato condotto 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 è in corso ed 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 è 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 uF (utile solo durante le fasi di analisi ed ottimizzazione del software) e quella blu con C2 = 220 uF, 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 o tre 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:

Mancano dati sperimentali relativi ultime colonne, cioè quelli che possono essere considerati gli scenari tipici di utilizzo di questo circuito; la sperimentazione è in corso ed i risultati verranno pubblicati quando saranno disponibili.

Durata dello standby 1 1 1 35 70 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 7 6 µA
         
Durata teorica della batteria 376 1646 3500 28386 33825 Ore
Durata teorica della batteria 16 69 146 1183 1409 Giorni
Durata sperimentale della batteria (valori raccomandati) 11 53 - - - Giorni
Durata sperimentale della batteria 16 71 - - - Giorni

Note

  1. Per un'analisi dettagliata occorrerebbe tenere conto dell'energia consumata, della resistenza interna, della temperatura: 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).
  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

 

Data di creazione di questa pagina: ottobre 2017
Ultima modifica: 29 dicembre 2017

Licenza Creative Commons Attribuzione 4.0 Internazionale


EN - Pagina principale - Sommario - Accessibilità - Note legali e privacy policy - Posta elettronica

XHTML 1.0 Strict - CSS 3