Generatore di segnali a frequenza variabile - 5


Funzionamento del circuito.

Il microcontrollore 16F628A via firmware implementa un accumulatore di fase a N=8 bit. Ad ogni ciclo di generazione DDS, l’uscita dell’accumulatore indirizza la ROM, contenente la mappatura del segnale da genenrare, implementata come look up table. Il valore di ritorno della routine, iscuta della ROM, è caricato sui registri di configurazione del duty cycle del modulo CCP in configurazione PWM che genera in uscita Np onde quadra con duty precedentemente ottenuto
Premendo il tasto UP/DWM, la frequenza del segnale generato aumenterà /diminuirà di una quantità ∆Fo settabile all’interno del programma e dipendente dal valore di XTAL.
In dettaglio, quando il tasto UP (DWM) è premuto, il pin RB1 (RB2) della PORTB è forzato a GND essendo questo normalmente a vdd. Contemporaneamente, in virtù della presenza del diodo D1 (D2) il pin RBO è messo a gnd scatenando un interrupt settato con il fronte di discesa di RB0. Il diodo D1 (D2) è connesso in modo da far passare il fronte di discesa del pin RB1 (RB2) su RB0. Internamente s’incrementa (decrementa) la variabile che definisce il valore della frequenza in uscita e ripartirà la generazione con il nuovo valore di frequenza.

Scelta e dimensionamento del filtro LPF.

La qualità del filtro LPF da porre in uscita al circuito è importante perchè definisce la qualità del segnale. In questa sede è stato scelto un filtro LPF RC formato da R5 e C6 ma è possibile utilizzare filtri d’ordine maggiore sia passivi sia attivi.
Per XTAL = 20 MHz e Ncycle=191 si ha una frequenza massima di:

fo_max = fclk/2 = 19.53/2 = 12.953 kHz

Posto R5=1 k ohm per avere una frequenza di taglio pari alla massima frequenza d’uscita, C6 deve avere il valore definito secondo la formula:

fo_max = fclk / 2 = [Xtal / (4* Ncycle)] / 2=1/(2*π*R5*C6)

da cui

C6=4 * Ncycle / (π*R5* Xtal)

C6=4*191/(3.14*1000*20e6)= 12.165nF

Si può scegliere per C6 il valore di 15nF. La presenza del filtro LPF in uscita comporta una deformazione dei fronti di salita e discesa dell’onda quadra. Si puo’ pensare di sconnettere il capacitore del filtro quando si genera in uscita l’onda quadra.