Generatore
di segnali ( sinusoidale, quadra, dente di sega, triangolare, noise e
custom) in cui è possibile impostare la frequenza con la
precisione tipica del DDS. Mediante i tasti UP/DWN si
incrementa/decrementa il valore della frequenza di uno step settabile
mentre con il tasto SEL è possibile scegliere il tipo di segnale.
Notevoli i campi d’applicazione (generatori di frequenza da
laboratorio, di riferimento per PLL, DTMF, QRP e in tutte quelle
applicazioni dove è richiesto generare segnali a frequenze stabili con
notevole precisione.
Soluzioni
circuitali
Nei
progetti precedenti sulla tecnica DDS, è stata fatta una scelta di
base: la forma d’onda dei segnali in uscita era un’onda quadra. Tale
scelta era imposta dal fatto che era sfruttata la naturale mappatura
dell’onda quadra considerando il bit MSB dell’accumulatore (per
ulteriori chiarimenti rimandiamo ai progetti precedenti). Come è stato
detto nel tutorial relativo al DDS la generazione mediante DDS richiede
una ROM su cui mappare la forma d’onda da generare e un DAC che generi
la forma d’onda analogica. Nel presente progetto è richiesta la possibilità
di generare dei segnali che non siano un’onda quadra per
questo sono necessari una ROM e un DAC. Vediamo quali accorgimenti
tecnici sono stati usati per implementare la ROM e il DAC tenendo conto
che il progetto si basa esclusivamente su un microcontrollore PIC.
Mappatura
del segnale
Per
la mappatura delle forme d’onda si può ricorrere alla memorizzazione
di queste nello spazio di memoria del micro riservato al codice (program
words memory) e utilizzando l’istruzione RETLW. Un’altra soluzione,
laddove è possibile, è di implementare la funzione matematica che
genera i campioni del segnale in uscita in funzione del ingresso fornito
dall’accumulatore. L’unica cosa da fare, per la prima soluzione, è
scrivere il relativo codice asm e ciò può essere fatto semplicemente
avvalendosi di un foglio di calcolo tenendo conto del numero di punti da
mappare come funzione dei N bit dell’accumulatore e il numero
dei bit con cui quantizzare la forma d’onda in uscita. Nel caso della
seconda soluzione è necessario individuare la funzione matematica.