Il modulo ADC dei microcontroller
La funzione di conversione analogico- digitale, come abbiamo accennato, diventa
essenziale per inserire nel sistema di elaborazione elementi di grandezze
esterne e quindi assai spesso viene a far parte della dotazione di periferiche
integrate in un microcontroller embedded.
|
Nel settore che ci interessa, ovvero quello dei microcontroller
embedded di Microchip, una ampia parte dei PIC contiene un modulo ADC
integrato, con risoluzione tra 8 e 12 bit.
Il vantaggio dell' integrazione riguarda il fatto che il dato in
uscita da convertitore è disponibile sul bus delle periferiche e non
richiede quindi alcuna azione di interfaccia.
Ad esempio, in questo PIC è integrato un modulo ADC (indicato con
A/D) a 12 bit. dotato
di un multplex per effettuare letture su 24 canali di ingresso: numerosi
pin di vari port potranno essere configurati sia come I/O digitali sia
come ingressi analogici.
|
Questi ADC integrati possono lavorare con la tensione di
alimentazione come tensione di riferimento oppure utilizzare una
tensione di riferimento esterna.
Una delle tipologie più utilizzate in questi casi di integrazione è quella
cosiddetta SAR, in quanto consente un buon compromesso fra velocità di conversione e
risoluzione, tra costo e complessità circuitale.
Si tratta di convertitori con
un numero di bit variabile tra 8 e 14, con frequenza di campionamento degli
80-200 ksps (kilo samples per second, migliaia di campionamenti al
secondo) e la cui realizzazione in tecnologia CMOS consente un basso consumo.
Dato che la nostra trattazione riguarda essenzialmente i convertitori ADC
integrati nei microcontroller, vediamo allora come funziona questo convertitore.
ADC ad approssimazioni successive (SAR).
Lo schema a blocchi è relativamente semplice:
|
Il sistema è costituito da:
- un Sample-and-Hold di ingresso
- un solo comparatore
- un DAC (convertitore digitale-analogico)
- un registro ad approssimazioni successive (SAR)
Il tutto necessita di un clock per far scorrere i dati del registro e
di una tensione di riferimento per il DAC. |
Il suo funzionamento, apparentemente complesso, si basa su un principio
facilmente comprensibile, molto simile quello che viene utilizzato in una
semplice bilancia a due piatti. Una bilancia del genere ha in dotazione una
serie di pesi campione di valore decrescente, in modo che la loro somma sia pari
alla possibilità di pesata della bilancia..
Se vogliamo determinare il peso di un oggetto lo poniamo su uno dei due piatti:
questo squilibra la bilancia dalla parte del piatto caricato. Ora, cominciamo a
mettere i pesi campione sull' altro piatto, partendo, ad esempio, dal maggiore:
se questo fa inclinare la bilancia dalla parte del peso, lo si sostituisce con
il peso immediatamente inferiore. Se la bilancia si squilibra dalla parte dell'
oggetto, aggiungiamo un peso nell' altro piatto. Il peso dell'oggetto e' dato
dalla somma dei pesi campione nel piatto.
Un vantaggio evidente rispetto ai convertitori Flash è che non occorre
più un comparatore per ogni bit del risultato, ma basta un solo comparatore;
a parte l' aumento di complicazione del circuito, un maggior numero di
comparatori richiede che tutti abbiano la precisione voluta e che altrettanto
per il partitore resistivo, il che aumenta i costi. Inoltre, ci sono problemi
realizzativi per array di comparatori molto grandi.
Nel convertitore ad approssimazioni successive basta un solo comparatore di
precisione e la definizione maggiore o minore dipende dal numero dei bit del registro
digitale, il che è, costruttivamente, più semplice e limitatamente costoso,
oltre che di facile integrazione in strutture più
complesse, come quelle dei microcontroller embedded.
Per contro, gli ADC SAR sono meno veloci in quanto la conversione
dipenderà dal periodo del clock e una maggiore definizione richiederà
un maggiore numero di colpi di clock per far scorrere i dati nel registro.
Ovviamente il risultato è tanto più preciso quanto maggiore è il numero delle
approssimazioni. E l' errore del risultato digitale rispetto all' ingresso
analogico dipende dalla risoluzione della conversione.
Si parla di errore di quantizzazione.
|