ELEMANIA
PIC16F690 - ADC: generalità
Convertitore AD: descrizione generale
Il PIC ha al proprio interno un convertitore AD a 10 bit. Per
i dettagli sul funzionamento generale dei convertitori AD
rimandiamo il lettore all'apposita
sezione del sito. Lo schema a blocchi, così come è riportato
nel manuale, è il seguente:
Notiamo che lo schema è composto dalle seguenti parti:
- Un multiplexer digitale a
14 ingressi (MUX) che consente di inviare al
convertitore il segnale proveniente da 14
diverse sorgenti (ovviamente una alla volta). La
selezione dell'ingresso avviene attraverso i 4
pin CHS (CHS0, CHS1, CHS2, CHS3) del registro
ADCON0.
- La tensione di riferimento
può essere la tensione di alimentazione del PIC
VDD oppure una diversa tensione VREF
applicata al pin RA1/AN1. La scelta fra le due
diverse tensioni di riferimento avviene tramite
il bit VCFG del registro ADCON0.
- Il segnale GO/DONE
(che corrisponde a un bit del registro ADCON0)
serve per avviare una conversione (segnale di
Start of Conversion) o per segnalare
che la precedente conversione è terminata
(segnale di End of Conversion).
- Il segnale ADON
(corrispondente a un bit di ADCON0) serve per
abilitare o disabilitare il funzionamento del
convertitore AD.
- Al termine della conversione il risultato a
10 bit è salvato nella coppia di registri a 8
bit ADRESH e ADRESL.
- Il bit ADFM (sempre
appartenente al registro ADCON0) serve per
stabilire il formato di rappresentazione del
dato in uscita (vedi qui sotto).
Registri ADRESH e ADRESL e risultato della
conversione
Siccome il convertitore produce un risultato a 10 bit (e
dunque un valore compreso fra 0 e 1023) non è sufficiente un
unico registro a 8 bit per contenerlo. Per questo motivo sono
utilizzati i due registri ADRESH e ADRESL, che insieme hanno bit
in abbondanza (16). Il risultato viene salvato nella coppia di
registri in due modi possibili, a seconda del valore del bit
ADFM:
- Right justified (ADFM=1): in questo caso gli
8 bit meno significativi vengono salvati in
ADRESL e i due bit più significativi rimanenti
in ADRESH:
- Left justified (ADFM=0): in questo caso gli
8 bit più significativi vengono salvati in
ADRESH e i due bit meno significativi rimanenti
in ADRESL:
Dal numero intero N a 10 bit risultante dalla conversione è
possibile risalire al valore della tensione analogica convertita
con la seguente formula:
Vanalogica = N * Vriferimento/1024
Per esempio, supponendo di usare una Vriferimento
= 10 V e che il risultato della conversione sia N = 724, il
valore della tensione analogica convertita è:
Vanalogica = 724 * 10/1024 = 7,07 V
Tale valore è noto in teoria con un errore massimo pari a
mezzo quanto e cioè
Errore = Q/2 = (Vriferimento/1024)/2
= (10/1024)/2 = ±4,9 mV
In realtà l'errore è maggiore a causa di errori di non
linearità e di offset presenti nel convertitore AD del PIC.
Registri di controllo dell'ADC: ADCON0
Il funzionamento dell'ADC è controllato da due registri:
ADCON0 e ADCON1. Parleremo più avanti di ADCON1. I bit di
ADCON0
sono i seguenti:
Il significato dei diversi bit, in gran parte già esaminati
prima, è il seguente:
- ADFM serve per stabilire il formato del dato
in uscita (ADFM=1 right justified, ADFM=0 left
justified);
- VCFG serve per selezionare la tensione di
riferimento (VCFG=1 seleziona VREF,
VCFG=0 seleziona VDD);
- CHS3, CHS2, CHS1 e CHS0 selezionano la
sorgente multiplexata da inviare al
convertitore:
Note:
- CVREF è la tensione usata internamente dai
comparatori del PIC (e
a sua volta dipendente dalla tensione di
alimentazione VDD);
- VP6 è il generatore interno al PIC di tensione
costante 0,6 V. Scegliendo VP6 come ingresso
dell'ADC e usando come tensione di riferimento
la tensione VDD di alimentazione del
PIC, è possibile misurare il valore della VDD
stessa. Questo è utile quando il PIC è
alimentato per esempio da una batteria e si
vuole conoscere la percentuale di carica della
batteria stessa.
- GO/DONE
serve per avviare una nuova conversione (GO/DONE=1);
al termine della conversione il bit viene
automaticamente azzerato dal convertitore stesso
per segnalare il completamento dell'operazione
(GO/DONE=0).
- ADON serve per abilitare (1) o disabilitare
(0) il funzionamento del convertitore AD; quando
il convertitore è disabilitato, è spento e non
consuma corrente.
precedente - successiva
Sito realizzato in base al
template offerto da
http://www.graphixmania.it