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.
Ab einem UBLOX NEO-7 kannst du den 1PPS Ausgang auch auf andere Frequenzen bis 10MHz programmieren.
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
Optische Frequenznormale mit gespeicherten Ionen 10^-18 https://www.google.de/url?sa=t&rct=j&q=&esrc=s&source=web&cd=5&cad=rja&uact=8&ved=0ahUKEwi4jKm8zr3XAhVSUlAKHSwVB5AQFghJMAQ&url=http%3A%2F%2Fwww.pro-physik.de%2Fdetails%2FarticlePdf%2F1108717%2Fissue.html&usg=AOvVaw00VDRfaquAfH_1tZFFEZSI
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.
Hier gibts nen schönen Ansatz mit guter Dokumentation: https://www.eevblog.com/forum/projects/lars-diy-gpsdo-with-arduino-and-1ns-resolution-tic/ Ich habe das ganze schon mal nachgebaut und bin zufrieden.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.