Hallo ihr Kenner der Elektronik, ich habe eine 10MHz GPS Referenz. Wie kann ich die auf die 32768Hz runterteilen für eine Quarzuhr? Ist meine Frage blöd?
Müsli-Freund schrieb: > Ist meine Frage blöd? Irgendwann war in der Schule mal die Teilbarkeit von Zahlen dran. 10M=10^6 enthält als Primfaktoren 7 mal die 2 und 7 mal die 5. 32768 enthält 15 mal den Primfaktoren 2. Die beiden Frequenzen lassen sich also nicht glatt durcheinander teilen.
Müsli-Freund schrieb: > ich habe eine 10MHz GPS Referenz. Wie > kann ich die auf die 32768Hz runterteilen für eine Quarzuhr? Garnicht, für eine Uhr ist die Abweichung zu gross. Und ja, die Frage ist blöd, man braucht nur die Grundrechenarten. Georg
Wie wäre es mit einem Mikrocontroller? Man gibt das Signal auf einen Zählereingang und schaltet entsprechend. Wie genau sind denn beide Frequenzen?
karadur schrieb: > Falls ernst gemeint: PLL geht. Dann mal zu. Was schlägst du da für Teiler vor? Das wird immer nur einer Näherung.
Wolfgang schrieb: > 10M=10^6 enthält als Primfaktoren 7 mal die 2 und 7 mal die 5. > 32768 enthält 15 mal den Primfaktoren 2. Wolfgang schrieb: > Dann mal zu. Was schlägst du da für Teiler vor? 2^^8 / 5^^7
Mathias B. schrieb: > Wie genau sind denn beide Frequenzen? Die GPS-Uhr hat Atomuhrgenauigkeit und die definiert die Zeit. Allenfalls wäre es sinnvoll, nach dem Jitter zu fragen. Und wenn die Zielfrequenz 32768Hz ist, damit die Uhr daraus mit einen 2^15-Teiler eine Sekundentakt gewinnen kann, dann ist das ganz genau so.
karadur schrieb: > Falls ernst gemeint: PLL geht. Mein erstes Konzept (was mir selbst nicht gefällt) ist: 10 MHz durch 5^7 teilen, ergibt 128Hz 32768Hz eines VCXO durch 2^8 teilen. Ergibt auch 128Hz.Diese beiden 128Hz Signale auf einen Phasendetektor geben und mit diesem den VCXO nachregeln. Nennt sich PLL.
Müsli-Freund schrieb: > 10MHz GPS Referenz > 32768Hz ... für eine Quarzuhr Die gleichzeitige Verwendung beider ist also Pflicht? (Sonst würde ja ein offensichtlich völlig verschüchterter Ratsucher keine Frage stellen, deren Inhalt ihm selbst nicht geheuer ist...?) Blöd ist die Sache schon. Es gibt trotzdem eine einfache Lösung: Man schließe die Referenz an einen Sender, und strahle das Ganze in genehme Richtung - dazu belasse man den Quarz an Ort und Stelle. Schon hat irgend wer anders dieses leidige 10MHz Problem. hth
Mein zweites Konzept (gefällt mir noch weniger) mit Hilfe eines DDS aus 10MHz die 32768Hz erzeugen. Der Restfehler ist mir ein inneres Jucken im Gehirn :-) Das dritte Konzept: mit einem Rate Multiplier (siehe Datenblatt 7497 bzw. 74167) von 625 Impulsen 256 Impulse durchlassen. Diese (10MHz / 625 * 256 = 4096000Hz) noch durch 125 teilen ergibt 32768Hz. Falls es stört, den Jitter könnte man mit einem Quarzfilter aus einem Uhrenquarz wegfiltern. Problem: ich hab von VHDL und FPGA`s noch nicht den großen Plan um diesen Rate Multiplier zu bauen.
Mein viertes Konzept: Vier Stück 74167 auftreiben. Diese kaskadieren und einen 4096/10000 Multiplier aufbauen. Die 4096000Hz noch durch 125 teilen. Vielleicht passt dieses TTL Gelumpe in ein kleines CPLD. Brauche Hilfe beim VHDL Code.
Müsli-Freund schrieb: > Brauche > Hilfe beim VHDL Code. Hättest du ja gleich sagen können. Gute Nacht.
Müsli-Freund schrieb: > Mein viertes Konzept: Vier Stück 74167 auftreiben. Diese > kaskadieren und einen 4096/10000 Multiplier aufbauen. Die 4096000Hz noch > durch 125 teilen. Vielleicht passt dieses TTL Gelumpe in ein kleines > CPLD. Brauche Hilfe beim VHDL Code. Ich würd' ja mit einem μC und etwas schlau geschriebener Software einen rationalen Teiler bauen.
Müsli-Freund schrieb: > Das dritte Konzept: mit einem Rate Multiplier (siehe > Datenblatt 7497 bzw. 74167) von 625 Impulsen 256 Impulse > durchlassen. Das sind vier 5:4 Teiler kaskadiert. Die lassen sich relativ einfach mit 74390 und ein paar Gattern realisieren, soweit ich weiss. (Läuft darauf hinaus, immer vier Impulse durchzulassen und den fünften zu unterdrücken.) > Diese (10MHz / 625 * 256 = 4096000Hz) noch durch 125 > teilen ergibt 32768Hz. Genau.
Das geht doch ganz einfach. Mann muss nur jede Sekunde aus den 10 MHz genau 32768 Impulse ausgeben. Das reicht der Quarzuhr doch voll und ganz. Um sie ein wenig zufriedener zu machen, muessen es ja nicht 32768 am Stueck sein. Sondern immer Paeckchen von 128 Impulsen mit der passenden Pause dazwischen damit der Schrittmotor nicht ganz unrund laeuft. Fertig iss!
Also die 10MHz durch 128 teilen Und dann einen Zähler bis 78175, der die ersten 32768 ein Tor öffnet.
Müsli-Freund schrieb: > Ist meine Frage blöd? Blöd ist, dass das relativ wenig mit Analogelektronik zu tun hat.
Man könnte die Frequenz auch erst vervielfachen und dann teilen. Alles andere bringt irgendwie Jitter in die erzeugte Frequenz, egal ob PLL oder gebrochene Teilverhältnisse. Aber der Quarzuhr wäre das ja egal, das betrifft eher die Erzeugung sehr jitterarmer Frequenzen.
Christoph db1uq K. schrieb: > Man könnte die Frequenz auch erst vervielfache Es fehlt 8 Mal der Primfaktor 2. Also müsste man auf 2.56 GHz rauf. Dann doch lieber erst einige Primfaktoren 5 runter, oder alle (auf 128) wie oben vorgeschlagen.
Man könnte auch einfach auf 1Hz runter und der zu steuernden Uhr bei z.B. jeder aufsteigenden Flanke 32.768 Impulse mit 35kHz senden.
Man könnte mit den 10MHz nen Mikrocontroller takten. Auf dem Mikrocontroller lässt man dann nen hochgenauen DDS Oszillator die 32768 Hz generieren. Man könnte auch ne PWM Einheit als /N/N+1 Teiler nehmen und von nem DDS steuern.
Martin O. schrieb: > Auf dem Mikrocontroller lässt man dann nen hochgenauen DDS Oszillator > die 32768 Hz generieren. Auch damit wirst du wegen der Teilbarkeit keine exakten 32768 Hz hinbekommen. Die Idee ist doch wohl, dass die Uhr eine direkt an die Atomzeit angekoppelte Zeitbasis bekommt. Natürlich wird die Uhr trotzdem exakter Zeitbasis ohne Nutzereingriff nicht immer die richtige Zeit anzeigen, weil Schaltsekunden zu sich aufsummierenden Zeitsprünge führen und der Gesetzgeber durch die zwei mal jährlichen großen Sprünge einen stetigkeiten Ablauf der gesetzlichen Zeit verhindert.
Wenn man nen DDS 48 Bit breit macht und mit 1MHz taktet ist die Frequenzauflösung 1MHz/2^48=3e-9 Hz. Das dürfte an Genauigkeit reichen...
Für eine Uhr braucht man keine 32768Hz. Es reichen 32768 Impulse pro Sekunde. Und die kann man relativ einfach aus 10MHz erzeugen. Zuerst mal teilt man durch 250 auf glatte 40kHz. Um von 40kHz auf 32768Hz zu kommen, muß man mit 512/625 multiplizieren. Oder anders gesagt: von 625 Impulsen bei 40kHz muß man 512 durchlassen.
1 | Tor |
2 | .-----. .----. .-----. |
3 | |10MHz|---|÷250|--*------------------| -/- |--- 32768 Impulse / sec |
4 | `-----´ `----´ | `-----´ |
5 | .----. .----. | |
6 | |=0 |-------|S Q|-----´ |
7 | | | | | |
8 | |=512|-------|R | |
9 | `----´ `----´ |
10 | Zähler bis 625 Flipflop |
Da die Uhr intern selber immer 32768 Impulse abzählt, bevor sie zur nächsten Sekunde weiterschaltet, ist ihr egal ob diese Impulse in gleichmäßigen Abständen oder mit Lücken kommen. PS: die Grundidee stammt aus einem über 30 Jahre alten Buch. Da ging es darum, eine netzfrequenzbasierte Uhr für 60Hz an 50Hz zu betreiben. Zuerst hat man sich aus den 50Hz 100Hz gemacht. Davon dann immer 4 von 10 Impulsen unterdrückt.
:
Bearbeitet durch User
warum benutzt du nicht einfach die Zeit vom GPS Empfänger? Bei den günstigen GPS Referenzen ist doch fast immer ein GPS Empfänger eingebaut, welcher seriell die Daten zur Position, Zeit usw. ausgibt. Gruß Thomas
Ben B. schrieb: > Man könnte auch einfach auf 1Hz runter und der zu steuernden Uhr bei > z.B. jeder aufsteigenden Flanke 32.768 Impulse mit 35kHz senden. Bahnhofsuhren
Einfach mal an die Schule erinnern, wo das Rechnen mit gebrochenen Zahlen behandelt wurde. Du teilst 45 mal /306 und 211 mal /305. Das ergibt im Mittel 32768Hz. Das kann man z.B. in einen ATtiny24 programmieren, der hat einen 16Bit-Timer mit Clear on Compare. Man kann natürlich auch gleich eine RTC hinein programmieren und sich den Umweg über 32768Hz sparen. Der Vorteil ist auch, daß damit 1ms jitterfreie Auflösung möglich ist.
Peter D. schrieb: > Einfach mal an die Schule erinnern, wo das Rechnen mit gebrochenen > Zahlen behandelt wurde. > Du teilst 45 mal /306 und 211 mal /305. Das ergibt im Mittel 32768Hz. > Das kann man z.B. in einen ATtiny24 programmieren, der hat einen > 16Bit-Timer mit Clear on Compare. Gibts da nicht auch fertige ICs für? Nicht jeder kann so gut programmieren wie Du. :-)
Harald W. schrieb: > Gibts da nicht auch fertige ICs für? Könnte mit 8..10 TTL-ICs gehen. Ich sehe aber nicht was daran besonders elegant sein soll. Georg
georg schrieb: >> Gibts da nicht auch fertige ICs für? > > Könnte mit 8..10 TTL-ICs gehen. Ich sehe aber nicht was daran besonders > elegant sein soll. Gibts da nicht sog. Rate Multiplier-ICs?
Die ganze Multiplizierer und Dividiererei ist doch Kaese. Zumal es keine Loesung in kleinen ganzen Zahlen gibt. Der Uhr jede Sekunde, aus den genauen 10 MHz abgeleitet, genau 32768 Impulse zu senden ist exakt. Und: Das kann jeder kleine 8 beinige PICkel fuer 30 Ct. P.S.: Das 30 Jahre alte Buch kenne ich nicht. Ich kann mir meine Ideen selber bilden.
Einfach einen counter nehmen der an 10 MHz läuft und bis 305 zählt. dann noch ein paar counter nehmen die ca alle 6 durchläufe dafür sorgen das erstgenannte counter bis 306 zählt. Einfach mal das Periodenverhältnis der beiden Oszillatoren anschauen, liegt wohl bei 305,17578126
schlubbidu schrieb: > Der Uhr jede Sekunde, aus den genauen 10 MHz abgeleitet, > genau 32768 Impulse zu senden ist exakt. Aber nicht beim Tastverhältniss
Man könnte einen Quarz durch ein passendes Störsignal mit den 10 MHz synchronisieren. Das könnte z.B. ein 4,096 MHz Quarz sein, der ein wenig eines 400 kHz Signals (10 MHz / 25) bekommt. In der Regel bekommt man eine Synchronisation, wenn die Frequenz stimmt.
Pendelkunde schrieb: > schlubbidu schrieb: >> Der Uhr jede Sekunde, aus den genauen 10 MHz abgeleitet, >> genau 32768 Impulse zu senden ist exakt. > > Aber nicht beim Tastverhältniss Das ist richtig und würde zu Problemen führen wenn von den 32768Hz noch andere Funktionen wie LED-Anzeige-Refresh etc. abgeleitet werden. Das ist bei so einem Quarz aber nicht zu erwarten, zumindest wenn ein µC dahinter steht.
@Wolfgang 10MHz / 10^7 sind 3,5 74HC390 gibt 1Hz 4046 VCO auf 32768 laufen lassen und durch 2^15 teilen mit CD4040 und einem Teiler :8 gibt 1Hz. Phasenvergleich auf 1Hz. Falls 32768 mit Sinus gebraucht wird dann mit einem Tiefpass.
Vergiss den letzten Beitrag. Heute zu viele gearbeitet. Stand ja oben schon.
schlubbidu schrieb: > P.S.: Das 30 Jahre alte Buch kenne ich nicht. Ich kann mir meine > Ideen selber bilden. Schön. Nur halt nicht sonderlich beeindruckend. Mein Hinweis mit "vor 30+ Jahren schon in einem Buch gelesen" sollte darauf hinweisen, daß das nun wahrlich keine Raketentechnik ist. Und natürlich würde man das heute und unter den Lesern dieser Website mit einem µC machen. Damals gab es TTL und die ersten zarten Ansätze von CMOS. Wobei - wenn man den Aufwand nicht scheut, kann man das auch mit Röhren machen. OK, der Teil zwischen 10MHz und 40kHz wird vielleicht etwas herausfordernder. Aber Digitaluhren nur mit Röhren gibt es schon mal: http://www.jogis-roehrenbude.de/Leserbriefe/Bruegmann-Digital-Roehren-Clock/Digital-Roehrenuhr.htm
Müsli-Freund schrieb: > Mein zweites Konzept (gefällt mir noch weniger) mit Hilfe eines DDS aus > 10MHz die 32768Hz erzeugen. Das geht aber sehr gut. > Der Restfehler ist mir ein inneres Jucken im > Gehirn :-) Der Restfehler ist bei korrekter Umsetzung nur ein periodisch auftretender lokaler Fehler in der Phase der Ausgabefrequenz und den kann man schon mit einem gängigen µC (z.B. ATtiny13, das wäre doch endlich mal eine Anwendung für das Ding!!!) relativ leicht unter 0,3% drücken. Mit einem FPGA sollte (mit dem gleichen Grundkonzept) noch ganz erheblich weniger möglich sein... Übrigens: man sieht so einer Umsetzung praktisch nicht mehr an, dass es im Kern eine DDS ist. Man könnte sie mit der gleichen Berechtigung auch als Anwendung des Bresenham-Algorithmus bezeichnen...
c-hater schrieb: > Der Restfehler ist bei korrekter Umsetzung nur ein periodisch > auftretender lokaler Fehler in der Phase der Ausgabefrequenz und den > kann man schon mit einem gängigen µC (z.B. ATtiny13, das wäre doch > endlich mal eine Anwendung für das Ding!!!) relativ leicht unter 0,3% > drücken. Wenn sich die 0,3% auf die Frequenz beziehen, ist das eine Abweichung der Uhr von über 4 Minuten am Tag. Da ist mein interner Oszillator genauer. Wenn ich schon eine Zeitbasis von einem GPS-Modul habe, will ich die auch vernünftig verwenden. Deshalb würde ich die Uhr ggf. neu aufbauen und dort intern mit dem 10MHz arbeiten. Sollte das aus irgendeinem Grund nicht möglich sein, könnte man mittels eines kleinen PICs (geht mit den meisten anderen µCs mit vernünftiger Timer-Struktur vermutlich genauso) unter geschickter Ausnutzung der HW-Module einen Teiler bauen, der 0% Frequenzabweichung hat und wo der zeitliche Versatz auch nur einige Hundert Takte beträgt.
Bastler schrieb: > Wenn sich die 0,3% auf die Frequenz beziehen Das tun sie. Aber anders als du denkst... > ist das eine Abweichung der Uhr von über 4 Minuten am Tag Was hast du an "lokaler Phasenfehler" nicht verstanden? Die Frequenz stimmt natürlich längerfristig betrachtet zu 100%. Nur eben immer mal wieder ganz kurzzeitig nicht. Sowas bezeichnet man als lokalen Phasenfehler oder auch als Phasenjitter.
c-hater schrieb: > Was hast du an "lokaler Phasenfehler" nicht verstanden? Die Frequenz > stimmt natürlich längerfristig betrachtet zu 100%. Nur eben immer mal > wieder ganz kurzzeitig nicht. Sowas bezeichnet man als lokalen > Phasenfehler oder auch als Phasenjitter. Hmm... Das war nicht wirklich zutreffend beschrieben. Also nächster Versuch: Langfristig betrachtet ist's 100% die korrekte Frequenz. Kurzfristig betrachtet ist es hingegen eigentlich niemals die korrekte Frequenz, einen Teil der Zeit ist sie zu klein, einen Teil der Zeit ist sie zu groß. Zwischen diesen beiden Zuständen wird regelmäßig hin- und hergewechselt. Während der Zeit, wo die Frequenz zu klein ist, hinkt die Phase der tatsächlich erzeugten Frequenz der Sollphase der Zielfrequenz zunehmend hinterher, mit wachsendem Phasenfehler. Bei der zu großen Frequenz gilt dann das Gegenteil. Im Mittel ergibt sich die richtige Frequenz. Der maximal auftretende Wert des Phasenfehlers ist nun das Kriterium zur Bewertung der Implementierung, er sollte natürlich so klein wie möglich sein.
Nimm eine DDS-IC der einen 32bit Accumulator hat. Da bekommst du nach der Filterung einen Sinus mit 32768Hz. Der bekannteste Hersteller für DDS-ICs ist Analog Devices. 10MHz an den Takteingang. Programmierter 32bit Frequenzwert = (32768/10000000)*2^32 = 14073749 Der Frequenzfehler liegt bei ca. 10^-7 = 0,1ppm
:
Bearbeitet durch User
Helmut S. schrieb: > Nimm eine DDS-IC der einen 32bit Accumulator hat. Da bekommst du > nach der Filterung einen Sinus mit 32768Hz. Der bekannteste Hersteller > für DDS-ICs ist Analog Devices. > > 10MHz an den Takteingang. Programmierter 32bit Frequenzwert = > (32768/10000000)*2^32 = 14073749 > Der Frequenzfehler liegt bei ca. 10^-7 = 0,1ppm Danke, aber ich habe das mal durchgerechnet. 14073749/(2^32 * 32768/10MHz) 60 60 24 365 Damit geht die Uhr im Jahr um 0,37 Sekunden falsch. Katastrophe. Das geht gar nicht. Aber es gibt ja 48Bit DDS.
Müsli-Freund schrieb: > 14073749/(2^32 * 32768/10MHz) 60 60 24 365 Uups, die Multizierzeichen * wurden hier auf eine interessante Weise neu interpretiert. Gemeint ist eine Multiplikation mit der Anzahl der Sekunden eines Jahres...
Müsli-Freund schrieb: > Mein viertes Konzept: Vier Stück 74167 auftreiben. Diese kaskadieren und > einen 4096/10000 Multiplier aufbauen. Die 4096000Hz noch durch 125 > teilen. Vielleicht passt dieses TTL Gelumpe in ein kleines CPLD. Brauche > Hilfe beim VHDL Code. mit einem 74HC40103 durch 125 teilen und dann mit 4 Stück CD4527 mal 4096/10000. diese Teile kann man problemlos beschaffen
Müsli-Freund schrieb: > Wie > kann ich die auf die 32768Hz runterteilen für eine Quarzuhr? Ihr sucht andauernd nach einem gemeinsamen Teiler, aber dabei kommt man auf unhandlich niedrige Frequenzen, die einen häufigen Phasenvergleich erschweren. Besser geht das, indem man das kleinste gemeinsame Vielfache berechnet und dort eine PLL laufen lässt. Es gibt Online Tools, die das kgV im Handumdrehen ausrechnen: 256*10MHz = 78125*32768Hz = 2,56GHz Das sind zwar ca. 2,5GHz, aber mit heutigen ICs lassen sich entsprechende Oszillatoren und Teilerketten relativ leicht aufbauen Der Phasenvergleich bei 10MHz ist auch kein Hexenwerk. Etwas komplizierter, dafür aber wohl mit weniger Leistung funktioniert es, wenn man die Grundfrequenzen vervielfacht. Mit Vervielfachern und Mischern arbeiten übrigens auch die Rubidium-Frquenznormale um von der am Ausgang gelieferten Quarzfrequenz 10,000000000MHz auf die "schräge" Meßfrequenz von 6.834.682.610,904324 Hz (ca. 6,8 GHz) zu kommen.
P.S.: Di erwähnten Online-Tools z.B. https://www.umrechnung.org/mathematik-kgv-ggt-berechnen/gemeinsames-vielfaches-teiler.htm berechnen auch den grössten gemeinsamen Teiler. Demnach kann man den Phasenvergleich um den 32kHz-Oszillator nachzusteuern auch mit 128Hz machen. 10MHz / 78125 = 128 der 7490 lässt grüssen oder ein ATTiny der mit 10MHz läuft. 32768 / 256 =128 mittels Uralt 4000er CMOS
Da waren wir am 16.2.19 um kurz nach 1Uhr. Scheint aber nicht gewollt zu sein. PS: 74xx390 spart die Hälfte Teiler und hat Versorgung auf aktuellem Layout.
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.