Moin moin
ich möchte gern meine beiden Frequenzzähler HP5342A und HP5316A
kalibrieren. Doch leider habe ich kein Kalibriernormal, also kein
Rb-Oszillator und natürlich auch kein Cs.
Da ich immer öfter eine genaue Referenzfrequenz benötige, möchte ich nun
einen GPSDO bauen.
Um den ewigen Kritikern gleich den Wind aus den Segeln zu nehmen: ja,
ich weiss, man kann das kaufen/gibt es auf eBay/lohnt sich nicht/Rb ist
eh besser/selber kriegt man das nie so gut hin wie bereits andere
existierende Designs.
Doch nebst dem, dass ich eine genaue Frequenz haben möchte, steht auch
noch ein wenig Bastelspass im Vordergrund :-)
Sehe ich das richtig, dass ich im Prinzip ein GPS-Modul her nehme (z.B.
uBlox?) und dessen 1 PPS Ausgang als Gate-Signal für einen Reziproken
Frequenzzähler benutze?
Ich habe noch einen HP 10811 OCXO hier. Den könnte man doch dafür
verwenden.
Ich habe mir gedacht, dass man das 1PPS Signal vom GPS Modul herunter
teilt, z.B. durch 64, und dann als Gatesignal für die 10 MHz benutzt.
Ein Timer in einem kleinen STM32 könnte dann mit den 10 MHz angetrieben
werden. Die Überläufe des Timers werden per Software gezählt, und wenn
ich z.B. das 1PPS Signal durch 64 dividiere, dann müsste, bei korrekt
abgeglichenem OCXO, der Counter immer den Wert 640000000 haben, plus
minus 1. Mittels DAC bedient man dann das EFC-Signal des OCXO. Wenn die
Frequenz zu klein ist -> DAC-Wert um 1 erhöhen, wenn die Frequenz zu
gross ist -> DAC-Wert um 1 verkleinern. So hat man eigentlich wie einen
sehr langsamen Integrator. Der Jitter des 1PPS dürfte damit schon ganz
gut raus gemittelt werden.
Meine Fragen sind:
a) macht man das so? (ich habe beim Suchen im Netz nur ein paar Designs
gefunden, welche einen spezifischen PIC einsetzen; ich will aber keinen
PIC.)
b) wenn das 1 PPS Signal durch 64 dividiert wird, würde das IMHO
bedeuten, dass ich auf 1/64 Hz genau die Frequenz ermitteln kann, denn
bei einem Counterwert von z.B. 640000001 hätte der OCXO eine Frequenz
von 10000000.0156 Hz. Das wäre ja schon recht gut, oder? Mit einem
grösseren Teierfaktor als 64 könnte man die Genauigkeit natürlich noch
steigern, aber dafür dauert dann das 'Einrasten' des OCXO viel länger.
c) was denkt ihr über meine Ansätze?
> Ich habe mir gedacht, dass man das 1PPS Signal vom GPS Modul herunter> teilt, z.B. durch 64,
...dann hast Du 1/64 Hz. (also eine "etwas längere" Minute). Willst Du
das?
Theiler & Cie. schrieb:> Willst Du> das?
ist doch völlig egal, da das nur die Torzeit ist, um die Anzahl Perioden
des OCXO zu zählen. Man könnte natürlich auch direkt das 1PPS Signal als
Torzeit verwenden, aber dann wäre die Messung ungenauer, da
a) kürzere Torzeit
b) der Jitter des 1PPS voll in die Messung mit ein geht.
Der uebliche Weg ist den OCXO mit einem PLL auf den 1PPS des GPS zu
locken. Ein PLL mit einer Regelzeitkonstante von 1000 Sekunden kann das.
Alternativ kann man einen PLL mit einem 4046 auf 10kHz laufend auf den
1PPS locken, und den OCXO auf den 10kHz.
nichtgast schrieb:> Um den ewigen Kritikern gleich den Wind aus den Segeln zu nehmen: ja,> ich weiss, man kann das kaufen/gibt es auf eBay/lohnt sich nicht/Rb ist> eh besser/selber kriegt man das nie so gut hin wie bereits andere> existierende Designs.
Ein Rubidiumnormal hat zwar eine Stabilität von etwa 10E-10 aber man
muss ihn auch regelmäßig kalibrieren. Es ist nämlich kein Primärnormal.
Da müsste man schon auf einen Cäsiumnormal zurückgreifen.
nichtgast schrieb:> Doch nebst dem, dass ich eine genaue Frequenz haben möchte, steht auch> noch ein wenig Bastelspass im Vordergrund :-)
Na dann mal los
nichtgast schrieb:> Ich habe noch einen HP 10811 OCXO hier. Den könnte man doch dafür> verwenden.
Das ist eine gute Vorraussetzung. Denn dieser Oszillator liefert eine
Kurzzeitstabilität von locker 10E-10 für den Zeitraum welche man als
Regelzeitkonstante für die PLL benötigt um es mit dem GPS zu
synchronisieren. Nach einen Jahr sind es dann etwa 10E-8
Das heist man muss den OCXO langsam nachregeln.
Es gibt mittlerweile im Netz einige Mikroprozessorgesteuerete Projekte,
welches genau deinen Vorstellungen entsprechen.
Wie die Lösungen im einzelnen aussehen habe ich nicht näher untersucht.
Es läuft auf eine digitale PLL hinaus. Analog geht bei diesen
Zeitkonstanten nur noch sehr schwer.
100 Sekunden sollten es mindestens sein. 1000 Sek wäre noch besser.
Für diejenigen die keine Lust haben wochenlange Forschungsprojekte zu
betreiben, gibt es bei SDR-Kits ein GPS Frequenznormal welches auf 10E-9
spezifiziert ist, aber locker 10E-10 erreicht. Kostet unter 200 Euro
Ich besitze das Teil auch und habe es gegen zwei verschiedene
Rubidiumnormale gestestet. Efratom und Rohde&Schwarz. Dabei hatte sich
dann bestätigt was ich lange vermutet habe. Der Rohde&Schwarz XRB ist
deutlich stabiler. Der Efratom hat mit Mühe 10E-10 erreicht nach fast 4
Stunden Einlaufzeit. Der XRB war nach einer viertel Stunde stabil.
Ralph Berres
Ralph Berres schrieb:
> 100 Sekunden sollten es mindestens sein. 1000 Sek wäre noch besser.
Wie uns Ulrich Bangert in seinem Papier
http://www.ulrich-bangert.de/AMSAT-Journal.pdf
auf Seite 22 erklärt, wäre das Optimum für den HP 10811 wohl
zwischen 2000 und 10000 s.
nichtgast schrieb:> Da ich immer öfter eine genaue Referenzfrequenz benötige, möchte ich nun> einen GPSDO bauen.Wie genau brauchst du sie denn, um erstmal ein paar Grundlagen für
dein Vorhaben zu klären? Oder geht es nur um "nice to have"?
Wolfgang schrieb:> Oder geht es nur um "nice to have"?
Das auch. Aber der HP5342A hat 11 Stellen. Ich will bei 18GHz sehen,
dass die letzte Stelle stabil ist :-)
ich denke so eine Stabilität sollte schon zu erreichen sein.
nichtgast schrieb:> Das auch. Aber der HP5342A hat 11 Stellen. Ich will bei 18GHz sehen,> dass die letzte Stelle stabil ist :-)> ich denke so eine Stabilität sollte schon zu erreichen sein.
so stabil wirst du das mit einen Rubidiumnormal erreichen.
Aber Stabilität und Genauigkeit sind zwei verschiedene Dinge.
10e-11 Genauigkeit ist schon eine Hausnummer. Eigentlich benötigst du
dafür ein Cäsiumnormal.
Ralph Berres
Ralph B. schrieb:> Cäsiumnormal
üüüüüäh. Das will ich nicht. (also schon, aber ich kanns nicht bezahlen
:-) 11k$ in der Bucht....).
Eine Dekade weniger wäre noch akzeptabel, obgleich ich das Gefühl habe,
dass der HP10811 Quarzofen das kann.
Gut, aber eigentlich ging es ja noch nicht darum, sondern ob mein
Prinzip korrekt ist. Also die Torzeit vom 1PPS ableiten, und während der
Torzeit die 10MHz Takte zählen. Danach entscheiden, ob die EFC eins hoch
oder eins runter muss.
nichtgast schrieb:> Das auch. Aber der HP5342A hat 11 Stellen. Ich will bei 18GHz sehen,> dass die letzte Stelle stabil ist :-)> ich denke so eine Stabilität sollte schon zu erreichen sein.
Dazu braucht es aber zwei Dinge:
1. eine stabile Referenzfrequenz
2. eine stabile Eingangsfrequenz
Hast Du beides? Wenn nein, nimm Klebeband und klebe die Digits ab, die
nicht stabil sind. Dann hast Du Dein Ziel erreicht ;-)
> Gut, aber eigentlich ging es ja noch nicht darum, sondern ob mein
Prinzip korrekt ist. Also die Torzeit vom 1PPS ableiten, und während der
Torzeit die 10MHz Takte zählen. Danach entscheiden, ob die EFC eins hoch
oder eins runter muss.
So etwa ... ausser, dass eine Sekunde nie genuegt. Denn der Jitter des
1PPS liegt bei vielleicht 100ns. Integriere ueber eine Viertelstunde,
also ueber 1000 sekunden. Und dabei zaehlst du bei 10MHz auf 1E10, es
braucht also ein paar Stellen.
nichtgast schrieb:> Eine Dekade weniger wäre noch akzeptabel, obgleich ich das Gefühl habe,> dass der HP10811 Quarzofen das kann.
Ich glaube nicht das der Quarzofen so stabil ist.
Wenn du eine Stabilität von 10e-11 benötigst, könntest du ein
Rubidiumnormal mit einer Zeitkonstante von >10000 Sekunden als mehrere
Stunden an ein GPS anbinden. Der muss dabei tag und Nacht durchlaufen
genauso wie das Rubidiumnormal. Zwingend notwendig ist dann eine
stabille Anbringung der GPS Antenne an der frischen Luft, wobei eine
Rundumsicht vorhanden sein sollte.
Wie gesagt 10E-11 ist schon eine Hausnummer, die auch der Rubidium
alleine nicht kann. Jedenfalls nicht über mehrere Wochen.
Ich nehme an du machst psk32 auf 10 GHz machen. Aber auch da reicht
10e-9 noch aus. Oder wo benötigt man bei 18GHz 1Hz Auflösung?
Ralph Berres
Mahlzeit
Bin auch gerade an einem Frequenznormal für den Hausgebrauch dran.
Momentan will ich einen 10MHz OCXO (Isotemp) per GPS
Langzeitkorregieren.
Mein Ansatz:
- 10MHz über 10:1 Teilerkette auf 1Hz runterteilen (alle Teilerstufen
schaltbar auf einen Ausgang herausführen)
- 1PPS vom GPS und 1Hz vom OCXO einem Atmel zuführen und per SW
Phasenabstand überwachen und über DA Wandler Korrekturspannung für OCXO
erzeugen
Das alles über lange Zeiten (Stunden, Tage) mitteln um nur
Langzeitdriften zu kompensieren und Jitter rauszurechnen.
Kurzzeitstabilität liefert nur der OCXO der zusätzlich in einen
Thermosbehälter eingeschäumt wird. Gedanken macht mir noch die
Spannungsversorgung speziell für die Korrekturspannungserzeugung (wegen
Kurzzeitstabilität).
präzise Grüße
Dirk
> Mein Ansatz:
- 10MHz über 10:1 Teilerkette auf 1Hz runterteilen (alle Teilerstufen
schaltbar auf einen Ausgang herausführen)
- 1PPS vom GPS und 1Hz vom OCXO einem Atmel zuführen und per SW
Phasenabstand überwachen und über DA Wandler Korrekturspannung für OCXO
erzeugen
Eher nicht so guenstig. Ein verbesserter Ansatz :
mit dem 1PPS einen Zaehler, der mit den 10MHz zaehlt latchen, und den
Zaehler immer weiterlaufen lassen. Dann vom gelatchten Wert 10'000'000
subtrahieren und man erhaelt das Fehlersignal. Dieses Fehlersignal
integrieren und als Korrektur fuer den OCXO verwenden.
Durch das kontinuierliche Weiterlaufenlassen des Zaehlers fallen
Jittereffekte raus. Der OCXO ist gelockt wenn sich die Korrekturwerte
rausmitteln.
Sabberlott W. schrieb:> Dieses Fehlersignal> integrieren und als Korrektur fuer den OCXO verwenden.
Ob das funktioniert?
Bedenke das ein VCO eine der Abstimmspannung proportionale Frequenz hat,
aber die Phase ist nicht proportional. In Verbindung mit dem
integrierenden Zähler baust du damit einen prima State Vario Oszillator
auf.
Das Problem hatte ich schon mal in meinen DCF Frequenznormal.
Ralph Berres
> mit dem 1PPS einen Zaehler, der mit den 10MHz zaehlt latchen, und den> Zaehler immer weiterlaufen lassen.
Zugegeben, das ist der übliche Weg. Und meist auch der erfolgreiche!
Aber ich wollte den Hund mal andersrum bürsten und schauen was dabei
rauskommt. Da ist der Erfolg nicht garantiert aber der Erkenntnissgewinn
größer.
Zudem ich das Auswerten einem Atmega328 unter Arduino überlassen wollte.
Nur um mal zu sehen, in wie weit diese Umgebung für sinnvolle Aufgaben
nutzen lässt. Ja ja ja ... ich weiß ... Arduino ...usw.
nichtgast schrieb:> Sehe ich das richtig, dass ich im Prinzip ein GPS-Modul her nehme (z.B.> uBlox?) und dessen 1 PPS Ausgang als Gate-Signal für einen Reziproken> Frequenzzähler benutze?
Der erste Teil ist OK, der zweite nicht.
Nimm deinen 10 MHz OCXO und mache ihn zum Taktgenerator für deinen µC.
In deinem µC programmierst du einen Timer so, daß er für 1 Periode genau
10.000.000 Takte deines OCXO's benötigt. Jetzt führst du das 1PPS Signal
an deinen µC und triggerst damit ein Capture-Register (was man
eigentlich bei allen heutigen µC hat).
Während der Aufwärmphase deines OCXO ist es natürlich sinnlos, dieses
Capture Register auszuwerten. Aber danach solltest du bei jedem Capture
(also alle Sekunde) die Differenz zwischen dem aktuellen Capture und dem
vorherigen Capture bilden und daraus die Abstimmspannung deines OCXO
nachführen, bis die Differenz eben im +/-1 Bereich ist.
Dann gehst du dazu über, nur bei jeder 2. Sekunde diese Differenz zu
bilden und entsprechend feinfühliger deinen OCXO nachzustimmen. Nach
einer Weile dann alle 4 Sekunden, dann alle 8 Sekunden usw.
Ich denke mal, bei einer Zeitdifferenz von so etwa 100 Sekunden ist dann
finito, ab da wird eben nur so nachgeführt, wie es eben bei 100 Sekunden
Abstand geht.
W.S.
Ob einen externen Zaehler oder den Controller Internen zu verwenden ist
fast dasselbe. Das Problem den AVR fuer so eine Aufgabe zu verwenden,
ist dass er sonst nichts mehr machen kann. zB kommunizieren. Ich wuerde
mir zB den Fehler per serieller Schnittstelle ansehen, logen und
auslesen wollen. Deswegen wuerde ich einen externen Zaehler latchen
wollen, dann ist die zeitkritische Funktionalitaet entkoppelt.