PWM10DAC- Convertitore Digitale Analogico  a 10 bit




INTRODUZIONE

I convertitori ADC ( analogico - digitale)  proposti nei progetti PWM10ADC , PWM8ADC  e PWMSAR10ADC hanno in comune il fatto che per il loro funzionamento richiedono la generazione di una tensione (rampa o di riferimento)  tramite il modulo PWM. Questo suggerisce l'utilizzo del modulo PWM per la realizzazione di un convertitore digitale – analogico (DAC) il cui ingresso e' una parola digitale a n bit e l'uscita un onda quadra con duty cycle tale che la componente continua, ottenuta mediante un filtro passa basso ( LPF = low pass filter) si la corrispondente tensione analogica.  Quindi il singolo campione del segnale da generare, definito dalla parola digitale a n bit, può essere convertito in analogico da un segnale ad onda quadra con un duty cycle D corrispondente al valore che si vuole ottenere in uscita.
Per rendere operativa l’idea di realizzare un DAC con il modulo PWM bisogna dimensionare alcuni parametri tipici del PWM. Se per la generazione del singolo campione vogliamo  Npulse impulsi del segnale PWM allora il tempo t_con, necessario per la ricostruzione del singolo campione,  e':

t_con = T_pwm*N_pulse

Fissato il periodo T_pwm del segnale PWM, il tempo di conversione t_con del singolo campione dipende direttamente da parametro  Npulse. Questo comporta che per conversioni  accurate necessita  un valore elevato di Npulse, e quindi basse  frequenze di conversione. f_con= 1/ t_con.

Se utilizziamo un microcontrollore PIC16F628A, in cui si fissa  t_Xosc=50ns (Xtal=20MHz), PR2=255, TMR2_presc=1, N_pulse=3 si ottiene, utilizzando la formula che definisce il periodo ( o frequenza ) del segnale PWM:

T_pwm= (PR2+1) * 4 * t_osc * TMR2_presc = (255+1)*4*50e-9 = 51.2e-6 = 51.2us

da cui segue che il tempo di conversione e':

t_con = 51.2 * 3 = 153.6 us

che in termini di frequenza è uguale a dire che f_con= 6.51 kHz

Ricordiamo che  T_pwm può essere definito anche in funzione del numero di bit in base alla relazione:

T_pwm= 2^(N_bit)* t_osc * TMR2_presc

Quindi in base alle specifiche progettuali si possono scegliere i parametri .