Circuito risparmioso

Dovrei fare un circuito che consuma il meno possibile di corrente.
Ovviamente con i nostri attiny (non mi servono molti pin).

Deve stare in ascolto di un rfid ed alimentato a 12/14 volt dalla batteria auto,

Cosa mi consigliate?
Sicuramente lo metterò (anzi lo lascerò) a 1Mhz.

Per il resto?

Puoi disattivare le periferiche interne che non utilizzi. Leggi il datasheet cap 7.4 "Minimizing Power Consumtion", e spengi ciò che non ti serve

Di cosa parli attiny84 o 85? Sono uguali per quanto riguarda le periferiche?

erpomata:
Di cosa parli attiny84 o 85? Sono uguali per quanto riguarda le periferiche?

Di entrambi, il capitolo 7.4 riguarda il risparmio energetico sui datasheet del Tiny85 e del Tiny84.
Come periferiche dovrebbero essere identici.
Sicuramente se non usi l'ADC, staccalo che è quello che consuma di più di tutti. Poi puoi staccare l'AC, il WD ed il BO.

:wink:
Ottimo anche perché tranne l'ADC, l'AC, il WD ed il BO non so neanche cosa siano :grin:

Magari potresti mandarlo in sleep e svegliarlo con un interrupt su un pin legato all'RFID, non ho mai usato RFID e non so se è fattibile ma otterresti un gran risparmio di corrente
Dopo tutte queste ottimizzazione occhio a non mettere un LM7805 ]:smiley:
Ciao

A ecco proprio quello.
Come lo alimento?

erpomata:
:wink:
Ottimo anche perché tranne l'ADC, l'AC, il WD ed il BO non so neanche cosa siano :grin:

ADC = Analog to Digital Converter
AC = Analog Comparator
WD = WatchDog
BO = Brown-Out

flz47655:
Magari potresti mandarlo in sleep e svegliarlo con un interrupt su un pin legato all'RFID, non ho mai usato RFID e non so se è fattibile ma otterresti un gran risparmio di corrente

Difatti questo non l'ho consigliato neanche io perché non so se il sensore spedisce un singolo impulso oppure comunica con un altro tipo di sistema (variazione di tensione, treno di impulsi ecc..).

L'RFID comunica con una SoftwareSerial, non penso si possa mettere in sleep il chippettino.
Poi posso sbagliarmi tranquillamente.

Difatti questo non l'ho consigliato neanche io perché non so se il sensore spedisce un singolo impulso oppure comunica con un altro tipo di sistema (variazione di tensione, treno di impulsi ecc..).

Ci sarebbe da vedere che segnale è e magari con componenti passivi condizionarlo per svegliare il micro nel modo giusto

A ecco proprio quello. Come lo alimento?

Se vai a batterie non mettere proprio il regolatore, io in genere vado con 3 AA da 1.2v ottenendo 3.6v così se anche uno mette quelle non ricaricabili da 1.5v non sfora i limiti ma ha sui 4.5v (un pò di più se sono completamente cariche)

Se vuoi risparmiare al massimo non mettere neanche il led e usa delle resistenze di pull-up più elevate

Ciao

erpomata:
L'RFID comunica con una SoftwareSerial, non penso si possa mettere in sleep il chippettino.
Poi posso sbagliarmi tranquillamente.

La SoftwareSerial gestisce i dati tramite interrupt, forse e dico forse si potrebbe provare. Un interrupt in arrivo risveglia il micro, qualunque esso sia. Risvegliato il micro bisogna vedere se il tempo di ritorno alla piena operatività è inferiore a quello di arrivo dei dati (se cioè perdi qualcosa per strada oppure no). Però stiamo parlando di roba molto teorica, andrebbero fatte delle prove pratiche.

Bè diciamo che ho fatto delle prove molto veloci però devo dire che se lascio il trasmettitore vicino all'antennina arrivano un pacco di dati (cioè il codice della chiave) quindi si potrebbe dire che avvicino la chiave e la lascio 2 secondi (invece di 1) ed il primo codice risveglia il chip ed il secondo legge la chiave.
Devo fare delle prove.

Grazie per i suggerimenti.

Se alimenti a batteria come ti ho detto occhio che non hai più 5v alle uscite

Si lo so grazie :wink:

Scusate potreste darmi qualche dritta su come usare softwareserial e interrupt?
Viene fatto in automatico dalla libreria? Quindi non lo devo mettere in sleep io.

A sto punto il topic è più da sezione Software.

Tralascia la SoftwareSerial, che usi come una comune seriale.
Concentrati su sleep e interrupt:
http://www.arduino.cc/playground/Learning/arduinoSleepCode

Inizia studiando quegli esempi e cerca di imparare il più possibile. Poi aggiungici la SoftwareSerial e fai dei test per vedere se l'invio di un dato al micro in sleep risveglia quest'ultimo oppure no.

Ok ci sono riuscito ed ora mi è tutto più chiaro dal punto di vista hardware.
Per il software non ho capito se lo sleep è meglio o uguale al leggermi il datasheet cap 7.4 "Minimizing Power Consumtion" (cosa che ancora non ho fatto) o me lo devo leggere ugualmente? Cioè si può migliorare ancora il consumo di corrente oltre che a mettere in sleep il micro?

Inoltre mi pare di capire che la softwareserial gestisce processori cloccati come minimo a 8Mhz. Sbaglio?

Grazie

EDIT: forse dipende dal livello di sleep impostato?

erpomata:
Ok ci sono riuscito ed ora mi è tutto più chiaro dal punto di vista hardware.
Per il software non ho capito se lo sleep è meglio o uguale al leggermi il datasheet cap 7.4 "Minimizing Power Consumtion" (cosa che ancora non ho fatto) o me lo devo leggere ugualmente? Cioè si può migliorare ancora il consumo di corrente oltre che a mettere in sleep il micro?

Per capire lo sleep devi leggerti quel capitolo. In questo modo capisci "perché" lo sleep fa risparmiare energia. Lo fa togliendo il clock ad alcune periferiche interne. Togliere il clock non significa però disattivarle. Se agisci sui registri di sistema puoi anche letteralmente togliere la corrente a queste periferiche, in modo che anche se non attive (=senza clock) esse non consumino proprio nulla perché la "spina è staccata".
Ad esempio, l'ADC è quello che consuma maggiormente corrente: in sleep resta comunque alimentato. Togliere l'alimentazione all'ADC significa abbattere i consumi in sleep del 40%.

Inoltre mi pare di capire che la softwareserial gestisce processori cloccati come minimo a 8Mhz. Sbaglio?

Grazie

EDIT: forse dipende dal livello di sleep impostato?

No, è un limite insito all'implementazione, sotto agli 8 MHz l'emulazione SW va fuori specifiche ed otterresti una trasmissione piena di errori.

Tutto chiaro appena posso mi leggo il ds.

Per questo punto:

erpomata:
EDIT: forse dipende dal livello di sleep impostato?

forse, non mi sono spiegato bene.
Era riferito a:

erpomata:
Per il software non ho capito se lo sleep è meglio o uguale al leggermi il datasheet cap 7.4 "Minimizing Power Consumtion" (cosa che ancora non ho fatto) o me lo devo leggere ugualmente? Cioè si può migliorare ancora il consumo di corrente oltre che a mettere in sleep il micro?

Comunque è tutto chiaro devo leggermi il ds.
Per ora grazie.

Ah, non avevo capito.
Certo, di sleep ne esistono più livelli: gli Attiny ne hanno 3, gli Atmega normalmente 5. Ogni livello stacca il clock a sempre più periferiche, però in questo modo si disattivano via via sempre più funzioni del micro ed andando negli "strati profondi" poi devi studiarti bene il modo per risvegliare il micro perché il metodo che andava per un livello meno aggressivo potrebbe non bastare più.