Jump to content
PLC Forum


Sign in to follow this  
davideversari

Consumo Di Un Datalogger

Recommended Posts

davideversari

salve,

mi sto cimentando nella realizzazione di un datalogger per l'acquisizione di segnali digitali ed analogici.

Ho realizzato alcuni prototipi con diversi microcontrollori; quello che piu' si addice alla mia idea di circuito

e' il microchip 18f47j13.

Mi sono arenato sul consumo del circuito, vuoi perche' e' la prima volta che realizzo un circuito da alimentare con un treno batterie

per il maggiore tempo possibile , per evitare di doverle sostituire ogni mese!

Ho isolato e misurato il consumo di corrente di ogni componente attivo; 1 RTC DS3231 2 regolatori di tensione MCP175533 ed 1 SD CARD

per questi componenti l'assorbimento misurato e' come da tabella.

per il microcontrollore, inizialmente ho misurato 12 mA ; dato che non posso permettermi questo consumo

ho eliminato pull up inutili, ho utilizzato un quarzo 8 MHZ e apportato al firmware modifiche per fare risparmiare energia, portando a 5 mA l'assorbimento del Pic.

Importante premessa: per ragioni di campionamento ho preferito non mettere mai in sleep il Pic; anche perche' non so se lo stesso possa sopportare milioni di cicli sleep / wake up

in quanto rimarrebbe dormiente pochi microSec.

sulle tabelle dei consumi del Pic in oggetto, non proprio chiarissime, i consumi sono simili a quelli da me riscontrati; per consumare meno occorrerebbe anzittutto

abbassare il clock...pare. cosa che non posso comunque permettermi

la mia domanda :

ma allora perche' li chiamano nanoWatt tecnology ? come si possono abbassare i consumi a 1 mA o meno?

Davide

Share this post


Link to post
Share on other sites

Livio Orsini
anche perche' non so se lo stesso possa sopportare milioni di cicli sleep / wake up in quanto rimarrebbe dormiente pochi microSec.

Se non è cambiato qualche cosa la microchip non pone limiti a questa tecnica. Gli unici limiti son quelli di scrittura della memoria di programmazione.

Per verificare se il gico vale la candela non è tanto il tempo di sleep, ma il duty cycle tra CPU attiva e CPU dormiente; se questi pochi µs di sleep portano il duty cycle a, per esempio, 70%, sigifica ridurre il consumo del 30%, riduzione che non è banale.

ma allora perche' li chiamano nanoWatt tecnology ?

Devi fare sempre riferimento alle prestazioni. Quella serie di controllori è a basso consumo paragonando le prestazioni.

PS. Ho spsotato la discussione nel forum e sezione adatta all'argomento della discussione.

Edited by Livio Orsini

Share this post


Link to post
Share on other sites
davideversari

Ciao,

ridurre di un 30% , ammettendo di riuscirci sarebbe gia' qualcosa.

ma devo trovare il modo di abbassarlo in modo drastico , diverso tre batterie tipo C , non ricaricabile , non lo alimentano nemmeno per 1 mese, parlo del datalogger.

eppure so di un datalogger in commercio che consuma meno di 2 mA....ma come avranno fatto?

io le ho pensate tutte e l'unica risposta che mi e' venuta in mente e' un campionamento, ovviamente non lo dichiarano, di tipo cicli di misura di 1 minuto + sleep 9 minuti , oppure cicli di misura di 5 secondi + sleep 55 secondi ; questo permetterebbe un campionamento statisticamente accettabile, come pure una parvenza di deviazione standard nel ciclo 1+9 minuti (10 minuti)

e consumi del circuito a questo punto molto minori di 2 mA.

grazie,

davide

Share this post


Link to post
Share on other sites
Livio Orsini
che consuma meno di 2 mA....ma come avranno fatto?

Ci sono altre tecnologie che consumano molto meno.

Tempo addietro avevamo fatto una specie di data logger co consumava un bel po' meno.

però molto dipende da qaunte misure devi fare e da che tipo di misure.

Share this post


Link to post
Share on other sites
Darlington

Una domanda: perché usi regolatori di tensione che, comunque, comportano uno spreco di energia? Non è più conveniente usare dispositivi che già accettino il range di alimentazione che intendi usare?

I microcontrollori sono sì a basso consumo, ma per sfruttarne il basso consumo occorre una certa ottimizzazione del firmware; non è che se prendo un firmware che, scritto per il microcontrollore X mi consuma 10mA, sbattendolo sul microcontrollore Y il consumo cala da solo a 1mA..

Share this post


Link to post
Share on other sites
accacca

Darlington ha ragione i regolatori di tensione che hai scelto non sono il massimo per quanto riguarda i consumi

Io conosco texas e guarderei lì per un sostituto ma ci sono ovviamente N altre soluzioni.

Devi considerare anche il comportamento impulsivo del tuo carico poichè accendi e spegni continuamente le perifieriche.

Per valutare se andare o meno in sleep con il micro devi calcolare i tempi di wakeup che dipendono dal tempo di startup dell'oscillatore

Se lo sleep dura meno del wakeup hai già deciso Una strategia diveresa, ma non conosco pic e non so se è possibile, è cambiare la frequenza di oscillazione.
Di solito in basso consumo, se non ti spegni, ti puoi appoggiare a un quarzo da 32KHz a un oscillatore RC interno

Bisogna vedere cosa consente di fare il tuo micro. Quando serve cambi velocità sul clock principale Anche qui però hai i tempi di startup da rispettare

Ci sono altre piattaforme che hanno soluzioni a basso consumo Io conosco (ma ormai tutti hanno qualcosa)

Energy micro

ST cortex-M0

MSP430

Per darti un'idea

Ho utilizzato una scheda con un cortex energymicro + wifi che aveva consumi medi di qualche mA a wifi collegato.

Il mio record è un datalogger due canali analogici realizzato con un MSP430 Con il modulo gsm agganciato alla rete consumo 1.5mA medi

forse però sono più "industriali" se l'approccio è casalingo condivido la scelta di pic facilmente reperibile.

Share this post


Link to post
Share on other sites
davideversari

grazie per le risposte

gli MCP1755 sono solo una scelta iniziale a basso costo; poi usero' penso dei MAXIM con un rendimento piu' alto.

per ora sto lavorando sul Pic e poco importano i reg tensione. i 5 mA sono del solo PIC!

rispondo all'utilizzo dei reg tensione: in primo luogo l'alimentazione e' tramite 2 batterie al litio tipo C da 3,6 V , questo perche' la SD card ha

richieste in termini di corrente e tensione ben precise e purtroppo diverse dalle caratteristiche di Vsupply min del PIC.

le 2 batterie arrivano a fine vita con 4 V in uscita , tanto serve al regolatore che alimenta la SD card (ovviamente regolatore con Shut down per limitare il consumo)

inoltre un regolatore di tensione a mio parere e' fondamentale per alimentare in modo corretto e vuoi anche "proteggere" il pic dal lato

alimentazione....forse Livio sara' d'accordo con me !

in ogni caso i MAXIM che ho addocchiato inducono a sprechi davvero minimi , forse lo spreco semmai e' in danaro , circa 3 $ cad.

non ho poi parlato di firmware buttato la o di altalena tra un modello di pic e un altro; non sono un professionista ma nemmeno l'ultimo arrivato in

materia microcontrollori e se posso faccio come si deve.

Semplicemente non capivo i tanto pubblicizzati 100 uA di consumo come si potessero ottenere?

e qui mi aggancio ai 32 Khz che mi consiglia Accacca ....con quelli si arriverebbe a 1 mA: devo riprovare ma mi sembra di ricordare che con un clock cosi' basso ci fosse qualche problema con la SD card

comunque potrei provare a dimezzare quello attuale, quindi 4MHz.

in soldoni devo leggere un RTC , scrivere su una SD CARD, leggere in continuo 2 segnali digitali gestiti da interrupt , max 5 khz, e leggere 5 segnali analogici ogni 5 sec.

l'utilizzo un po diffidente dello sleep nasce dalla natura dei segnali digitali. (filtri antirimbalzo Hardware ovviamente)

per ora sono arrivato a 5 mA d'assorbimento del solo PIC.

i 2 reg tensione (MAXIM)+ RTC + consumo medio SDCARD in scrittura = 1,7 mA

( L'RTC volendo si potrebbe sostituire con quello del PIC ma il Ds3231 e' davvero preciso e soprattutto continua a lavorare anche se si spegne il PIC )

penso che faro' anche una prova con quanto proposto da ACCACCA usando un clock tipo 32 khz durante il periodo di datalogging dei segnali digitali per switchare su un quarzo 4 Mhz durante le fasi di conversione AD e di salvataggio su SD e RTC

prima mi documento sul tempo di start up quarzo...non deve interferire con il datalogging o provocare perdite significative di dati ,<= 0,2% per le mie esigenze

devo arrivare ad un consumo del PIC contenuto in 1,3 mA ed ad un consumo medio del datalogger di 3 mA , x garantire circa 3 mesi di autonomia

grazie di nuovo a tutti

Share this post


Link to post
Share on other sites
Darlington

inoltre un regolatore di tensione a mio parere e' fondamentale per alimentare in modo corretto

Dipende.

Normalmente un regolatore è indispensabile quando si opera con alimentazione da rete perché provvede a ripulire l'alimentazione da ripple e rumori vari; tu non hai di questi problemi in quanto lavori a batterie.

Non so il tuo PIC che range di alimentazione abbia, ma se anche con le batterie al massimo della carica (quindi 4.2V/cella, parlando di litio) hai ancora margine, puoi ometterlo.

Per la SD c'è poco da fare, se vuole 3.3V e tu gliene mandi 4 rischi di farla fuori.

Share this post


Link to post
Share on other sites
accacca

Davide pur non conoscendo nulal dell'applicazione mi lancio in consigli....

Io "mi dimenticherei" dei digitali sono gestiti a interrupt quindi leggi ii cambiamenti di stato in tempo reale in qualsiasi condizione.

se non c'è interrupt porti avanti l'ultimo stato letto.

Se sei arrivato a 5mA per lettura analogici sei quasi arrivato al tuo target De l'acquisizione dura 1secondo (ed è tanto) a 5mA e poi hai 4secondi spento ti ritrovi con un consumo mediodi 1mA

Altra idea se il tuo rtc ha un pin e i registri di allarme potresti sfruttare quelli per il wakeup. Prima di spegnersi il pic programma l'orologio per allarme a tempo attuale+5secondi e il pin di allarme sarà l'evento che risveglia il micro che rimane a consumo zero per 4secondi. C'è però il rischio di sbagliare la programmazione dell'orologio e non svegliarsi più...

La "rogna" secondo me è l'SD card non conosco i consumi ma io cercherei una soluzione del tipo accumulo in un buffer (avendo la ram....) e una volta ogni tot scarico il buffer nella Sd alla max velocità possibile Hai consumi elevati ma per tempi brevi alternati a periodi lunghi di inattività quindi abbassi il consumo medio.

Con la SD come fai perchè se la spegni devi reinizializzarla ogni volta mi pare che sia possibile metterla in standby ma non ricordo bene ci dovrebbe essere qualxosa sulle specifiche.

Share this post


Link to post
Share on other sites
Livio Orsini
in soldoni devo leggere un RTC , scrivere su una SD CARD, leggere in continuo 2 segnali digitali gestiti da interrupt , max 5 khz, e leggere 5 segnali analogici ogni 5 sec.

Per gli interrupt a 200 µs non c'è problema, ti metti in sleep e quando arriva l'interrupt hai la sveglia in automatico.

Idem per la elttura degli analogici ogni 5": interrupt a tempo che da la sveglia e lettura degi analogici.

Per la SD card la cosa miglikore è eliminarla. Metti una EEPROM in I2C ottieni la medesima funzione e consumi molto meno e non ti complichi la vita con le alimentazioni a 3.3V.

Se devi scaricare i dati dalla memoria basta mettere una seriale e sei tranquillo; il micro ha gia tutto, l'interfaccia per 232 o 485 la puoi mettere esterna sul connettore.

Il regolatore lo fai con uno step down SMPS. Gli attuali ti garantiscono rendimenti attorno al 90% e più. Essendo alimentato a batteria non hai i tipici prblemi di reiezione ai disturbi degli SMPS.

Share this post


Link to post
Share on other sites
davideversari

devo ringraziarvi, tutti e tre, perché i vostri commenti sono un ottimi .

Livio lo so che hai ragione , ma per vari motivi non posso rinunciare alla SDCARD.

riguardo allo step down , perché lo preferisci ad un comune regolatore di tensione?

pensavo di usare un Vreg MAX883; ho letto le caratteristiche

e pare essere davvero performante!

per gli step down di solito ci vogliono parecchi componenti esterni....o mi sbaglio? e poi ho sempre avuto delle rogne ad usarli....non li conosco bene

Accacca, sempre riguardo alla SD CARD, in effetti puo' essere messa in sleep , c'e' un comando specifico , ed 1 pin per l'interrupt.

questo consentirebbe un risparmio di 35 mA x 1" (tanto impiega ad inizializzare) per ogni fase di salvataggio dati. Vedo se ne vale la pena .....

per l'alimentazione del PIC appurato che il Vreg e' superfluo in termini di stabilizzazzione e protezione dalla rete , in quanto questa e' costituita

da batterie , c'e solo un piccolo problema di matematica: 2 x 3,6 V = 7,2 V ed il PIC funziona per 5,5 /2,7 V

se le metto in serie non riesco a sfruttare la Vmin di fine vita batteria al Litio, ossia 2 V, perché come minio al PIC devo dare 2,5 V minimo (ho provato )

il Litio non va bene senza Vreg

un 'alternativa potrebbe essere usare 3 alkaline in serie che hanno fine vita per 0,8 V quindi fine vita = 3x0,8 V = 2,4 V

spendo meno a parita' di capacita' rispetto al Litio , 8000 mA, ed evito il Vreg come consigliava Darlington in quanto il range d'alimentazione diventerebbe max 4,5 min 2,4 V

Ottima soluzione direi.

adesso inserisco nel firmware gli sleep e interrupt per la conversione AD e vediamo cosa cambia.

se non basta ad abbassare il consumo , mi complico un po la vita e provo a lavorare con il quarzo interno da 31 KHz.

NON l'ho mai fatto prima , devo provare

ho visto che e' gia' previsto anche un quarzo da 8 MHz nel PIC , da usare alternativamente al 31 KHz

evidentemente e' una pratica nota e molto usata se l'hanno predisposta.

resta da vedere se con 31KHz il pic esegue o meno il firmware , in pratica la gestione degli interrupt ?

penso di si

Share this post


Link to post
Share on other sites
davideversari

cavoli

ho dimenticato la SDCARD, che vuole essere alimentata 2,7/3,6 V!

con le alkaline non va bene perché si parte da 4,5 e si arriva a 2,4 V

se metto un Vreg MAX883 non sfrutto al 100% la capacita' batterie perché per avere i 2,7 V che servono alla SDCARD devo alimentare almeno con 2,8/2,9 V

Onestamente questo e' un problema un po più' grande delle mie competenze;

devo ripassarmi gli step up/down per vedere se si puo' stabilizzare una tensione di tipo 3,3 V partendo da una

alimentazione variabile di 4,5 V to 2,4 V ?

avete qualche consiglio da darmi ?

Share this post


Link to post
Share on other sites
Livio Orsini
avete qualche consiglio da darmi ?

Consulta i prodotti LT (Linear Technology) che è leader nei dispositivi step up-step down.

Share this post


Link to post
Share on other sites
accacca

io ho usato questi... ma non sono aggiornato

TPS62100 texas instrument

LT1302 Linear technology

Share this post


Link to post
Share on other sites
Livio Orsini

Sono ancora tra i più performanti.

Share this post


Link to post
Share on other sites
Darlington

la Vmin di fine vita batteria al Litio, ossia 2 V

Una domanda: non sono ricaricabili, vero?

Perché tutti i dispositivi con cui ho avuto a che fare, che usavano batterie ricaricabili, cutoffavano a 3.2V... se fai scendere una batteria a 2V ho paura che poi non sia granché propensa ad essere ricaricata... se invece parli di Litio non ricaricabili, il problema non si pone.

Share this post


Link to post
Share on other sites
davideversari

alla fine ho risolto cosi':

3 batterie NON ricaricabili tipo C 1,5V 7800 mA , fine vita 0,8V , messe in serie ovviamente

Darlington , le batterie la Litio NON ricaicabili (2x 7 euro) per ora le lascio in stand by in quanto a parita' di capacita' spendo enormemente

meno con le ALkaline; le tengo in considerazione solo per le ottime performance a temperature <-10 C

Le 3 alkaline alimentano il PIC direttamente senza problemi sino a fine vita, 2,4 V, come mi ha consigliato Darlington.

Mentre per la SD card ho predisposto uno stadio d'alimentazione semplicissimo con un

Vreg 1,8 V con Shut Down gestito dal PIC, in pratica ON solo quando deve salvare su SD CARD.

il Vreg alimenta a su volta un survoltore step up 1,8 V to 3,3 V ; questo permette il corretto

funzionamento della SD sino a fine vita batterie .

Ho fatto una prova utilizzando quello che avevo in casa, un Vreg mirochip MCP1755-18 ed un step up MCP1073

ed e' risultato tutto ben funzionante.

dato che il consumo della SD influisce meno di un 10% sul consumo complessivo la scelta dei componenti e' da

valutare solo in termini d'affidabilita' a mio parere , non tanto di rendimento

tanto per capirci un MCP1640 costa 0,50 euro mentre uno step up LineaTec circa 3 / 5 U$

se pensate sia piu' affidabile un LinearTec. piuttosto che un microchip allora uso Lt

Non essendo molto competente sugli step up e' ben accetto un consiglio.


ps: ho sbagliato a scrivere , ho provato un step up Lt1073 (MCP1073 e' un errore)

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...