Autore Topic: DDS/VFO CON MODULO AD9851  (Letto 650 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline IK4MDZ-Franco

  • Radio Operatore
  • *******
  • Post: 854
  • Applausi 112
  • Sesso: Maschio
  • http://web.tiscali.it/ellepi_progetti/
    • Mostra profilo
    • il mio sito
    • E-mail
  • Nominativo: IK4MDZ
DDS/VFO CON MODULO AD9851
« il: 02 Novembre 2018, 14:12:47 »
Riprendo un mio vecchio post riguardante la realizzazione di un generatore DDS da 100Hz a 50MHz basato sul modulo che si trova in rete contenente l'AD9851. Questo dispositivo, a differenza del fratello minore AD9850 che arriva fino a 30MHz, funziona con un clock di 30MHz*6=180MHz. Basta che l'oscillatore a 30MHz si discosti di pochissimo che tale differenza si riperquote moltiplicara per 6 e quindi la frequenza di uscita sara' lievemente diversa da quella impostata dalla formula :


                                        32
word di programmazione= 2    * frequenza voluta (Hz) / 180000000Hz


La word di programmazione e' costituita da 40 bit e va programmata via seriale o parallela nell'AD9851. I moduli che si trovano in giro e il software che si trova in internet prevede la programmazione seriale.
Detto questo, una volta realizzato il generatore se impostate 10MHz in uscita e' possibile che in realta' venga generata una frequenza leggermente diversa e quindi occorre una taratura. Per fare questo occorre un frequenzimetro decente che legga il segnale dal generatore DDS per averne la conferma. La taratura si esegue modificando leggermente il valore del DDS CLOCK che di default e' stato impostato a 180MHz=180000000Hz. Poiche' tale valore e' posizionato al denominatore della formula soprascritta allora occorre abbassare tale valore se la frequenza di uscita e' inferiore a quella desiderata. Nel mio caso ho impostato 10MHz (10000000Hz) in uscita e ho notato una frequenza di uscita di 99999998.8Hz. Ho quindi introdotto nel FW una procedura che, una volta entrato in modalita' taratura, mi permettesse di ruotare l'encoder variando il valore di 180000000Hz con passi da 10Hz in modo da ripristinare la frequenza di uscita voluta. Uscendo dalla procedura di taratura il valore cosi' trovato del DDS CLOCK viene memorizzato in EEprom del microcontrollore e da quel momento, ad ogni riaccensione viene letto ed usato nel computo per generare la frequenza voluta.
Se non si esegue questa taratura si e' convinti di generare un segnale alla frequenza impostata ma invece quest'ultimo e' spostato, di poco, da quella voluta.
Saluti.
PS : questo problema e' meno sensibile nel modulo con AD9850 poiche' l'oscillatore funziona a 30MHz e non viene moltiplicato per 6.
« Ultima modifica: 17 Giugno 2019, 13:55:19 da IK4MDZ-Franco »
L'ambizione e' l'ultimo rifugio dei falliti
Oscar Wilde