Generatore di frequenza  DDS



1 >>

Introduzione

Generatore di frequenza ad onda quadra basato sulla tecnica DDS (Direct Digital Synthesis) utilizzando solo il uP-16F84A. Mediante pulsanti UP/DWN è possibile aumentare/diminuire la frequenza di uno step settabile da programma. Non sono necessari componenti esterni per la generazione (nessuna rete di resistori). In questo documento sono esposti i principi teorici di questa nuova tecnica (non di facile comprensione perché sono richieste specifiche conoscenze), com’è implementata nel progetto e le soluzioni adottate. Il circuito, nella sua implementazione, è facile anche per i principianti..Notevoli i campi d’applicazione (generatori di frequenza da laboratorio, di riferimento per PLL, DTMF, QRP e in tutte quelle applicazioni dove è richiesto generare frequenze stabili con notevole precisione.

La tecnica DDS

La tecnica DDS permette di generare delle frequenze in maniera digitale senza ricorrere all’uso di PLL con precisione del mHz e poche risorse hardware. In sintesi si tratta di generare mediante un accumulatore di M bit la rappresentazione della fase φ di una sinusoide.Tale fase è messa in ingresso ad un circuito che genera il valore di sin φ, costituito da una ROM, in cui è mappata la sinusoide in funzione della sua fase φ. L’uscita digitale della ROM è connessa ad un DAC che converte in tensione/corrente analogica il valore di sin φ. Per uteriori approfondimenti consultare il tutorial sulla tecnica DDS: la tecnica DDS

Soluzione circuitale per la generazione di onde quadre

Nel progetto non vengono generate sinusoidi in uscita ma onde quadre. Questo permette di non usare DAC e ROM in quanto la mappatura dell’onda quadra viene automaticamente implementata dalla uscita dell’accumulatore.
In base a quanto esposto si dovrebbe mappare l’onda quadra in funzione della sua fase. Nel nostro caso viene implementato un accumulatore di fase a 16 bit per cui la mappatura dovrebbe essere fatta per 2^16=65536 punti all’interno dell’intervallo [0 : 2π]. Ma l’onda quadra è pari a "0" per tutti i punti dell’intervallo [0 : π] e pari a “1” nell’intervallo [π :2π]. Ciò significa che per tutti i valori di uscita dell’accumulatore inferiori a 65536/2 =32768 l’uscita del generatore e’ nulla mentre per tutti i valori in uscita dall’accumulatore superiori a 32768 l’uscita del generatore è pari a "1". Ebbene questo è l’andamento del bit più significativo dell’uscita a 15 bit dell’accumulatore. Quindi spostando questo bit in uscita avremo la generazione di un onda quadra a partire dallo stesso accumulatore. In figura 1 è mostrato l’andamento del bit 15 dell’uscita dell’accumulatore in corrispondenza del valore da essa assunto e della corrispondente fase.

 

Fig. 1: Andamento del bit 15 dell’uscita dell’accumulatore.



1 >>