ultimo aggiornamento il 25 gennaio 2010 |
|
ADC0831 CONVERTITORE ANALOGICO / DIGITALE
Il processore Basic Stamp 2
non dispone di un ingresso analogico/digitale per poter convertire la
tensione fornita in uscita da alcuni tipi di sensori come:
LM35,
GP2D2
Per ovviare a questo problema è possibile utilizzare un apposito integrato,
Il modello scelto è denominato ADC0831
prodotto dalla National Semiconductor
Si tratta di un convertitore analogico digitale a 8 bit ad approssimazioni
successive (SAR), con le seguenti caratteristiche:
tempo di conversione (tc) : 32 μs;
risoluzione: 8 bit;
errore di quantizzazione (ε): 1 LSB;
ingressi differenziali analogici, con range di tensione in ingresso compreso tra 0 e 5 V;
regolazione del fondoscala tramite VREF;
I/O TTL-compatibili e CMOS-compatibili;
Alimentazione: Singola: 5 V
Esso misura una tensione e la
converte come un numero a 8 bit (byte).
Poiché la sua uscita è stata pensata per essere interpretata da un
microprocessore, ha alcune caratteristiche che non ha un voltmetro ordinario.
La figura a lato della foto della schedina mostra come un ADC0831 è collegato ad un sensore di temperatura LM35 e
il processore BS2.
Come possiamo vedere gli ingressi del convertitore rappresentati da: Vin+, Vin-
e Vref.
I pin Vin sono gli input che accettano la tensione che deve essere misurata,
questa deve rientrare nei valori della tensione di alimentazione del
convertitore cioè tra 0 e 5V, se così non fosse, l'ADC può essere danneggiato.
L' ADC misura la differenza tra le tensioni presenti tra i pin Vin + e Vin-, con
il requisito che la tensione al pin Vin+ sia superiore a quella sul pin Vin-.
Nel nostro circuito, Vin - è collegato a terra (0V), il che rende sicuro che la
tensione al Vin + sarà maggiore.
Se la tensione di ingresso al pin Vin+ sarà pari a 0 l'ADC emetterà in uscita (%000000000 binario). Vref
imposta il valore massimo di lettura, per cui l'ADC avrà il valore più alto possibile di byte, 255 (% 11111111 binario).
Ora c'è un limite a quanto vicino è possibile impostare Vref e Vin-; per scopi
pratici, ci dovrebbe essere almeno 1V di differenza tra i due.
Ciò significa che ogni unità di uscita ADC da 0 a 255 può rappresentare una
differenza di tensione di appena 1/255 = 0.0039 = 3.9 millivolt (mV).
Nel caso specifico noi vogliamo misurare la tensione in uscita dal sensore di
temperatura, questi genera una tensione di 10mV per grado.
Se si imposta Vref=2.55V quindi ogni unità ADC sarà 2,55/255 = 0.01V
= 10mV perciò, ogni unità di ADC sarà pari 1 grado.
La gamma di misurazione sarà da 0 a 255 gradi. Certo, l'estremità superiore
dell'intervallo è sprecata, poiché essa supera la temperatura massima di
esercizio del sensore.
Ma il compromesso è che il processore può accettare l'output di ADC come la
temperatura. senza fare alcun calcolo.
Questo fa risparmiare memoria di programma e rende semplice l'applicazione.
Ora che sappiamo come impostare l'ADC per effettuare le dimensioni, vediamo come
possiamo ottenere risultati dell' ADC tramite il Basic Stamp.
Come mostra la figura ADC si connette al Processore tramite solo tre pin: CS.
CLK e
DO.
CS serve per selezionare il chip, quando questo pin è a livello alto l' ADC è
disattivato e ignora i suoi ingressi e si spegne l'output di dati rappresentato
dal pin DO.
Mettendo a livello basso il pin CS si segnala alll'ADC di riattivarsi. Una volta
che l'ADC.
e selezionaro (CS bassa) è pronto ad effettuare una misurazione e ad emettere il
risultato attraverso il pin DO.
Il processore controlla questo processo attraverso il pin (CLK). CLK
è
inizialmente a livello basso (0) . Il Basic Stamp invia un breve impulso (1) per
poi tornare a (0). L'impulso fa si che l'ADC emetta sul pin DO un bit.
Il Basic Stamp preleva questo dato e lo accumula in una variabile sino a quando
non accumula tutti gli 8 bits.
Ogni volta che il processore acquisisce un nuovo bit sposta il precedente bits
per fare spazio.
In questo modo, acquisisce un po'
alla volta fino a quando non ha tutte le otto bit allineati in una riga in una
variabile di byte. Questo processo è chiamato comunicazione seriale sincrona
che ADC;
che è un metodo molto affidabile per un'ampia gamma di velocità, rendendolo uno
strumento popolare per microcontrollori per comunicare con altri circuiti.
PIN DI
COLLOQUIO |
||
IN |
Chip Select |
|
PIN ANALOGICI |
||
Vin+ |
IN |
Massimo valore positivo per il quale la combinazione di uscita è 1111 1111. |
Vin– |
IN |
Minimo valore negativo per il quale la combinazione di uscita è 0000 0000. |
VREF |
IN |
Bisogna impostarvi il valore dell’escursione totale (in tensione) del segnale massimo in ingresso. |
CLK |
IN |
Bisogna fornirvi il
clock necessario al funzionamento. È possibile farlo con una rete
oscillatoria o direttamente da microcontrollore.
fCK = 10 ÷ 400 kHz |
PIN DIGITALI |
||
DO |
OUT |
Data Output |
La sua tensione di alimentazione e di 5V. La tensione di
riferimento è ottenuta derivando quella di alimentazione tramite un trimmer
da 10kΏ.
L'integrato utilizzato possiede 8 pin, oltre ai pin d'ingresso (Vin+, Vin-,
pin 2-3), quelli di alimentazione (Vcc, GND, pin 8-4),
Schema elettrico dell'interfaccia convertitore
Analogico/Digitale
|
---|
Componenti per la realizzazione del prototipo | Componenti per la
realizzazione della versione definitiva della scheda |
Circuito stampato e disposizione componenti
Prototipo del convertitore su basetta millefori
Versione definitiva del convertitore
ADC0831 Convertitore analogico digitale | ||
Piedinatura | Datasheet | Foto dell'integrato |
Elenco revisioni: | |
25/05/2010 | inserito descrizione funzionamento e programma di prova |
25/01/2010 | Emissione preliminare |