Go Down

Topic: Componenti dei micro (Read 663 times) previous topic - next topic

erpomata

Dopo aver parlato con Leo in questo topic

http://arduino.cc/forum/index.php/topic,131355.msg987635.html#msg987635

per un circuito risparmioso di corrente, ho cercato qualcosa in merito a:

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

per capire se disabilitarli o meno ma, tolto il primo, non sono riusci a capire minimamente di cosa si parli.
C'è da qualche parte una guida per sapere di che si tratta?
http://www.paologiammarco.it
http://www.valentinamagni.it

leo72

Il datasheet è la BIBBIA a cui devi fare sempre riferimento  ;)
L'AC, Analog Comparator, o comparatore analogico, è un circuito basato su un amplificatore operazionale che serve a confrontare ("comparare") 2 tensioni. Se guardi in "Megatopic" da qualche giorno c'è una mia libreria che permette di utilizzarlo, perché il core di Arduino non integra nessuna funzione per farlo. Puoi staccarlo.

L'ADC è il convertitore analogico/digitale, ossia è il circuito che usi tutte le volte che fai un analogRead su un pin analogico. Trasforma un valore di una tensione in un numero, esempio leggi 2.5V ed ottieni 512 come lettura. Staccalo sempre prima di mettere in sleep il micro perché questo circuito è responsabile di un grosso consumo. Ah, ovviamente ricordati di riattivarlo se poi da "sveglio" il micro deve eseguire una lettura analogica  ;)

WD: il WatchDog è un circuito che serve a resettare il microcontrollore una volta che il suo timer ha raggiunto il valore prefissato dall'utente. Siccome non sai cos'è, disattivalo che vuol dire che non ti serve.

Il BO, Brown-Out Detector, è un circuito che resetta il microcontrollore finché la tensione di alimentazione che riceve il microcontrollore non è superiore ad una certa soglia prefissata. Serve per evitare malfunzionamenti dovuti a tensioni troppo basse.

erpomata

Ottimo chiarissimo come sempre.
Lo so che il ds è la BIBBIA ma se uno non ha i concetti chiari può essere difficile capire anche la BIBBIA.

Per quanto riguarda l'ADC non avevo dubbi ed anche per l'AC mi stavo chiarendo le idee seguendo la tua discussione sulla libreria.
Gli altri due erano proprio materia oscura ed ora mi si è fatta luce.

Da quello che immagino conviene non spegnere il BO pe proteggere il processore. Il resto spengo tutto non mi servono.
http://www.paologiammarco.it
http://www.valentinamagni.it

Michele Menniti

Il BO non serve se hai una fonte di alimentazione sicura o se un'eventuale diminuzione della tensione di alimentazione sigfnifica per te una situazione stabile sulla quale intervenire, a volte i malfunzionamenti possono essere creati proprio da una situazione di stallo dell'alimentazione che resetta in continuazione il micro.
P.es. se il tuo circuito è alimentato da una batteria potente, ed il consumo del circuito è tale da non avere picchi di assorbimento elevati ma resta più o meno costante, non c'è ragione per la quale la batteria possa andare sotto soglia; quando la batteria si scarica non c'è ragione che tu mantenga un controllo del micro in stato di reset, la batteria va sostituita e basta.
Diverso può essere il discorso di un'alimentazione a rete elettrica con un circuito ad elevati picchi di assorbimento, in questo caso il BOD Level ripristina rapidamente uno stato che può essere che non si ripetà mai più o solo poche volte nel tempo, garantendo quindi il corretto funzionamento del circuito.
Se una opzione esiste vuol dire che c'è sempre una valida ragione per attivarla o disattivarla, altrimenti non la renderebbero opzionale.
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

leo72

IL BO, come il WD, è un'arma a doppio taglio. Può risultare utile per impedire che il micro operi in modo strano, ad esempio se la tensione scende sotto al valore che gli serve in base al suo clock potrebbe fare i capricci, ma può risultare anche fonte di problemi se usi un'alimentazione a batteria e la batteria scende di poco sotto al valore del BO, con il micro che viene messo in reset ed il tuo circuito che non funziona più.
L'Arduino, ad esempio, imposta il 328 con un BO fissato a 2,7V per cui se programmi un micro per stare in standalone devi adattare il BO in base al clock che hai ed alla tensione di alimentazione che vuoi usare. Se ad esempio vuoi mettere il micro a 1 MHz con un'alimentazione inferiore (il core "P" lavora fino a 1,8V) e ti scordi il BO, il tuo micro non parte.

erpomata

Ok grazie mille per ora è tutto.
http://www.paologiammarco.it
http://www.valentinamagni.it

Go Up