Perché le tensioni di riferimento sono 1.024, 2.048 o
4.096 V?
Osservando le caratteristiche dei componenti indicati ai link precedenti, si
verifica che la maggior parte delle tensioni di riferimento prodotte non sono
numeri interi, ad esempio 1V o 2V, ma le più comuni sono valori apparentemente
"strani":
- 1.024 V
- 2.048 V
- 2.56 V
- 4.096 V
Il motivo per cui la tensione di riferimento ha questi valori è quello di
fornire una precisa risoluzione in conversione A/D.
E se osserviamo vediamo che:
1024 |
2 10 |
2048 |
2 11 |
256 |
2 8 |
4096 |
2 12 |
512 |
2 9 |
ovvero, si tratta in ogni caso di potenze di 2.
E il risultato della conversione è un valore
binario, ovvero basato su un sistema numerico di potenze di 2.
In pratica questo comporta che il valore di ogni bit sarà un numero intero
e non frazionario.
Se, ad esempio, il riferimento A/D positivo è 2 V e il riferimento negativo
è 0 V e la risoluzione della conversione è di 10 bit, ogni bit avrà il valore
di:
risoluzione di uno step = (Vref+ - Vref-) / 1024 = (2-0)
/ 1024 = 1.953125 mV
il che rende necessario che nelle operazioni successive di trattamento del
risultato sia impegnata matematica a virgola mobile.
Se utilizziamo invece un riferimento a 2,048 V, abbiamo:
risoluzione di uno step = (Vref+ - Vref-) / 1024 = 2.048
/ 1024 = 2 mV
il che semplifica decisamente il trattamento del risultato.
Analogamente, se il riferimento positivo sarà 5V:
risoluzione di uno step = (Vref+ - Vref-) / 1024 = 5 /
1024 = 4.8828125 mV
mentre se utilizziamo il riferimento a 4.096 V:
risoluzione di uno step = (Vref+ - Vref-) / 1024 = 4096
/ 1024 = 4 mV
Questo, nella maggior parte dei casi, rende i calcoli più facili e precisi.
Ad esempio, in Assembly, non sarà necessario ricorrere a librerie di
matematica in virgola mobile e nei linguaggi ad alto livello i numeri interi
renderanno i calcoli molto più veloci.
In conclusione, l' impiego di tensioni di riferimento con valore multiplo di
2 consentono di ridurre i calcoli successivi alla conversione, dato che
permettono di agire su numeri interi e non su numeri frazionari.
Analizzando i dati forniti dai costruttori, si rileva che, comunque, sono disponibili altri riferimenti che hanno valori analoghi a quelli dei campioni (pile)
elettrochimici, a lungo utilizzati nei laboratori di fisica e di elettrologia
(1.235 e simili), ed esistono anche riferimenti di valore "preciso" (in senso
decimale) come i classici 5V e 10V, ampiamente utilizzato nei front end analogici
complessi. Questo riferimento è pensato per circuiti alimentati dal +/- 12 o +/-15V, tipico dell' elettronica analogica.
Commercialmente si reperiscono riferimenti di tensione a:
- 1 - 1.024 - 1.136 - 1.2 - 1.225 - 1.235 - 1.247 - 1.25 - 1.8 V
- 2 - 2.048 - 2.3 - 2.465 - 2.495 - 2.5 - 2.56 - 2.75 V
- 3 - 3.3 V
- 4.096 V
- 5 - 8192 - 10 V
e variabili in gamme abbastanza ampie, da 0.5 a 37V.
Quindi, per impieghi specifici, non è difficile trovare il riferimento più
adatto.
Quale valore per la tensione di riferimento ?
L' ADC richiede una tensione di riferimento di zero (Vref-) ed una tensione
di riferimento di massimo (Vref+). Lo "zero" digitale in uscita si
avrà per una tensione di ingresso pari a Vref-, mentre il massimo digitale si
avrà per un ingresso pari a Vref+.
Se utilizziamo la tensione di alimentazione come Vref, si avrà che:
- Vref+ = Vdd (la tensione di alimentazione del controller
- Vref- = Vss (0 volt)
Alcuni microcontroller hanno la possibilità di utilizzare un pin analogico
come ingresso per una Vref+ esterna, che potrà quindi avere un valore diverso
(ma non maggiore !) della Vdd.
Altri possono dedicare due pin, di cui uno alla Vref+, come appena detto ed un'
altro alla Vref-, che a questo punto può assumere valori maggiori di 0V (ma non
negativi rispetto alla massa, nè maggiori di Vref+).
Utilizzando questa opzione, si otterrà una misura raziometrica:
- un ingresso di una tensione pari a Vref- sarà convertito in una uscita
pari ad uno 0 digitale
- un ingresso di una tensione pari a Vref+ sarà convertito nel numero
digitale codificato come 2N-1
- una tensione di ingresso X compresa tra i due valori sarà convertita come
X * (2n-1) / Vdd
Riassumendo in una tabella:.
Tensione
di riferimento |
Risultato
della conversione
[hex] |
MASSIMO |
ZERO |
Tensione di alimentazione |
Vdd |
Vss |
Massa con Vref+ esterna |
Vref+ |
Vss |
Tensione Esterna |
Vref+ |
Vref- |
E'evidente che la conversione risulterà tanto più accurata
quanto il range del valore analogico da valutare sarà uguale al range compreso
Vref- e Vref+
Vx = Vref- + (range * X) / (2n-1)
dove:
range = Vref+ - Vref-
Una tabella dà una idea più precisa dei risultati possibili per una
risoluzione di 10 bit
Vx
digitale
[bit]
|
Vref+ = 5V
Vref- = 0 V
range = 5 V |
Vref+ = 4.096
Vref- = 0V
range = 4,096V |
Vref+ = 4.096
Vref- = 1,024V
range = 3.072V |
1 |
4.887 mV |
4 mV |
3 mV |
20 |
0,097 V |
0.080 V |
1.082 V |
100 |
0.488 V |
0.400 V |
1.317 V |
500 |
2.443 V |
2.001 V |
2.490 V |
750 |
3.665 V |
3.002 V |
3.223 V |
900 |
4.398 V |
3.060 V |
3.663 V |
1000 |
4.887 V |
4.003 V |
3.956 V |
Per fare un esempio pratico, supponiamo che la tensione di ingresso abbia un massimo
4V, ma il suo
valore minimo sia 1.1V e non 0V. Con un riferimento a 5V gran parte della
dinamica del convertitore resta inutilizzata.
Possiamo
recuperare la situazione utilizzando il riferimento Vref- del modulo ADC. Ricordando che:
risultato digitale X per la tensione Vin = ((Vin - Vref-) *
(2n-1)) / (Vref+ - Vref-)
possiamo costruire una tabella che compari il risultato della
conversione per una tensione di riferimento pari a quella di alimentazione (5V)
e per un riferimento esterno che utilizzi Vref+ = 4.096 V e Vref- = 1.024 V.
Vin
[V]
|
Risultato
digitale della conversione a 10 bit |
Vref- = Vss
(0V)
Vref+ = Vdd (5V) |
Vref- = 1.024 V
Vref+ = 4.096 V |
1 bit = 4.88 mV |
1 bit = 3 mV |
1.1 |
225dec = E1hex |
25dec = 19hex |
1.5 |
307dec = 133hex |
159dec = 9Fhex |
2 |
409dec = 199hex |
325dec = 145hex |
2.5 |
511dec = 1FFhex |
492dec = 1EChex |
3 |
614dec = 266hex |
658dec = 292hex |
3.5 |
716dec = 2CChex |
825dec = 339hex |
4 |
818dec = 332hex |
991dec = 3DFhex |
Si può osservare come l' aggiustamento della Vref, sia al livello basso che
al livello alto, permette di seguire con maggior precisione la misura, ampliando
il range dinamico della conversione.
Se ne conclude che l' impiego di una adeguata tensione di riferimento,
calcolata in base alle esigenze del segnale da valutare, possa essere una
soluzione fortemente migliorativa per il risultato della conversione.
Conclusioni
Posiamo fissare i seguenti punti:
- la qualità del risultato della conversione dipende sensibilmente dalla
qualità della tensione di riferimento
- la qualità della tensione di riferimento dovrà essere proporzionale alla
risoluzione che si desidera ottenere. Occorrerà quindi provvedere al
generatore di tensione di riferimento adeguato all' applicazione
E' inutile disporre di un ADC con un elevato numero di bit di
risoluzione se poi la tensione di riferimento utilizzata non
consente una corretta lettura di questa risoluzione ! |
- la qualità della tensione di riferimento dipende essenzialmente dalla sua
stabilità e precisione con le variazioni di temperatura e di tensione di
alimentazione.
- La tensione di alimentazione è adatta come Vref solo per basse risoluzioni (8
bit o meno). Per
risoluzioni maggiori occorre un riferimento esterno al microcontroller. L' uso di un integrato progettato per questa applicazione è la soluzione
ideale
- un valore di Vref multiplo di 2 consente di ridurre i calcoli successivi
alla conversione
- una scelta opportuna di Vref- e Vref+ può migliorare la resa della
conversione
In ogni caso, si dovrà scegliere il circuito della tensione di riferimento
in funzione dell' applicazione. Ed è inutile applicare componenti di
elevatissima precisione e stabilità (e costo) in applicazioni a bassa
risoluzione. Come è insensato utilizzare tensioni di riferimento di bassa
qualità se si vogliono apprezzare i bit meno significativi della conversione.
Documentazione
Alcuni link a documenti interessanti
, Maxim
Understanding
and Applying Voltage References, Linear Technology
The
ABCs of ADCs: Understanding How ADC Errors
Affect System Performance,
Maxim
How
the voltage reference affects performance, Part 1, Texas
instruments
Voltage
Reference Selection Basics, National Semiconductors
Voltage
Reference Scaling Technique Increases ADC Accuracy,
Maxim
Getting
the Most Out of Your 12-Bit ADC, Parallax
Voltage
reference circuit collection, Linear Technology
Adjusting
the A/D voltage reference to provide gain,
Texas instruments
Voltage
Reference Scaling Technique Increases ADC Accuracy, Maxim
Collezione
di application, Maxim
Precision
voltage references,
Texas instruments
Choosing
and Using Bypass Capacitors, Intersil
IC
Voltage Reference has
1 ppm per Degree Drift, National Semiconductors
The
design and performance of a precision voltage reference,
Texas instruments
|