PWM10ADC- CONVERTITORE A/D  a 10 bit




Convertitore Analogico-Digitale con risoluzione a 10 bit implementato con il PIC16F628. La caratteristica principale di questo ADC e' l'utilizzo della tecnica  PWM (Pulse Width Modulation) per la generazione della tensione di confronto utilzzata nell'algoritmo della converisone di tipo SAR..

Il convertitore A/D a 10 bit presentato in queste pagine e' l'evoluzione del convertitore A/D a 8 bit (pwm8adc) presentato in questo sito. Il principio di funzionamento e' lo stesso: la tensione da misurare e' confrontata con una tensione generata mediante un segnale modulato in PWM ( pulse wave modulation). Il valore del duty cycle D, necessario alla generazione della tensione che eguaglia quella in ingresso,  e' il valore convertito in digitale della tensione analogica presente in ingresso. Le differenze principali tra il convertitore PWM8adc e quello presentato in queste pagine sono riportate nella seguente tabella:

Caratteristica

pwm8adc

pwm10adc

Numero bit conversione

8

10

Comparatore

esterno (LM311)

interno (comp2)

Generazione PWM

 software

mediante modulo CCP

Micro utilizzato

16F84A

16F628A

Variabile uscita routine

Ton

CCPR1L<7:0>,CCP1CON<5:4>

frequenza PWM

    bassa

19.53kHz @10bit @20MHz

Frequenza lavoro micro

 4-10MHz max

 20MHz


La tecnica di conversione

In sintesi, il procedimento di conversione si basa sul confronto della tensione da convertire Vin con una tensione di riferimento crescente Vref (rampa lineare) generata da un segnale PWM. La conversione si arresta quando la tensione Vref raggiunge il valore Vin. Il corrispondente valore digitale del duty cycle con cui è stato pilotato il modulo PWM e' il valore digitale della tensione analogica Vin

Caratteristiche tecniche del convertitore

Risoluzione (VLSB)

La risoluzione del convertitore ovvero la tensione associata a bit meno significativo detta anche VLSB è:

VLSB = Vmax / 2^10 = Vmax / 1024

La tensione Vmax e' la tensione di alimentazione del micro. Per Vmax = 5V si ha:

VLSB = 5 / 1024 = 5 mV

Si ha una risoluzione di circa 5 mV su un intervallo di 5V in ingresso.

Tempo di Conversione (t_con)

Il tempo di conversione tcon, trascurando i tempi delle routine di confronto e d’incremento di D può essere espresso dalla relazione seguente:

t_con= Npulse * (Vin / Vref_min) * T_pwm

Il fattore Vin / Vref_min è il numero di step di conversione. La dipendenza dal periodo T_pwm è dovuta al fatto che si aspettano in ogni ciclo NPULSE impulsi PWM. Ciò è stato possibile realizzarlo monitorando il flag dell'overflow del contatore TIMER2 che controlla il periodo del segnale PWM. Tenendo in considerazione i valori assegnati ai vari parametri si ha:

per Vin = 5V

t_con=3 * (5/4.88e-3) *51.2e-6= 157286.4 ms

per Vin=Vref_min si ha :

t_con=3* (4.88e-3/4.88e-3) *51.2e-6= 153.6 us

Come si vede il tempo di conversione dipende fortemente dalla tensione d’ingresso e dal numero d’impulsi Npulse con cui si vuole generare la tensione Vref.
Quindi maggiore sarà Npulse più accurata sarà la conversione ma maggiore il tempo di conversione.