Tutorials - PIC

 

La tensione di riferimento nei microcontroller

Commercialmente sono disponibili un gran numero di circuiti integrati e moduli con funzione di ADC e questo consente di introdurre questa funzione in qualsiasi progetto.

Nei microcontroller, dove la tendenza è quella di riassumere in un unico componente il maggior numero di funzioni, assai spesso un modulo ADC  si trova integrato nel chip, dato che questa operazione è fondamentale per un gran numero di applicazioni. Si tratta solitamente di convertitori SAR con risoluzione tra 8 e 12 bit e frequenza di campionamento massima attorno ai 100 ksps.

Va tenuto presente l' impiego per cui sono previsti i microcontroller embedded, ovvero automatizzare processi a costi limitati

Quindi queste risoluzioni sono generalmente adeguate o superiori alle necessità.  

Risoluzioni maggiori (14-24 bit) saranno possibili, quando necessarie, con l' aggiunta di componenti analogici esterni, che richiederà una circuiteria spesso più complessa di quella del necessaria al microcontroller stesso e, probabilmente, una elevata potenza di calcolo per elaborare i risultati.

Con un fondo scala di 5V, una conversione a 12 bit permetterà di apprezzare (teoricamente) differenze del segnale di ingresso di 1.22 mV. Queste risoluzioni sono adeguate non solo per misure di temperatura o pressione o tensione, ma anche in applicazioni di mechatronica o generazione di segnali complessi.
Ma, in generale, il target è meno impegnativo e 10 bit o 8 bit o meno sono spesso più che adeguati.

Certamente, per applicazioni più gravose, si trovano in commercio convertitori a 16, 18, 24 bit.
Ma per implementare questi dispositivi occorrono sofisticati front end con la grandezza da misurare, riferimenti di tensione di estrema precisione e una realizzazione pratica critica, oltre alla necessità di una elevata potenza di calcolo sui risultati, onde evitare che parte della risoluzione teorica vada in pratica perduta per rumore, disturbi, imprecisioni dell' hardware. Per questo genere di misure il supporto digitale necessario potrà dipendere da strutture più complesse di un semplice embedded, con i relativi costi.

Per queste ragioni, la risoluzione dei moduli ADC integrati nei microcontroller è limitata ed è limitata di conseguenza anche la necessità di una tensione di riferimento particolarmente elaborata, tanto che, di base, essa è semplicemente la tensione di alimentazione del microcontroller stesso.

Si tratta di una soluzione quasi sempre adatta per basse risoluzioni, in quanto, a meno di curare particolarmente la qualità dell' alimentazione generale, essa è afflitta da problemi di stabilità e da rumore elettrico che, se non hanno effetti sul funzionamento digitale, ne possono avere su quello analogico.

Di conseguenza, i progettisti fanno si che un buon ADC disponga della possibilità di utilizzare anche una tensione di riferimento esterna. In questo modo si potrà implementare una sorgente di tensione di riferimento adeguata all' applicazione.

In generale, tutti i PIC che integrano un ADC a 10 o 12 bit comprendono le due opzioni:

  • il semplice utilizzo della tensione di alimentazione (Vdd -Vss) come tensione di riferimento
  • oppure di dedicare uno o due pin alla Vref, che sarà generata all' esterno del chip con un opportuno circuito.

La scelta della tensione di riferimento viene effettuata agendo su due bit (VCFG1:0) di uno dei registri di configurazione del modulo ADC (ADCON o ADCON1). 
E' possibile selezionare 3 diversi ambienti:

  1. Vref = tensione di alimentazione
  2. Vref+ esterna e riferimento Vref- a massa
  3. Esterne sia Vref+ che Vref-, diverso dalla massa

A cosa serve questa gamma di possibilità?
Ricordiamo che dal valore della tensione di riferimento dipende il valore attribuito ad un bit del risultato digitale. Questo, in altre parole, indica che:

 Vref =  valore di uno step * risoluzione =  valore di uno step * 2N

dove N è il numero dei bit del risultato della conversione e Vref  è la differenza (Vref+ - Vref- )
Ovvero, l' ampiezza della tensione di riferimento, a parità di numero di bit di risoluzione, determina la definizione di 1 bit del risultato

Per una risoluzione di 10 bit ed una tensione di alimentazione di 5 V:

Tensione di riferimento
Range
Vref+  - 
Vref-
 Valore di uno step
Vref /
2N
  Vref+ Vref-
1 Alimentazione  Massa Vdd - Vss = 5 4,88 mV
2 Vref+ esterna 4096 V  Massa 4.096 - 0 = 4.096 4 mV
3 Vref+ esterna 4096 V Vref- esterna 1024 V 4.096 -1.024 = 3.072 3 mV

1. Nel caso di impiego della tensione di alimentazione essa sarà pari alla Vref, che quindi avrà il valore massimo della Vdd ed il riferimento a massa della Vss. Ad esempio, se il microcontroller è alimentato a 5V, questo valore sarà quello delle tensione di riferimento.

2. Nel caso di sorgente esterna, un pin potrà essere dedicato a ricevere la Vref+ da una fonte esterna, mentre il riferimento a livello minore sarà quello della massa (Vss). Ad esempio, se il microcontroller è alimentato a 5V, ma al pin di ingresso della Vref+ viene applicata una tensione esterna di 4.096V, questo valore sarà quello delle tensione di riferimento, dato che la Vref- sarà connessa alla massa ( Vss).

3. Se entrambi i pin sono dedicati alla Vref , uno accetterà la la tensione maggiore (che dovrà essere comunque uguale o minore della Vdd), indicata con Vref+, l' altro quella minore (che potrà essere maggiore di Vss), indicata con Vref-. Questo consente di ottenere uno "spazio" di misura quanto più possibile adeguata alle caratteristiche della tensione di ingresso e ridurre di conseguenza i calcoli successivi per l' aggiustamento dei risultati della conversione.
Ad esempio, se al pin Vref+ viene applicata una tensione esterna di 4.096V e al pin Vref- sarà connessa una tensione esterna di 1.024 V, la tensione Vref sarà data da:

 (Vref+ - Vref- ) = 4.096 - 1.024 = 3.072 V

Raccogliendo quanto detto in una tabella:

Tensione di riferimento Vmax Vmin
1 Tensione di alimentazione Vdd Vss
2 Massa e Vref+ esterna Vref+ Vss
3 Tensione Esterna Vref+ Vref-

Se si utilizza la tensione di alimentazione come riferimento, il valore maggiore, ovvero quello che darà il massimo risultato digitale, è la tensione di funzionamento Vdd, mentre la minore è la Vss, ovvero 0V. 

Inoltre, il range della misura è:

range della misura = Vmax - Vmin = Vref+ - Vref-

Quindi, dalla tensione di riferimento dipende sia l' ampiezza di uno step, sia il livello di tensione di ingresso che darà il risultato massimo o lo zero.
Per una conversione a 10 bit si avrà:.

Tensione di riferimento Risultato della conversione
[hex] 
3FF 000
1 Tensione di alimentazione Vdd Vss
2 Massa e Vref+ esterna Vref+ Vss
3 Tensione Esterna Vref+ Vref-

Ad esempio, per un PIC alimentato a 5V, questa sarà la sua massima tensione di riferimento, mentre la minima corrisponderà allo zero della massa comune.
Nel caso dell' esempio:

range della misura = Vmax - Vmin = Vdd - Vss = 5 - 0 = 5 V

e ogni bit varrà:

valore di uno step = range della misura / risoluzione = 5 / 1024 = 4.88 mV


Disponendo di un convertitore a 8 bit (256 step), con una Vref  di 5V, gli step della conversione (1 bit) avranno la seguente risoluzione:

risoluzione di uno step = Vdd / 256 = 5 / 256 = 19,56 mV

ovvero ogni bit del risultato della conversione varrà 19.56 mV. 
Se il convertitore è a 12 bit (4096 step), la risoluzione per bit diventa 1.22 mV. 

Di nuovo ricordiamo: non è importante che si tratti di 4.97V piuttosto che 5.03V, in quanto, sapendone il valore, basterà correggere matematicamente il risultato della conversione per riportarlo alle condizioni volute. Importante, piuttosto, sarà la sua stabilità, ovvero la certezza che ogni volta venga effettuata la conversione, il riferimento abbia sempre lo stesso valore.

Se la precisione dell'ADC equivale allo 0,1% del massimo, una tensione di riferimento con più dello 0,1% di instabilità è in grado di modificare il valore numerico emesso dall' ADC. Pertanto occorre che la Vref abbia una stabilità superiore, ad esempio 0.05%.
E questa stabilità, come abbiamo detto, comprende due fattori principali: la dipendenza dalla temperatura e quella dalla tensione principale di alimentazione.

Ed è evidente che la tensione di alimentazione non dovrà avere neppure disturbi casuali o rumore sovrapposto, che si rifletteranno in errori nella misura; e questo non è semplice da ottenere in circuiti essenzialmente digitali dove circolano correnti impulsive dovute, ad esempio, alle commutazioni dei carichi sugli I/O. Quindi si dovranno minimizzare disturbi, instabilità, rumore sovrapposti alla tensione continua e dovuti al raddrizzamento dell' alternata o ad un sistema di conversione DC/DC di tipo switch mode.
Nel caso della conversione a 12 bit un ripple di alimentazione di una decina di millivolt, valore comune, renderà immediatamente invalidi almeno gli ultimi tre o quattro bit del risultato della conversione, mentre danneggerà solo l' ultimo della conversione a 8 bit.

Non è impossibile realizzare sistemi di alimentazione a basso rumore ed alta stabilità. Il problema è che il loro costo può salire sensibilmente rispetto a semplici regolatori a tre terminali, tipo 7805, sopratutto se la potenza richiesta non è minimale, dato che dall' alimentazione generale può dipendere non solo il microcontroller, ma anche un certo quantitativo di elementi di I/O.
Queste considerazioni portano all' idea di impiegare una tensione diversa da quella di alimentazione. In queste condizioni possiamo:

  • utilizzare una circuiteria che minimizzi l' imprecisione, il rumore, le variazioni della tensione di alimentazione e la stabilità nel tempo

  • attribuire ad ogni step un determinato valore ed adeguarlo all' applicazione in modo da ridurre calcoli sul risultato, cosa che migliora le prestazioni del processore, dato che le operazioni matematiche impegnano algoritmi composti da cicli di numerose istruzioni.

Con una tensione esterna, il range diventa:

range della misura = Vref+ - Vref-

Quindi,  la formula vista prima è generalizzabile con:

risoluzione di uno step = (Vref+ - Vref-) / risoluzione

 

La precisione dell'ADC, per essere sfruttata pienamente, si basa dunque sull'accuratezza della tensione di riferimento.
In linea di massima si potrà attribuire alla stabilità della Vref i seguenti parametri minimi:

Risoluzione dell' ADC 8 Bit 10 Bit 12 bit
Stabilità richiesta in % > 0,2 % > 0,05 % > 0,005 %
Stabilità richiesta in ppm > 2000 ppm > 500 ppm > 50 ppm

Vanno tenuti presenti anche i limiti che Microchip indica nei fogli dati. La tabella seguente, tratta dal data sheet della famiglia 18Fx321 li riporta:

In particolare, il parametro A20 limita la differenza tra VrefH e VrefL a 1.8V nel caso in cui la tensione di alimentazione del PIC sia minore di 3V e a 3V quando la Vdd è maggiore.

Tensione di alimentazione Vref+ - Vref-
< 3 V >= 1.8 V
>= 3 V >= 3 V

Questo vuol dire che:

  •  sarà sempre possibile utilizzare la tensione di alimentazione come riferimento, qualunque essa sia.


E, nel caso in cui sia impiegata una tensione di riferimento esterno Vref+ essa:

  • non dovrà essere in ogni caso maggiore di Vdd + 0.3V

  • non essere inferiore ai limiti minimi indicati dal parametro A20

Se si utilizza sia un doppio riferimento esterno occorrerà che:

  • la Vref- sia superiore a Vss - 0.3V

  • la differenza tra il valore alto della tensione di riferimento e quello basso sia superiore ai limiti indicati da A20

Ovvero, ad esempio, con 3.6 V di alimentazione, si potrà utilizzare qualsiasi Vref+ esterna >= 3 V, ma minore di 3.9 V.
Con una tensione di alimentazione di 5 V, si potrà impiegare una qualsiasi Vref+ esterna >= 3 V, ma minore di 5.3 V. Se si utilizza anche un riferimento esterno basso (Vref-), occorre verificare il range.
Ad esempio, sarà possibile una Vref- di 1.024 V ed una Vref+ di 4.096 V, dato che:

(VrefH - VrefL) = 4.096 -1.024 = 3.072 

che è maggiore di 3 V; ma non è consigliato utilizzare una VrefL di 2.5 V, dato che:

  (VrefH - VrefL) = 4.096 -2.5 V = 1.596 V  

è minore di 3 V. E così via.

Va notato con cura anche il parametro A30, che limita la resistenza della sorgente esterna a 2.5k.
L' informazione va completata con la nota 3 alla successiva tabella 27-25, dove viene dato un tempo di sample minimo di 1.4 us, ma con la resistenza della sorgente della tensione di soli 50 ohm !

Ovvero, è opportuno che le sorgenti di tensioni esterne abbiano la minima impedenza possibile per rispettare le temporizzazioni minime. Ogni aumento di questa impedenza avrà come conseguenza la necessità di aumentare il tempo di acquisizione.
E questa indicazione comprende anche la sorgente della tensione di riferimento esterno, che dovrà avere la minima impedenza, anche se la corrente utilizzata (parametro A50) è molto limitata.

Vediamo più in dettaglio vari casi.

 


 

 

Copyright © afg . Tutti i diritti riservati.
Aggiornato il 25/09/11 .