AD9910 Signal Generator
IZ5FCY
Non gira il corvo che non sia vicina la carogna
Generatore di segnali RF DDS Arduino Shield AD9910 600MHz Vedremo come creare un generatore ad alta precisione da 100 kHz a 600 MHz basato su DDS di Analog Devices - AD9910.
Descrizione del progetto Questa storia è iniziata nel momento in cui ho avuto la necessità di una sorgente di segnale RF per i miei esperimenti con la radio SDR. Per implementare questo tipo di compito, il metodo DDS (Direct Digital Synthesis) è idealmente adatto. Esistono IC (circuiti integrati) pronti all'uso per DDS sul mercato, ecco i più comuni tra loro da Analog Devices IC: AD9910, AD9912, AD9914 e AD9915. Ho optato per l'AD9910 perché ha tutte le qualità di cui avevo bisogno e ha un prezzo equo. Per me erano importanti parametri come: alta stabilità di frequenza, basso livello di rumore di fase e anche il numero minimo di armoniche e spurie. Naturalmente, quando si lavora con la radio SDR, era necessaria la capacità di regolare rapidamente e facilmente la frequenza di uscita in un'ampia gamma, ad esempio da 100 kHz a 500 MHz. La scheda di valutazione originale Analog Devices costa più di $600. Pertanto ho deciso di cercare prima un clone cinese di tale scheda ed è stato facilmente trovato e acquistato su eBay al prezzo di circa $70
AD9910 DDS Board dalla Cina Quando la copia cinese mi è arrivata, ho scoperto che non esiste alcun software esistente per questo modulo ed il venditore non poteva fornirmene nemmeno uno schema di connessione! È stato triste che anche una ricerca su Internet non mi abbia dato una risposta su come collegare la scheda cinese al microcontrollore. Ci è voluta una settimana intera per ridisegnare il circuito di questa scheda su carta. Questo compito è stato complicato anche dal fatto che la scheda era di colore nero e i conduttori stampati erano molto poco visibili. Dopo che il circuito è stato composto e prima del primo avvio, ho deciso di misurare e controllare i valori di alcuni elementi che mi davano sospetto ed ho scoperto che elementi con valori nominali errati erano installati nel circuito PLL Loop Filter. Li ho ricalcolati secondo la scheda tecnica per l'AD9910 (p. 26) e sostituiti con quelli corretti. Dopo un'ulteriore ispezione della scheda cinese, ho scoperto che c'erano cortocircuiti tra diversi piedini dell’ AD9910 (realizzate dal cinese, forse innamorato, durante l'assemblaggio di questa scheda) e un piedino non era affatto saldato. Naturalmente, tutte queste carenze devono essere eliminate prima di dar tensione al dispositivo. Poi è arrivata la fase di connessione al microcontrollore. Per non creare inutili difficoltà durante la programmazione come controller per il controllo dell'AD9910, abbiamo scelto Arduino Mega. Ma poiché l'ATmega2560, installato su Arduino Mega, ha livelli di segnale di 5 Volt e l'AD9910 ha 3,3 Volt, ho dovuto collegare anche un convertitore di livello aggiuntivo per 32 canali. Dopo ho dovuto studiare la scheda tecnica per l'AD9910 e scrivere un programma di controllo. E solo dopo è stato possibile accendere l'intero circuito e misurare il segnale di uscita. È meglio fare tutto questo con l’aiuto di un analizzatore di spettro. Però quando ho acceso l'analizzatore di spettro, sono rimasto spiacevolmente sorpreso da quanto fosse terribile ciò che vedevo: