Il progetto consiste nella realizzazione di un’applicazione Windows per l’utilizzo di ADALM-PLUTO (recentemente ricevuto in dono da un carissimo amico) come analizzatore di spettro.
Spero a breve di creare un post con più dettagli a proposito, per il momento elenco i punti salienti dell’oggetto:
Analizzatore di spettro con span intero range di esercizio, 70MHz-6GHz e rappresentazione ampiezza segnali in dBm.
Analizzatore di spettro con tracking generator. Risoluzione fino a 1024 punti.
Generatore con possibilità d’impostare la frequenza a passi di 1 KHz
I requisiti per l’applicazione sono:
CPU: un vecchio Pentium M da 1,7GHz è più che sufficiente!
OS: >= Windows 7 (su necessità dei driver per ADALM-PLUTO)
ADALM-PLUTO esteso per far “vedere” al FW il AD9363 come un AD9364
Driver Analog Devices installati ( PlutoSDR-M2k-USB-Drivers )
Questo strumento (in foto ancora in una forma prototipale) è un generatore di clock preciso, in grado di fornire su tre uscite indipendenti con connettori SMA, frequenze programmabili da 8KHz a 200MHz.
La generazione dei segnali è affidata a un Si5351A. In
questa applicazione, il PLL del Si5351A utilizza come riferimento un
oscillatore disciplinato (GPSDO) basato sul chip G7020-KT.
Il governo del GPSDO, del PLL e dell’interfaccia utente (un LCD da 101X80 pixel a colori e un encoder) è affidato a un ATMega328P operante a 3,3V-8MHz.
L’alimentazione è fornita da una batteria al litio da 3,7V
600mA che garantisce circa quattro ore di utilizzo. La batteria è collegata al
modulo di step-up (provvede alla generazione del 5V per alcuni moduli e dei
3,3V attraverso due LDO) tramite uno switch mosfet controllato dalla CPU;
l’utilizzo del mosfet garantisce lo spegnimento dell’apparecchio nel caso il
livello della batteria scenda sotto il livello di guardia prestabilito, il
circuito di switch così progettato consente di avere una corrente di quiescenza
prossima a 0 uA. Il controllo di carica e di scarica della batteria è anch’esso
affidato alla CPU con l’ausilio dei chip TP4056 per la carica e del DW01A come
protezione di overcharge e in ulteriore protezione di overdischarge nel caso di
un blocco della CPU. Sul display LCD è visualizzato in modo costante il livello
della batteria, sia nella fase di scarica che in quella di carica.
Il “cuore” del generatore è un oscillatore VCTCXO che
fornisce il riferimento al modulo GPS G7020-KT e al Si5351A. La tensione di
controllo del VCTCXO è data da un DAC MCP4725 (risoluzione a 12bit e
interfaccia I2C). I valori inviati al DAC sono elaborati dalla CPU in base al
feedback ricevuto dal modulo GPS sullo scostamento dell’oscillatore di
riferimento rispetto a quello agganciato al satellite. La CPU riceve i messaggi
UBX sul clock-Drift dal G7020-KT mediante una connessione seriale. Il DAC è
provvisto di una memoria EEPROM interna che permette all’accensione l’invio
immediato della tensione di controllo preimpostata al VCTCXO per velocizzare l’aggancio
della ricezione GPS.
Mediante l’interfaccia utente è possibile impostare le
frequenze e i livelli di potenza delle tre uscite del Si5351, rispettivamente
con una risoluzione di 1Hz e con quattro differenti livelli di uscita; 0.76DBm,
7DBm, 10DBm e 12DBm. Lo strumento ha inoltre una quarta uscita in SMA,
riguardante l’output PPS del sintetizzatore del modulo GPS, anche quest’ultimo
output è programmabile tramite interfaccia utente in frequenza da 1Hz a 24MHz (per
un phase noise accettabile, utilizzare solo sottomultipli di 48MHz) e in duty
cycle da 1% a 99%. E’ possibile impostare l’output PPS che sia attivo solo
durante l’aggancio GNSS, inoltre è anche possibile intervenire manualmente sul
valore inviato al DAC, funzione utile per esempio per velocizzare la taratura
in caso di sostituzione del VCTCXO.
Tutte le suddette impostazioni possono essere salvate in
EEPROM della CPU in modo che dopo pochi secondi da un successivo riavvio, lo
strumento generi le frequenze con le impostazioni salvate.
Il LED giallo sul pannello visualizza il segnale in uscita PPS
negato (LED spento = segnale alto), mentre il LED verde indica il funzionamento
della correzione effettuata sul VCTCXO: LED spento = nessuna ricezione GPS o
tDOP superiore a 5 (livello minimo per considerare il clock drift), LED
lampeggiante = tDOP inferiore a 5, clock drift superiore a +/- 4ns ed è in atto
una correzione della tensione del VCTCXO da parte del DAC, LED acceso fisso = clock
drift inferiore a +/- 5ns.
A titolo informativo, nella schermata GPS sono visualizzati i seguenti valori dinamicamente aggiornati: numero dei satelliti utilizzati, il tDOP (time dilution of precision), il valore di clock drift espresso in ns (corrispondente ad uno scostamento dell’oscillatore di 0,026 Hz per unità), la tipologia di fixed nessuna, 2D o 3D, la posizione in longitudine e latitudine e i metri sul livello del mare, data e ora in UTC, e infine il valore della tensione inviata dal DAC al VCTCXO nel range da 0 a 4095 (in step di circa 0,8mv); il VCTCXO risponde alla tensione di controllo in modo negativo, quindi al salire della tensione la frequenza del VCTCXO scende.