Archivi tag: timelab

time-nuttery – parte 3

In un interessante documento trovato in rete “Clock Measurements Using the TimePod 5330A with TimeLab and Stable32” si parla in modo molto diffuso del parametro di “sampling interval” del software timelab.
In pratica è un numero che influenza completamente il comportamento del software, definendo la ENBW (Equivalent Noise Bandwidth) ed il numero di campioni che sono necessari per completare la misura. Nello specifico del 53131 e simili: “specifies the gate or other measurement interval for which the counter is configured. This period is treated as the tau0 basis, which defines the leftmost edge of any deviation plots”.

Quindi, se io volessi fare delle misure dei miei segnali a 10MHz usando un “sampling interval” maggiore (e sempre deterministico), dovrei alimentare il connettore di “external arming” con un segnale che possa triggerare la lettura e che abbia frequenza di 1Hz, 10Hz, 100Hz o 1000Hz. Perfetto. Vale la pena di fare un tentativo, mica sarà difficile generare un impulso. Nel documento “High Resolution Phase Measurement with Keysight 53230A” (sito www.efos3.com) si menziona un esperimento simile, nel quale, per realizzare il trigger per il counter, è stato usato un generatore HP di ottima qualità. Io devo arrangiarmi con quello che ho. I parametri della forma d’onda sono: ampiezza almeno 4V, durata dell’impulso 200ns.

Prima prova: uso il generatore interno dell’oscilloscopio Tektronix. Niente, non è possibile generare un impulso con durata inferiore a 10ms per via della limitazione in banda del sistema. Vabbè, prendo un pulse generator dall’armadio dei “dimenticati”. Trovo un HP 8011A, che vorrei mettere come soprammobile nel mio studio (lo farò), solo per le targhette di ispezione firmate a mano. Lo accendo ma l’unica cosa che genera è tanto calore. Andrebbe fatto un service molto accurato ma non è proprio il momento. Accanto a questo cimelio ho trovato un GwInstek del 1995 che non si accende. Inizio ad essere un po’ “frustrato” e chiedo in giro: un collega mi dice di avere usato uno strumento veramente versatile LiquidInstruments Moku:Go. Un “ciaffetto” che sta nel palmo della mano e consente di fare (SDR) un sacco di cose tra le quali la generazione di segnali arbitrari.

Moku:Go sia! Scarico il software, collego lo strumento al PC, aggiorno il firmware (20 minuti) e poi mi metto a fare delle prove di generazione, collegando ad una uscita l’oscilloscopio (controllato da rete) ed all’altra uscita il counter. Dopo qualche minuto sono in grado di controllare il trigger del counter, con estrema versatilità.

Schermata di controllo Moku:Go
Monitoraggio forma d’onda via web.

L’impulso generato è anche piuttosto “bello” da vedere e rispetta perfettamente i dati impostati dalla console.

Verifica impulso MoKu:Go. Notare rise time e durata

A questo punto non rimane che fare le misure ed aspettare, godendo dello spettacolo di tutti gli apparati.

Setup di misura.

Risultato delle misure: fare una misura con campionamento a 100Hz è uno stillicidio. Devono essere acquisiti 100000 campioni per finire il processo, cosa che richiede una discreta quantità di tempo (quasi un’ora). L’aumento del sample rate, ha come conseguenza il fatto che la ENBW aumenta, pertanto è lecito aspettarsi un comportamento peggiore per le curve acquisite con alto SR. In questo run sono poco apprezzabili.

tau / sgma(tau)1Hz10 Hz100 Hz
1 secondo8.73E-108,83E-108.06E-10
10 secondi8.62E-118.56E-118.03E-11
100 secondi8.67E-128.05E-128.03E-12

Durante il test sono cambiate le condizioni climatiche della stanza, con la temperatura che è salita di circa 1 grado. La misura effettuata con sampling a 100Hz mostra un andamento molto regolare, con il maggiore averaging che mitiga l’effetto del crosstalk presente, ma peggiora le prestazioni.

ADEV cambiando il valore del sample rate

Ci siamo quasi. Tutto è (quasi) pronto per fare una prima misura di un quarzo. Anche se sorgono notevoli interrogativi….

time-nuttery – parte 2

Preso dall’emozione nell’avere ricevuto una piacevole e motivante email da “Tom Van Baak” ( autore del sito leapsecond.com), ho voluto esplorare la possibilità di fare misure di ADEV direttamente con il segnale a 10MHz.

Il setup di misura è il consueto: segnale sinusoidale a 10MHz generato da uno dei GPSDO, inviato ad un power splitter, poi due cavi (RG58) di lunghezza diversa. Il percorso corto alimenta il canale 1, quello lungo il canale 2. Stavolta, giusto per non fare lo stesso errore, una rapida occhiata con l’oscilloscopio:

Segnali in ingresso al counter.

Ampiezza del segnale 400mV nella semionda positiva, posso mettere il trigger comodamente a 200mV sul rising edge. Impedenza di ingresso 50 ohm.

Una volta configurato lo strumento, imposto la modalità “T1 to T2” e via. Il problema è che l’acquisizione da parte di TimeLab è triggerata dallo strumento che funziona in “auto arming”. In pratica le misure vengono effettuate nel modo più veloce possibile. Questo comporta che selezionando un periodo di acquisizione di 1000 secondi, i 1000 punti vengono acquisiti in pochissimo tempo (circa 30 secondi). La curva che si ottiene non rispecchia (se non nel numero di punti) il principio temporale dell’acquisizione. Per come la interpreto io, questo tipo di approccio dovrebbe dare risultati sbagliati, in quanto non è chiaro l’intervallo temporale con il quale vengono acquisiti i campioni, aspetto fondamentale della misura di ADEV.

Come è possibile “frenare” lo strumento e limitare il numero delle acquisizioni al secondo? Nel pannello posteriore dello strumento è presente un connettore “External ARM” che ha la funzione di trigger per la misura che si intende fare. Ho deciso di pilotare il “ext ARM” con il segnale PPS proveniente da un altro GPSDO che condivide con il primo la stessa antenna. In questo modo l’acquisizione del segnale è decisamente più lenta e rispecchia quello che avviene con il segnale PPS in ingresso. Il grafico che si ottiene ha forma e caratteristiche che lo rendono facilmente confrontabile con il PPS.

Misure comparative.

In questa figura:
Rosa – Misura di noise floor effettuata con due segnali PPS in ingresso allo strumento;
Blu – Misura di noise floor effettuata con due segnali 10MHz in ingresso allo strumento, trigger esterno;
Verde – Misura di noise floor effettuata con due segnali 10MHz in ingresso allo strumento, trigger automatico.
La curva BLU è molto tormentata rispetto alla “parente” rosa. Il significato delle oscillazioni è da cercare nel CROSSTALK che si ha tra i cavi (che sono banalissimi RG58 a singola schermatura). Le oscillazioni sono molto più marcate in quanto il crosstalk aumenta con la frequenza, pertanto, lavorando ad 1Hz si hanno effetti molto mitigati rispetto al caso 10MHz. La curva verde non mi convince. E’ stata acquisita in meno di 30 secondi ed ha un andamento troppo “smooth” per potere essere di una qualche valore. al pendenza c’è ma manca il contenuto informativo.

time nuttery – parte 1

Nel corso degli ultimi anni ho presentato qualche progetto inerente il mondo del timekeeping. In particolare ho “messo insieme” un po’ di pezzi per dare una dignitosa “casa” ad un oscillatore Bulova (estratto da un vecchio strumento di misura) ed a due GPSDO che sono stati corredati di antenna esterna (sul tetto dell’ufficio). Il tutto è corredato da un counter HP 53131A e da tonnellate di bit letti sulla mailing list dei time-nuts e siti correlati.

Nell’ultimo mese à nata l’esigenza di tenere un breve seminario sul timekeeping, materia che ho un po’ abbandonato (nella pratica) perchè mi sono dedicato molto al networking. L’occasione è stata quindi ghiotta per rispolverare un po’ di apparati e per cercare di fare qualche misura (almeno di noise floor) da discutere in mailing list. Detto questo ho riavviato ed aggiornato la VM che ospita il “windows 10 delle misure” e che è collegata all’adattore GPIB/USB. Questo approccio garantisce che la macchina possa fare misure anche per giorni, senza essere disturbata da altri eventi, essendo ospitata su una WS piuttosto potente e protetta da UPS.

Vista la scarsità di tempo a disposizione ho riesumato TimeLab (arrivato alla versione 1.7F) ed ho cercato un modo per fare la misura i Noise Floor. Ovviamente, il punto di partenza è stata la mailing list ed i siti correlati, nei quali ho navigato in lungo ed in largo senza trovare una soluzione al mio problema: come fare?

Primo test – Nel tempo
Per effettuare questo test, che dovrebbe essere una valutazione del noise-floor dell’apparato, mi sono attrezzato in questo modo. Da un GPSDO ho prelevato l’uscita PPS e l’ho inviata ad uno splitter coassiale. Una uscita dello splitter (cavo corto) alimenta il canale 1, mentre l’altra uscita dello splitter (con cavo “lungo”), alimenta l’ingresso 2.

La prima misurazione importante la ho fatta con una configurazione degli ingressi che si è rivelata perfettibile. Parlandone su “time-nuts” è venuto fuori che era possibile lavorare un po’ sui trigger per ottimizzare le prestazioni, cosa che ho fatto dopo avere analizzato il segnale con l’oscilloscopio.

Il sistema è meglio se lavora con impedenza adattata, quindi ho terminato i canali dell’oscilloscopio a 50ohm e visto il segnale di uscita dal GPSDO. Il segnale è piuttosto “rapido” nel fronte di salita ed ha una ampiezza un po’ bassina: siamo poco sopra i 600mV su 50ohm.

PPS

Mettendo a confronto entrambi i canali, è possibile determinare il ritardo introdotto dalla linea coassiale:

Uscite dal power splitter – Lunghezza differente del cavo

Siamo circa a 20ns, valore molto superiore ai 500ps di jitter (dichiarati) dal counter.

Gli ingressi sono configurati con “auto trigger OFF” e livello 0.3V. Tutti gli altri parametri sono lasciati ai valori di default, tranne l’impedenza fissata a 50ohm. Il counter ‘ configurato in modalità “time interval” e “T1 to T2”. In questo modo il segnale sul canale 1 triggera uno start, mentre quello sul canale 2 uno stop. La lettura del counter è in microsecondi ed è coerente con quanto misurato dall’oscilloscopio (circa 20ns).
In questa configurazione il jitter della sorgente non influenza la misura in quanto interessa entrambi gli ingressi. Eventuali sorgenti di rumore devono essere interne allo strumento.

Ho eseguito una serie piuttosto lunga di misure, tutte in modalità “Time Interval” usando TimeLab ed un calcolatore (VM) collegato in GPIB al counter. Ad ogni misurazione (lunga 1000s) ho variato di 0.1 il valore del trigger. I risultati sono stati molto interessanti:

ADEV con differenti valori di trigger sullo strumento

La figura mostra che, seppur minime, ci sono delle differenze nel comportamento dello strumento al variare della tensione di trigger.

sigma(tau)/trigger in V0.10.20.30.40.5
1 secondo6.88E-107.05E-107.00E-107.14E-107.28E-10
10 secondi7.05E-117.07E-117.03E-116.89E-117.40E-11
100 secondi7.70E-127.95E-128.80E-127.59E-127.68E-12

I valori migliori (edited) si ottengono per valori di trigger bassi, visto che con 0.5V si ha 0.4E-10 in più. La pendenza della curva indica la presenza di rumore bianco o flicker (PM) (pendenza “-1”). La visualizzazione della MDEV, dovrebbe aiutare a discernere il “white PM noise”, solo che faccio un po’ fatica ad identificarlo. Devo lavorarci.

ADEV – 12 ore -PPS
MDEV -12 ore -PPS

Qualche considerazione POST MISURA:
– serve un convertitore 10MHz -> PPS. TAPR ne vende di ottimi ma costano un sacco le spese di spedizione in Italia (oltre 80 dollari). Cercherò di acquistarlo quando e se andremo in USA ad anno nuovo;
– in prima battuta vorrei usare il picdiv di Tom Van Baak ed il picpet per imparare a fare qualche misura decente con TimeLab e Stable32. S’è anche un ottimo progettino su github che varrebbe la pena di approfondire.
– ci sono un sacco di picchi che sono dovuti al crosstalk. Occorre assolutamente investire in qualche cavetto “decente” a doppia schermatura. Altrimenti compaiono questi artefatti che non sono piacevoli.

Riferimenti:

Best counter setting for ADEV? – Time-nuts ML Oct 1 2012
Recommended parameters for Timelab ADEV analysis – Time-nuts ML Nov 15 2012
Measuring ADEV for a beginner – Time-nuts ML Nov 1 2014
TimeLab – Manuale uso