SATSAGEN INTERFACE


Franck F1SSF ha prodotto un interessante circuito stampato che raccoglie tutte le interfacce del progetto USBDAALBFER (Video).

Franck's SATSAGEN INTERFACE REV. E
Il PCB di Franck SATSAGEN INTERFACE REV. E


Con il PCB di Franck e Satsagen si può:

  • Alimentare un Noise Source per effettuare misure di Noise Figure and Gain Analyzer.
  • Collegare una scheda ADF5355 PLL synthesizer ed usarla come un dispositivo TX di Satsagen
  • Collegare una scheda AD831x log detectors per effettuare misurazioni di potenza fino a 10 GHz
  • Ottenere degli ingressi digitali ed analogici per utilizzare gli spectrum analyzer triggers
  • Pilotare SNA esterni con una rampa da 0 a 10 V sincronizzata con le scansioni SNA/VNA di Satsagen
  • Connettere un RF switch per abilitare le due porte effettive nella modalità VNA

Scarica i Gerber files o se vuoi puoi contattare Franck F1SSF, ma la disponibilità di PCB è limitata perché non ha un vero e proprio stock.

Scarica lo sketch Arduino da compilare e caricare sull’interfaccia.


Di seguito le istruzioni di Franck sul montaggio e calibrazione della sua realizzazione:

Hi All, Some information here. This PCBA is the first realization:

  • Inserted components except Nano and resistors 0U:
    • Use IBom:
  • Power UP:
    • Power supply on 12V IN connector
  • ADF5355 power supply
    • Measure R10 pad = 6V, if OK solder R10=0U
  • Step Up 28V – Warning, add modify R19 as below picture
    • Measure R23 pad, adjust P3 to obtain 28V max, If OK solder R23=0
  • Detector Step Up = ON:
    • Measure divider R2/R3, you must have 3Vmax
  • +15V DAC
    • Measure R13 pad = 15V, if OK solder R13=0U
  • Power OFF
  • Solder wires directly on serial chip Arduino (see schematic for pin numbers)
    • Plug Arduino on support for removal easily, and solder wires DCD = TP1, RI=TP2
  • Check the values of the ADF5355 voltage dividers
    • R12/R22. R16/R24. R18/R25
  • Now you can connect all peripherals
    • Use connectors J6 , J11, J5, J7, J10
  • +3V ref
    • Adjust P4 to have +3V on Arduino pin ref N°18
  • Configure Satsagen in tracking mode 0 to 6Ghz
    • See on J3 voltage ramp from 0V to about 12V.

SW1 allows you to select the operating modes of the Arduino, depending on the use.

You can deport SW1, LED1, and LED3 on the front end with J11 and J9.

If you move the LEDs, then remove the SMD LEDs or if you leave them, then change the R6 and R22 to adapt the current. SW1 can stay on board.

J1 / J2 / J10 Footprints are BNC connectors, but you can use SMA connectors after cutting legs. You solder ground around directly around the body.

Because the ADF5355 consumes approximately 200mA, it is recommended not to exceed 12V power supply to reduce the dissipation of the 6V regulator. I added a small radiator with thermal glue.

If your RF switch HMC536 already contains 100U resistors on ports A and B under the shield, replace R34 and R35 with 0U.

73’s  Franck F1SSF


Questa immagine ha l'attributo alt vuoto; il nome del file è Schematic_e01-1024x704.png
Schema dell’interfaccia di Franck Rev E-01

Questa immagine ha l'attributo alt vuoto; il nome del file è image1.png
Porzione dello schema relative al MT3608 step-up a 28 Volts con la R19 da aggiungere

Questa immagine ha l'attributo alt vuoto; il nome del file è image2.png
Particolare del montaggio della 2k2 R19 da aggiungere

Questa immagine ha l'attributo alt vuoto; il nome del file è image4.png
Il regolatore da 6 Volt con il piccolo dissipatore

SATSAGEN v.0.8.0.0

Download Page

I punti salienti di questa versione sono:

Cambiamenti importanti in Satsagen 0.8.0.0

Rimando alla fine dell’articolo l’elenco dei cambiamenti importanti da leggere per non trovarsi eventualmente in difficoltà utilizzando questa nuova versione. Forse andavano collocati qui, ma mi dispiaceva togliere troppo spazio in testa ai punti salienti!

Noise Figure and Gain Analyzer

L’analizzatore di NF/G si integra nello spectrum analyzer di Satsagen con l’ausilio dei marcatori per la configurazione delle frequenze, IF e bandwidth dei dispositivi in prova. L’analizzatore si basa sul metodo Y-Factor.

Occorrente:

Per effettuare le misure occorrono una sorgente di rumore con annessa tabella di caratterizzazione ENR e un dispositivo SDR con adeguata sensibilità supportato da Satsagen. Inoltre sarebbe necessaria, ma comunque facoltativa, un’interfaccia che sia in grado di alimentare a 28V la sorgente di rumore e che sia pilotabile dall’applicazione.

Ho ottenuto dei risultati attendibili e comparabili con strumenti quali l’Eaton 2075 utilizzando un ADALM-PLUTO o un RTL-SDR v3 come ricevitori SDR. Il bandwidth massimo utilizzabile e consigliato per le misure risulta essere di circa 1 MHz con ADALM-PLUTO e di 500 kHz con RTL-SDR v3. Tuttavia si possono utilizzare bandwidth superiori con i suddetti due dispositivi SDR, ma a scapito dei tempi di misura e precisione.

La sorgente di rumore che ho utilizzato nelle prove è una NH 5-12 costruita da Mauro IZ1OTT e caratterizzata in comparazione con una HP346B. La NH 5-12 di Mauro ha ENR media di circa 6.67 dB da 40 MHz a 10368MHz.

Possono essere utilizzati anche altri SDR supportati da Satsagen oltre a quelli citati sopra, ma per quello che ho potuto appurare, non si hanno garanzie di successo nelle misure per tutte le canoniche frequenze radioamatoriali coperte dai dispositivi SDR senza l’impiego di ulteriori LNA da anteporre all’ingresso degli SDR per migliorarne la sensibilità.

La bontà delle misure è legata dal binomio sorgente di rumore e SDR, dove per la sorgente di rumore è importante il valore ENR che sia sufficiente, ma non eccessivo e caratterizzato in una tabella mediante strumentazione professionale. Per gli SDR sono importanti sensibilità di ricezione e ovviamente un adeguato SNR.

Alcune note a riguardo da Mauro IZ1OTT:

<<Data la scarsa sensibilità degli SDR, si raccomanda l’interposizione di un preamplificatore tra il DUT e la SDR, specialmente in caso di misura di DUT con Gain basso (< 20 dB) o addirittura nullo. Riguardo l’ENR delle sorgenti, solo le teste commerciali hanno già una tabella con valori intorno ai 15 dB, adatte quindi per ogni tipo di misura. ENR inferiori, ottenibili con l’interposizione di un attenuatore, possono migliorare la precisione di misura per basse NF (ENR~NF), in ragione di un migliore adattamento tra DUT e sorgente.>>.

Come primo test empirico per escludere che il proprio sistema SDR/sorgente di rumore sia del tutto inutilizzabile, verificare dopo la calibrazione – mantenendo la sorgente di rumore collegata direttamente al RX del SDR – che non siano segnalati errori da Satsagen e che i valori letti di cifra di rumore e di guadagno non oscillino oltre i +/- 0.2dB per tutte le frequenze di misura che ci interessano.

Per quanto riguarda l’interfaccia di alimentazione della sorgente di rumore – al momento della scrittura di questo articolo – si hanno due possibilità di scelta supportate da Satsagen: usare un Arduino Nano o compatibile con questo sketch e uno Step-Up converter più un optoisolatore (schema circuito semplificato, schema circuito con controllo tensione) oppure utilizzare la linea RTS (attivo alto) della seriale del proprio PC (o di una interfaccia seriale USB/Seriale) che piloti un optoisolatore o un mosfet collegati all’alimentazione dei 28V. Va detto che Satsagen offre comunque la possibilità di misure one-shot anche senza l’ausilio della suddetta interfaccia; occorre in questo caso alimentare la sorgente di rumore manualmente nelle fasi di calibrazione e di misura, ovviamente il tutto a scapito di comodità e velocità nelle misure.

Infine, per migliorare l’adattamento d’impedenza verso l’ingresso del SDR, consiglio di inserire il solito attenuatore sull’ingresso RX del SDR, da 1 dB o al massimo 3 dB.

Operazioni preliminari:

Inserimento tabella ENR

Prima di tutto va inserita in Satsagen la tabella ENR in modo che l’applicazione possa caricarla ad ogni avvio del programma. Eseguire Satsagen, andare nella scheda Settings->Computations, aprire il tool di editing della tabella ENR con un click sul pulsante ENR INI Edit Tool:

Inserire a questo punto i valori ENR della sorgente di rumore a nostra disposizione (ricordati di selezionare la casella Append per facilitare l’inserimento dei dati) in questo modo ad esempio per la sorgente che ho utilizzato:

Al termine della compilazione, esportare con un click sul pulsante Export in un file, per esempio Documenti\satsagen\settings\mioENR.ini. Chiudere il tool ed inserire il suddetto percorso completo nella casella File ENR INI e dare OK (per facilitare l’inserimento, fare click sul pulsante … per la scelta diretta del file):

Selezione SDR e interfaccia pilota power noise source

Procedere in questo modo utilizzando un ADALM-PLUTO come SDR:

Andare in Settings->Devices e scegliere, come di consuetudine, il device SDR che si andrà ad utilizzare, in questo caso un ADALM-PLUTO. Mantenere le altre impostazioni così come da immagini:

Andare quindi nella scheda EXT in/Out e configurare l’interfaccia selezionando dalla lista Noise source power interface:

Misurare un DUT amplificatore:

Ad esempio, abbiamo un LNA in banda 23cm di cui vogliamo misurare la cifra di rumore e il guadagno in un bandwidth di 400 kHz:

  • Avviare lo spectrum analyzer di SATSAGEN
  • Aprire la tabella marcatori con un click sul pulsante Edit SA markers della toolbar
  • Compilare i campi ReqFrequency con la frequenza in Hz desiderata, in questo caso 1296000000, Span (è il bandwidth) con 400000 e CalcMode con NF/G (scegliere la voce NF/G dal menu a tendina). Confermiamo la creazione del marcatore con un click sul pulsante Post della toolbar:
  • A questo punto fare un click sul pulsante ON della scheda NF/G Analyzer:
Se si notano componenti indesiderate o altri transitori nello spettro all’interno della finestra grigia di acquisizione, è possibile spostare tale finestra (il marcatore) manualmente tramite i tasti J e K della tastiera o mediante la rotella del mouse, fino a quando la finestra non comprenda uno spettro “pulito” con solo il noise floor, cercando di evitare di includere la componente DC presente al centro.

SATSAGEN configurerà automaticamente tutti i parametri dello spectrum analyzer quali frequenza centrale, Span, RX gain, FFT size, video filter size ed altro, conformi per la misura di cifra di rumore e guadagno del DUT. Va detto che, terminate le misure, SATSAGEN riporterà tutti i parametri modificati dello spectrum analyzer ai valori utente precedenti.

  • Connettere il noise source alla porta RX del Pluto e avviare la calibrazione del sistema facendo un click sul pulsante Cal SYS del pannello NF/G Analyzer, dopo circa 12 secondi la calibrazione dovrebbe completarsi e il pulsante Cal SYS diventare di colore verde.
L’interfaccia noise source power come si può notare è più complessa del necessario, in quanto si tratta di un prototipo che ha anche altre funzioni, tra le quali gli ingressi trigger digitali e analogici, la possibilità di pilotare sintetizzatori PLL come l’ADF5355 e switch RF per l’utilizzo in modalità VNA.
La calibrazione del sistema è completata.
  • Connettere il DUT ed alimentarlo, dopo pochi secondi otterremo le misure di cifra di rumore e gain relative.
SATSAGEN riporta un guadagno del DUT di circa 14,5 dB e di una cifra di rumore di 4.0 dB a 1296 MHz.

Le misure del DUT amplificatore sono terminate. Chiudere l’analizzatore di NF/G cliccando sul pulsante verde ON del pannello NF/G Analyzer o spegnendo lo Spectrum Analyzer.

Misurare un DUT convertente, ad esempio un transverter:

Per misurare un DUT convertente si procede con la stessa modalità vista in precedenza per il DUT amplificatore, con la sola differenza nella compilazione del marcatore, dove per i DUT convertenti si deve inserire anche la frequenza IF, ovvero dell’oscillatore locale del dispositivo in prova. Se si misura come down-converter, la frequenza IF va inserita con segno negativo.

Ad esempio, abbiamo un transverter dei 13 cm e vogliamo misurarlo come down-converter da 2304 MHz a 144MHz:

  • Avviare lo spectrum analyzer di SATSAGEN
  • Aprire la tabella marcatori con un click sul pulsante Edit SA markers della toolbar
  • Riutilizzando un record preesistente di tipo CalcMode NF/G o creandone uno nuovo, compilare i campi ReqFrequency con 2304000000, Span con 400000, IF Frequency con -2160000000 e CalcMode con NF/G. Confermare con un click sul pulsante Post della toolbar la creazione/modifica del marcatore.
  • Fare un click sul pulsante ON della scheda NF/G Analyzer per avviare l’analizzatore:
Come si può notare, lo spectrum analyzer si sintonizza sulla frequenza in uscita del transverter, 144 MHz (2304MHz-2160MHz=144MHz).
  • Connettere il noise source alla porta RX del Pluto e avviare la calibrazione del sistema facendo un click sul pulsante Cal SYS del pannello NF/G Analyzer, dopo circa 12 secondi la calibrazione dovrebbe completarsi e il pulsante Cal SYS diventare di colore verde.
  • Connettere il transverter in prova ed alimentarlo, dopo pochi secondi otterremo le misure di cifra di rumore e gain del DUT convertente:
In prova il no-tune transverter Down East Microwave 2304 MHz WA8NLC
SATSAGEN misura un guadagno del DUT convertente di circa 14,4 dB e di una cifra di rumore di circa 2,8 dB.

Le misure del DUT convertente sono terminate. Chiudere l’analizzatore di NF/G cliccando sul pulsante verde ON del pannello NF/G Analyzer o spegnendo lo Spectrum Analyzer.

Digital Phosphor Display

Un analizzatore di spettro può effettuare migliaia di acquisizioni al secondo in base alle impostazioni. A queste alte velocità di acquisizione, per le caratteristiche tipiche dei monitor dei PC attuali e dell’occhio umano, molte delle informazioni visualizzate possono risultare impercettibili e andare irrimediabilmente perse.

Un tempo, alcuni strumenti di misura, come ad esempio gli oscilloscopi, usavano tubi catodici con fosfori a lunga persistenza che permettevano di vedere tanto i veloci transienti quanto di analizzare meglio eventi molto lenti.

Alcuni importanti produttori di analizzatori di spettro hanno pensato di riprodurre digitalmente la caratteristica dei vecchi tubi con fosfori a lunga persistenza, questa tecnologia è chiamata Digital Phosphor Display.

Su suggerimento di Bruno IK1OSG, ho pensato di dotare anche Satsagen del DPD, anche se in una forma credo semplificata.

Dal pannello SA DPD fare click sul pulsante Digital Phosphor Display per attivare tale funzione.

A differenza della già presente funzione di Max Hold che “fotografa” e permette di vedere eventi veloci, purché di intensità maggiore ai precedenti, il DPD mantiene visibili tutti gli spettri acquisiti indipendentemente dall’ampiezza, per un tempo (persistenza) impostabile dall’utente tramite i controlli presenti nel tool panel della finestra DPD. Inoltre le successive sovrapposizioni possono essere discriminate grazie al fatto che il DPD le colora diversamente, passando da una scala che parte dal blu per arrivare al colore rosso. Anche questo livello di profondità di colore è impostabile dall’utente dal tool panel DPD.

Poiché il DPD deve necessariamente contare le occorrenze per ogni punto di risoluzione, gli spettri acquisiti sono riversati da Satsagen in una memoria a matrice bitmap. Per tale ragione è necessario definire la dimensione di lavoro del bitmap. Tale impostazione si effettua dal pannello SA DPD con i controlli Max Data Samples (asse X) e Amp Samples (asse Y), di default i valori sono 1024 x 64.

Un possibile rovescio della medaglia di tale tecnologia è la normalmente più bassa risoluzione rispetto alla visualizzazione classica dello spettro, per cui la visione risulta più “squadrettata”, soprattutto se sottoposta a zoom.

E’ possibile ovviare alla granulosità della visualizzazione del DPD aumentandone la risoluzione tramite i suddetti controlli Amp Samples e Max Data Samples, ma occorre tenere conto del conseguente esponenziale aumento di occupazione di memoria e progressivo carico gravoso della CPU del sistema.

Per venire incontro a tale problematica del DPD e individuare il giusto compromesso nelle impostazioni per qualità di risoluzione e velocità di esecuzione, ho pensato di impostare una finestra di lavoro sull’asse Y dell’ampiezza, in modo che l’utente possa definire il limite minimo e massimo in dBm entro il quale gli Amp Samples sono renderizzati. Tali controlli Min e Max sono accedibili dal riquadro Amplitude nel tool panel della finestra DPD.

In alto la visualizzazione dello spettro aggiornata ogni 16ms circa. In basso la finestra DPD. In questo esempio Sono presenti due sorgenti RF attive, la prima è un CW in scansione da 2447 MHz a 2457 MHz e una sorgente wireless (mouse) in fase di ricerca dispositivo ricevente da circa 2461 MHz a oltre 2475 MHz. Come si può notare, nella visualizzazione classica è visibile soltanto il CW in un istante preciso della scansione.

Riepilogo controlli del Digital Phosphor Display:

Pannello SA DPD
  • Pulsante Digital Phosphor Display: accende o spegne il DPD
  • Lista Amp Samples: definisce in pixel la risoluzione asse Y
  • List Max Data Samples: definisce in pixel la risoluzione asse X
Tool panel finestra DPD
  • Manopole Min e Max: definiscono la finestra di lavoro espressa in dBm nella quale effettuare il rendering asse Y
  • Pulsante Reset: Azzera la persistenza facendo ripartire il rendering da un display vuoto
  • Manopola Depth: definisce il livello di profondità della persistenza. Se impostato a 10 come nell’esempio, le acquisizioni che supereranno i 10 hits, perché più frequenti dell’intervallo della persistenza, andranno perse.
  • Manopola Display Max: definisce il mapping tra il livello di profondità della persistenza e la scala colori. Se impostato come nell’esempio, dove il map è 1 a 1 con il livello di profondità della persistenza, la prima occorrenza sarà in colore blu e la decima in colore rosso. Portando invece ad esempio il Display Max a 5, la prima occorrenza sarà sempre in colore blu, ma dalla quinta alla decima saranno in colore rosso.
  • Manopola Persistence: definisce la persistenza in secondi a passi di 1 ms per ogni pixel nel display. Per esempio, l’impostazione di 0.23 secondi determina la cancellazione dal display del singolo evento registrato 230ms prima. A fianco della manopola sono visualizzati due valori. Il primo è la persistenza, il secondo è la persistenza massima totale di ogni pixel, in sostanza Depth x Persistence.
  • Pulsante Res Adapt: Adatta la risoluzione dei dati asse X alla dimensione in pixel della finestra DPD, in modo che eventuali segnali presenti più “stretti” della risoluzione video siano comunque visualizzati. Se si utilizza la funzione di zoom, la funzione Res Adapt andrebbe spenta al fine di usufruire del massimo dettaglio disponibile.
  • Pulsante Hold: “Congela” la visualizzazione.
  • Pulsante ZReset: Azzera eventuali fattori di zoom di entrambi gli assi X ed Y.

Zero Span

Zero Span è una modalità dello spectrum analyzer che permette la visualizzazione dell’ampiezza di un segnale in funzione del tempo.

Per attivare questa modalità fare click sul pulsante Zero Span con lo Spectrum Analyzer già in funzione.

Nella modalità Zero Span, i controlli Span MHz, Full Band e Span Coupled sono disattivi e una apposita manopola Time Base è visibile nel pannello.

La frequenza di lavoro può essere specificata come di consueto con il controllo Frequency kHz e il resolution bandwidth con il controllo RBW.

Time Base permette l’impostazione della base tempi con passi di 1 ms, 2 ms, 5 ms, 10 ms, 20ms, 50ms, 100ms e 500ms. Il Time Base si intende per l’intera escursione dell’asse X, quindi per esempio se è impostato a 10 ms, con una scala in dieci divisioni si ottiene 1 ms/div.

I valori sulla scala dell’asse X dello scope sono espressi in ms e sono visualizzati nella precisione dei decimali selezionata dall’utente. La scala potrebbe non terminare con un numero intero, va detto infatti che con un Time Base impostato a 10ms, la scala potrebbe terminare in base alle caratteristiche del sistema per esempio a 10,048ms.

Questo è dovuto anche alla natura intera dei punti che formano la visualizzazione. La formula della risoluzione dell’asse X è la seguente: TimeBase/(1/(MSPS/FFTSize)). Con un TimeBase di 10ms, un MSPS di 8000000 ed FFTSize di 512 si ottengono 156,25 punti. I punti devono essere necessariamente arrotondati a 157, per cui il TimeBase effettivo è di: punti_risoluzione (1/(MSPS/FFTSize)) = 0.010048 secondi.

Alcuni valori della base tempi sono strettamente legati alle frequenze di campionamento disponibili nel dispositivo SDR ed alle caratteristiche del computer in uso. Per esempio se l’hardware SDR non consente sampling rate superiori a 2,4MSPS, i valori di 1ms, 2ms e 5ms non sono disponibili.

Satsagen sceglie automaticamente il sampling rate migliore per il dispositivo SDR selezionato. Per esempio, con un RTL-SDR, Satsagen imposta il sampling rate a 2,4MSPS. Date le costanti di un FFT size di 512 e una risoluzione minima di 40 punti, si ha una base tempi che parte da 10 ms in poi con il suddetto dispositivo. E’ possibile ottenere una impostazione di Time Base più veloce usando SDR più performanti, ma le caratteristiche del computer e dell’applicazione diventano via via sempre più importanti per il corretto funzionamento della modalità Zero Span.

In tali circostanze, possiamo agire tramite la manopola MSPS dai controlli estesi per individuare il sampling rate migliore per il nostro sistema (SDR/Computer/Satsagen) al fine di ottenere una base tempi più veloce in assenza di errori di acquisizione. Per accedere ai controlli estesi, fare click sulla scritta RBW:

Procedura per verificare il corretto funzionamento del modo Zero Span e individuare il migliore sampling rate:

  • Collegare un generatore esterno modulato in AM al nostro SDR
  • Avviare lo spectrum analyzer e la modalità Zero Span
  • Impostare Frequency kHz e RBW adatti per visualizzare il segnale dal generatore
  • Dal pannello SA Triggers attivare Video e ruotare la manopola Level su un livello idoneo per ottenere una visualizzazione “ferma” del segnale in ingresso. Se occorre, fare click su Level della manopola Trigger per passare da uno Slope negativo a positivo o viceversa.
  • Ruotare la manopola MSPS aumentando o diminuendone il valore al fine di individuare il più alto sampling rate nel quale la visualizzazione risulti ferma e completa.
In questo caso il sampling rate è superiore alla capacità del sistema per un regolare funzionamento dello Zero Span, si verificano overflow e perdita di informazioni.

Una volta individuato il valore migliore di MSPS, l’impostazione verrà automaticamente salvata e caricata nelle successive sessioni di Satsagen con il dispositivo SDR per il quale si è effettuato il tuning.

Attivando il modo Zero Span, lo spectrum analyzer passa dalla visualizzazione in dominio di frequenza ad una visualizzazione in dominio del tempo, per cui tutte le unità riferite all’asse X del display, ai marcatori ed ai cursori sono espresse in ns, us o ms. I marcatori inseriti in modo Zero Span sono di Type = Time ed hanno il campo Time valorizzato in nanosecondi ed ovviamente non sono disponibili nella modalità classica in dominio di frequenza dello spectrum analyzer; analogamente i marcatori inseriti in dominio di frequenza non sono disponibili in Zero Span.

In modo Zero Span le funzioni di MKR Monitor e di Digital Phosphor Display possono essere attivate, mentre non è possibile aprire waterfall.

Il modo Zero Span non si attiva (il pulsante lampeggia di colore rosso e poi si spegne) nel caso una o più delle seguenti condizioni è vera:

  • La modalità Full Band è attiva
  • Il Noise Figure/Gain Analyzer è attivo
  • Il device di ricezione non è un SDR
  • Lo spectrum analyzer non è in funzione
  • Il multithreading non è attivo
  • Uno dei filtri LO F o E F è attivo
  • La frequenza impostata è troppo bassa. La frequenza minima impostabile in modo Zero Span corrisponde approssimativamente alla frequenza minima del device SDR più la frequenza di campionamento diviso per otto.

USRP B200mini e NI USRP 2920

Grazie all’infinita generosità dei miei amici radioamatori, ho avuto in prestito per alcuni mesi un USRP B200mini e un NI USRP 2920. Ho pensato potesse essere interessante aggiungere il supporto in Satsagen per i suddetti performanti SDR.

Premetto che i risultati ottenibili in Satsagen non sono unicamente condizionati dalle caratteristiche dei dispositivi SDR collegati, ma in buona parte anche dalla qualità del computer e delle periferiche di comunicazione annesse, oltre ovviamente dalla bontà del software!

Per tali ragioni mi prendo tutte le colpe nel caso non riusciste ad ottenere mediante Satsagen i risultati sperati con i suddetti USRP; la tecnologia di Satsagen è in continua evoluzione e i computer a mia disposizione per lo sviluppo e i test possono non aver avuto i requisiti necessari per il pieno utilizzo di questi performanti SDR.

Se non si desidera il supporto in Satsagen per i dispositivi USRP, è possibile escludero in fase di installazione da custom setup, deselezionando la voce USRP Support sotto DefaultProgram.

B200mini

Come è noto, il prerequisito per ogni hardware che si va ad installare è il driver. Visitare questa pagina Ettus driver per l’installazione in Windows dei pacchetti necessari. Alcuni USRP, come il B200mini, hanno anche bisogno dei file di firmware e FPGA installati sul computer, in modo che possano essere caricati sul dispositivo al primo utilizzo. Questi file sono contenuti nei package UHD; effettua il download e l’installazione del più recente package uhd_x.x.x.x-release_Win32_VS2017.exe dalla directory Windows-10-x64.

Per l’utilizzo del B200mini occorre installarne i driver; dalla suddetta pagina effettuare il download da Download and install Windows UHD USB Drivers, sezione Post-Install Tasks.

Terminata l’installazione di UHD e dei driver, connettere il B200mini ad una porta USB3 del computer e verificare in Gestione computer->Gestione dispositivi che sia presente un Ettus Research LLC B200mini sotto USRPs.

Avviare quindi Satsagen e da Settings->Devices->Model scegliere la voce USRP B200mini. Potrebbero essere necessari circa dieci secondi prima che il dispositivo venga visualizzato, in questo lasso di tempo l’applicazione potrebbe risultare bloccata in quanto impegnata con l’upload del firmware verso il dispositivo.

Controllare nella tab Device Options che la voce CM recv frame size sia selezionata. Questa opzione aggiunge il parametro recv_frame_size=131072 agli argomenti della connessione; è un parametro custom che ho constatato essere utile per migliorare le prestazioni di comunicazione con Satsagen.

A questo punto si può chiudere Settings confermando su Ok e cliccare sul pulsante Power di Satsagen.

Anche in questo caso, al primo collegamento con il B200mini, saranno necessari alcuni secondi prima che l’interfaccia risulti operativa per via dei tempi di upload dei file per la FPGA verso il dispositivo.

Ora si può usare Satsagen come di consueto, collegato con l’SDR B200mini.

Di seguito alcune note importanti per l’utilizzo di B200mini in Satsagen:

Il B200mini ha il transceiver AD9364, della stessa famiglia del AD9363 di ADALM-PLUTO, per cui le caratteristiche di range di frequenza e bandwidth sono simili al Pluto, ma con alcune differenze dovute principalmente al firmware ed alla diversa progettazione del front-end RF.

  • L’output TX può arrivare a circa 20 dBm su alcune frequenze grazie ad un booster interno
  • Probabilmente a causa del suddetto amplificatore, il cross-talk risultante è abbastanza importante.
  • La modalità armonica non è disponibile per il B200mini, in quanto non sono riuscito ad ottenere risultati soddisfacenti già a partire dalla terza armonica dei 2 GHz (6 GHz).
  • I transceiver AD936x hanno la banda base condivisa tra RX e TX, per cui l’utilizzo in full-duplex può risultare limitato e produrre effetti come la produzione di componenti indesiderate ed altro. Inoltre la calibrazione automatica del TX a cura del firmware del B200mini, richiede che il bandwidth filter del RX sia impostato sempre a 56MHz (il massimo valore).
  • La FPGA non è programmata come DDS in TX, per cui lo stream TX impegnerà sempre la CPU del computer e la banda USB. Poiche la banda base è condivisa, in un utilizzo full-duplex, come nel caso dello Spectrum Analyzer e del generatore entrambi attivi, il sampling rate della sezione TX è allineato al RX. Se per esempio si impostano 10 MHz di span nello Spectrum Analyzer, Satsagen è costretto a generare ed inviare al dispositivo lo stream TX a circa 20 MSPS. Per tali ragioni, può succedere che una impostazione di span prossima al massimo bandwidth del dispositivo possa addirittura compromettere la bontà dell’output TX, in quanto Satsagen e il computer non riescono a produrre ed inviare uno stream verso il dispositivo senza errori.
  • Ho notato una leggera lentezza nella quadratura e riduzione automatica della componente DC nei cambi di frequenza in ricezione. Questa lentezza si riflette nei tempi complessivi di scansione quando si utilizza lo Spectrum Analyzer in modalità swept-mode, cioè da 31 MHz di span in poi.

NI USRP 2920

Ho aggiunto il supporto e testato il dispositivo NI USRP 2920 usando il firmware USRP2/N-Series Ettus Research.

Anche altri programmi, come GNU Radio o SDR Console possono utilizzare il NI USRP 2920 con il firmware USRP2/N-Series Ettus Research. Tale configurazione tuttavia non è supportata da National Instruments.

Declino ogni responsabilità in caso di malfunzionamenti, blocchi, perdita di dati o compromissione della sicurezza del PC derivanti da operazioni svolte seguendo questo tutorial.

Il NI USRP 2920 comunica con il computer mediante una connessione di rete gigabit ethernet. Normalmente il NI USRP 2920 di fabbrica ha un indirizzo nella classe C 192.168.10.x. La rete del PC deve essere configurata in modo che possa raggiungere tale indirizzo.

Nella maggior parte dei casi, i PC sono configurati con un indirizzo dinamico in classe C 192.168.1.0, per cui il modo più semplice e veloce per far comunicare il PC con il NI USRP 2920, se per esempio il PC ha indirizzo appartenente alla suddetta classe C, come può essere 192.168.1.100, è di assegnare staticamente al PC l’indirizzo specificando una subnet mask 255.255.0.0 in vece di 255.255.255.0.

Come nel caso del B200mini, visitare questa pagina Ettus driver per l’installazione in Windows del package UHD; effettua il download e l’installazione del più recente package uhd_x.x.x.x-release_Win32_VS2017.exe dalla directory Windows-10-x64.

Una volta installato il package UHD, connettere in rete NI USRP 2920 ed accenderlo.

Da un prompt dei comandi, effettuare un change nella directory di SATSAGEN: cd C:\Program Files (x86)\albfer.com\SATSAGEN quindi eseguire ..\..\UHD\bin\uhd_usrp_probe.exe

L’utility uhd_usrp_probe effettuerà una ricerca dei dispositivi in rete mediante multicast, quindi anche senza conoscere l’indirizzo IP del NI USRP 2920 potrà raggiungerlo ed interrogarlo.

Se l’utility non riconoscerà il dispositivo come USRP2 / N-Series Device, non ne elencherà le caratteristiche e potrà presentare un errore come il seguente:

In tal caso, seguendo le suddette istruzioni potremo caricare il firmware USRP2/N-Series Ettus Research sul nostro NI USRP 2920, in modo che possa esssere “visto” da Satsagen e anche da altri programmi SDR come un USRP2 / N-Series Device.

Una volta terminata l’installazione del firmware mediante l’utility uhd_images_downloader.py, ed aver nuovamente controllato con l’utility uhd_usrp_probe.exe la configurazione del NI USRP 2920, possiamo eseguire Satsagen e collegarlo al SDR.

Avviare quindi Satsagen e da Settings->Devices->Model scegliere la voce USRP2 (N210/2920).

Controllare nella tab Device Options che la voce CM recv frame size sia selezionata. Questa opzione aggiunge il parametro recv_frame_size=131072 agli argomenti della connessione; è un parametro custom che ho constatato essere utile per migliorare le prestazioni di comunicazione con Satsagen.

Come si può notare, la modalità armonica per NI USRP 2920 è disponibile.

A questo punto si può chiudere Settings confermando su Ok e cliccare sul pulsante Power di Satsagen.

Ora si può usare Satsagen come di consueto, collegato con l’SDR NI USRP 2920.

Di seguito alcune note importanti per l’utilizzo di NI USRP 2920 in Satsagen:

  • Il range di frequenze vanno da circa 68 MHz (circa 58 MHz sfruttando 10 MHz di span in sola ricezione) a circa 2,2 GHz.
  • La modalità armonica è disponibile, attivandola, la ricezione e trasmissione si può estendere da 2,2 GHz fino ad arrivare a 6,4GHz
  • Il dispositivo non ha una granularità fine nell’impostazione dei sampling rate. Per esempio, se l’utente imposta 4 MHz di Span nello Spectrum Analyzer, corrispondenti a 8 MSPS, Satsagen configurerà il sampling rate di ricezione a 8 MSPS, ma il dispositivo ritornerà il valore di circa 7,7 MSPS. Questo si riflette sull’effettiva scala visualizzata, in uno span inferiore a ciò che l’utente ha richiesto. Anche nella modalità Zero Span, il time base potrebbe non risultare perfettamente in scala con i passi 10 ms, 20 ms, 50 ms, etc, perché direttamente legati al sampling rate del dispositivo. Non so se questa particolarità è dovuta al firmware Ettus Research.
  • Ho notato che il lock del PLL su alcune determinate frequenze non funziona. Per esempio, con il dispositivo che ho avuto in esame, non è possibile impostare il PLL di TX alla frequenza di 127328760 Hz. Non so se anche questo malfunzionamento è dovuto all’utilizzo di un firmware non NI.
  • Ho notato altresì una importante lentezza nell’annullamento della componente DC in ricezione in seguito ai cambi di frequenza. Questa lentezza comporta una visualizzazione delle righe di DC quando lo spectrum analyzer è in modalità swept-mode:
400 MHz di span corrispondono a 40 cambi di frequenza del LO di ricezione

Si può ovviare a tale visualizzazione “disturbata” attivando il filtro E F:

L’opzione CBX-120.

Il NI USRP 2920 può ospitare delle opzioni in sostituzione della scheda front-end RF.

Ho potuto testare il NI USRP 2920 con a bordo l’opzione CBX-120, la quale permette di ottenere un range di frequenze in fondamentale da circa 1,2 GHz a 6 GHz.

Questa configurazione è abbastanza singolare, poiché la CBX-120 è normalmente destinata ai più performanti SDR della serie X della NI, difatti con la serie X tale scheda permette di raggiungere 120 MHz di bandwidth, mentre se utilizzata in un NI USRP 2920 si ottengono circa 25 MHz di bandwidth (50 MHz con profondità 8 bit).

Per utilizzare in Satsagen un NI USRP 2920 con a bordo la CBX-120 è necessario selezionare il dispositivo USRP2 (N210/2920) w/CBX120 da Settings->Devices->Model.

La modalità armonica con la CBX-120 non è attivabile.

Spettrometro AS7265x

Da tempo pensavo a quanto sarebbe stato intrigante visualizzare in Satsagen i dati prodotti da uno spettrometro ottico, in una rappresentazione non più come di consueto in MHz, ma in lunghezze d’onda nm!

La recente riproposizione di uno spettrometro dal costo abbordabile per l’hobbista in un noto blog di progetti elettronici, mi ha convinto che doveva essere il momento giusto per realizzare il suddetto desiderio.

Lo spettrometro in questione utilizza tre sensori della AMS, serie AS7265x, capaci ognuno di misurare sei lunghezze d’onda con filtri gaussiani larghi circa 20nm, per un totale di 18 sensori/lunghezze d’onda misurate.

Non si tratta di uno strumento professionale dal costo proibitivo, ma nonostante questo AMS lo propone per svariati campi di applicazione nell’analisi dei materiali, tra i quali l’anticontraffazione, la ricerca di prodotti adulterati, in orticoltura e nella spettroscopia portatile in generale.

Questo articolo scritto da Boris Landoni, Technical Manager di Futura Group, è una completa descrizione dello spettrometro in oggetto.

La demo board che ho utilizzato è pilotabile dal PC tramite una connessione seriale. Poiché i livelli della seriale dello spettrometro sono a 3,3V, risulta conveniente utilizzare una interfaccia USB/seriale come per esempio FTDI232 per completare il collegamento con il PC.

Il mio prototipo di spettrometro AMS AS7265x su breadboard con interfaccia USB/seriale FTDI232

Utilizzare lo spettrometro AS7265x con Satsagen è abbastanza semplice:

  • Collegare lo spettrometro al PC
  • Assicurarsi che all’interfaccia USB/seriale sia stata assegnata una porta controllando da gestione dispositivi di Windows che il ramo Porte (COM e LPT) contenga una voce USB Serial Port come nell’immagine seguente
  • Aprire Satsagen e da Settings->Devices-Models scegliere la voce AS7265X Spectrometer.
  • Satsagen individuerà automaticamente lo spettrometro interrogando le porte disponibili nel sistema e ne visualizzerà il numero di COM e la versione del dispositivo nella casella Spectrometer Device
  • Confermare con OK la chiusura di Settings e accendere Satsagen con un click sul pulsante Power, da questo istante il programma farà partire un thread dedicato alla comunicazione con il dispositivo, difatti si noterà dai led dell’interfaccia seriale una costante attività di traffico dati.
  • Fare click sul pulsante Spectrum Analyzer (Spectrometer) per far partire la visualizzazione dei dati in arrivo dallo spettrometro.
In questo esempio ho puntato lo spettrometro verso lo schermo bianco del PC

I dati in arrivo dai sensori AMS sono visualizzati di default in curve gaussiane su una scala lineare di intensità (I) che va da 0 a 65535, tali curve riproducono le caratteristiche dei reticoli di diffrazione dei sensori.

Se si desidera, è possibile attivare una visualizzazione a barre cliccando sul pulsante Bar Graph:

Tramite il controllo Gain si imposta il guadagno dei sensori su quattro step:

  • 0=1X
  • 1=3,7X
  • 2=16X
  • 3=64X

Mentre dal pannello dedicato Spectrometer è possibile impostare l’integration time (tempo di esposizione) in millisecondi tramite la manopola ITime e la modalità di calibrazione

La calibrazione in sostanza applica una tabella di 18 moltiplicatori ai valori letti dai sensori del dispositivo.

Se si sceglie la voce Device dalla lista Calibration mode, la calibrazione è demandata al dispositivo con i dati contenuti nella memoria dello stesso, mentre la voce Custom permette all’utente di specificare la tabella di calibrazione con un file .INI.

Va fatto notare che la calibrazione demandata al dispositivo è piuttosto impegnativa per le poche risorse del microcontroller del sensore principale, per cui incide sui tempi di sweep time nell’ordine di circa 60ms per ciclo.

L’installazione di Satsagen crea un file di esempio di calibrazione in Documenti\satsagen\settings con nome altdefcfg_SPM.ini. Per rendere attiva la calibrazione Custom è sufficiente aprire con blocco note il suddetto file, modificarne all’occorrenza i valori e salvarlo nella stessa directory con nome altdefcfg.ini, quindi selezionare la voce Custom dalla lista Calibration mode.

Dal pannello normalmente dedicato al Generatore di Satsagen, è possibile comandare l’accensione dei LED a bordo dello spettrometro con un click sul pulsante LEDs

Se si possiede uno spettrometro AMS con LED adatti ad essere variati in intensità, è possibile impostare l’intensità di corrente dei LED mediante il controllo Pwr su quattro step:

  • 1=12,5 mA
  • 2=25 mA
  • 3=50 mA
  • 4=100 mA

Molte delle funzioni di Satsagen usate in ambito RF sono disponibili anche con lo spettrometro, quali i triggers, Min Hold, Max Hold o il Waterfall:

Anche i marcatori possono essere utilizzati, per esempio per misurare differenze di intensità o soprattutto per innescare delle azioni in seguito al superamento di livelli con segnali acustici o producendo delle esportazioni dei dati di lettura.

Se interessati, consiglio la lettura dei paragrafi Marker Monitor e Auto esportazione dati di spettro in questo articolo.

Spero che il supporto dello spettrometro in Satsagen possa tornare utile per chi si approccia in tale ambito, anche solo come utility per testare i dispositivi della serie AS7265x o come riferimento per eventuali sviluppi di applicativi ad-hoc.

Fatemi sapere delle vostre esperienze in merito, grazie!

Cambiamenti importanti in Satsagen 0.8.0.0

  • Spectrum Analyzer multithreading: Le nuove funzioni di Satsagen quali il Noise Figure analyzer, il Phosphor display e la modalità Zero Span, richiedono un uso importante del multithread con conseguente carico della CPU/core del PC. Poiché ho sempre desiderato che il programma possa essere utilizzato senza che si blocchi anche su PC con poche risorse e non proprio di recente costruzione, ho aggiunto la possibilità di disabilitare il multithreading, con il rovescio della medaglia che ovviamente, una volta disabilitato, alcune delle suddette funzioni non saranno più disponibili, o saranno comunque fruibili, ma in una forma limitata, più lenta. Se occorre, disabilitare quindi la voce Multithreading nella tab Extra in Settings.
  • Autozoom: In molti mi hanno fatto sapere che la funzione di autozoom era fastidiosa, soprattutto perché annullava un’eventuale impostazione di scala quando si facevano ripartire le scansioni SNA o VNA. Ora l’autozoom è disabilitato di default, inoltre mediante la manopola dB/div è possibile impostare la scala dell’asse Y con passi di 1 dB, 2 dB, 5 dB, 10 dB e via di seguito.

Poiché ora l’autozoom è disabilitato di default, può succedere che in seguito ad un cambiamento di gain o dei livelli del segnale in ingresso, la traccia sullo schermo non sia più visibile; è un’eventualità che può capitare sia in modo spectrum analyzer che in SNA o VNA. In tal caso cliccare sul pulsante TFinder (e accanto alla suddetta manopola dB/div) e Satsagen riporterà in pochi secondi di nuovo visibile la traccia sullo schermo.

Infine, se non si gradisce questa nuova modalità, è possibile ritornare al vecchio modo di zoom delle precedenti versioni abilitando la voce Zoom OldStyle, nella tab Appearance in Settings.

  • Le opzioni dei dispositivi: Nella tab Devices in Settings, erano presenti delle opzioni relative ai device che permettevano di abilitare il modo armonico, l’auto TX calibration, il direct sampling, etc… Ora questi controlli sono stati spostati e meglio organizzati visivamente in base ai modelli dei dispositivi selezionati, nella nuova tab Device Options sempre sotto Settings.

Filtro passa banda a 450 MHz

Questo interessante filtro è stato realizzato da Luigi IZ7PDX. Si tratta di un passa-banda centrato a 450 MHz che Luigi utilizzerà come filtro IF in un suo transverter.

Il filtro passa-banda centrato a 450MHz di Luigi IZ7PDX visto dal pannello frontrale.
L’interno dello stesso filtro a 450 MHz con la sezione notch non ancora attivata (“parcheggiata” al momento a 580 MHz).

Luigi ha caratterizzato il filtro usando ADALM-PLUTO e SATSAGEN.

Il setup per l’analisi del filtro in questione. Si nota l’attenuatore posto sul lato RX per migliorare l’adattamento d’impedenza e preservare lo stadio RX di ADALM-PLUTO da possibili danneggiamenti.
La risultante curva di risposta in uno span di 200 MHz. La perdita d’inserzione risulta intorno a 1.3 dB
Una scansione effettuata su uno span a 700MHz

Luigi ha successivamente migliorato l’impedenza di ingresso e uscita del filtro agendo sui link di accoppiamento e misurando con un vector antenna analyzer:

Impedenza d’ingresso misurata con il vector antenna analyzer
Impedenza d’uscita del filtro misurata con l’ausilio di un vector antenna analyzer
La scansione con uno span di 200 MHz dopo il lavoro di miglioramento dell’impedenza in e out del filtro. Si nota che ora il filtro risulta più “stretto” come bandwidth rispetto alla scansione effettuata in precedenza, prima d’intervenire sui link di accoppiamento.
Scansione del filtro con span a 700MHz

Grazie Luigi per aver condiviso questa tua bella realizzazione RF!

Trovate Luigi IZ7PDX su:
- Canale youtube
- Sito

GPSDO

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.