zählen

Jul 30, 2019 10 Replies
Jump to replies (10)

Ich hab mir (siehe anderer Thread) jetzt ein Rubidium-Normal (für 150,-) bestellt, und falls das dann auch funktioniert wenn es ankommt, so sehe ich mehrere Möglichkeiten daraus eine Uhr zu bauen. Wenn ein funktionierendes PPS-Signal rauskommt, so kann man das (eventuell nach etwas nachbereitung, die Pulse sind sehr kurz, angeblich) direkt in einen NTP-Server mit PPS- Eingang füttern und den Offset zu z.B. zur GPS-Zeit festlegen (weil das PPS-Signal des Normals natürlich keinen definierten Referenzzeitpunkt hat).



Von der time-Nuts-Liste gibt es fürs runterteilen auch einen PIC, damit könnte man das Signal direkt auf PPS bringen:



formatting link
Eine andere Variante wäre, die 10MHz direkt zu zählen und die Uhrzeit daraus selbst zu errechnen (nach Stellen per GPS oder so). Der Code von diesen Teiler-PICs ist zwar sicher elegant und löst seine Aufgabe perfekt, aber er zählt eben noch keine Minuten und Stunden mit, d.h. ich brauche zur "Uhr" zumindest noch eine andere Zeitquelle, die unter einer Sekunde Abweichung hat.



Ein Arduino wird eher nicht in der Lage sein, das Signal direkt zu zählen[1], aber wenn ich z.B. die 10MHz zuerst um den Faktor 10 oder 100 runterteile (mit so einem PIC oder ein bis zwei 74HC390 oder sowas) dann müßte ich doch auch am Arduino bequem mitzählen und rechnen können, und daraus z.B. ein Zeitsignal im NMEA-Format generieren, was man einem NTP-Server zur Verfügung stellen kann.



Klingt das alles halbwegs vernünftig, oder würdet ihr das ganz anders machen, oder gibt es da Fallstricke?



TIA /ralph -- aus Interesse hab ich gefragt was ein neues Rubidium- Normal kostet: Ca. 1500 Euro



[1] das nackte Zählen vielleicht schon, aber wenn man nebenher noch Stunden, Minuten, Datum etc. errechnen will und NMEA formatieren soll, dann wird es vermutlich schwierig.

Am 30.07.2019 um 10:07 schrieb Ralph Aichinger:

Für eine Zeitmessanlage habe ich mal einen 8057 Prozessor genommen und weil der mit 1MHz zu lahm war um von dem 10MHz OXCO direkt bespasst zu werden habe ich die "Uhr" als CMOS 4017 Grab gebaut. ;-)

O.J.

Am 30.07.2019 um 10:07 schrieb Ralph Aichinger:

wieso nicht?

die 10Mhz an den CLK Eingang, 16 bit Timer mit Prescaler (64) im Count-To-Compare (15624?) Modus auf 100ms runterteilen, im CTC interrupt dann per Software weiterzählen...

also so würde ich das mit nem ATMega machen, wie sich das mit Arduino drumrum verhält, weiß ich nicht

Gruß Stefan.

Hm, danke. Das sind haufenweise Begriffe mit denen ich weitergoogeln kann. Ich vermute, daß ein Großteil davon was mit dem rohen Atmel geht auch mit dem Arduino geht, schließlich ist das ja nur ein C-Compiler mit ein paar Behübschungen.

/ralph

Man könnte auch die 10 MHz aus dem Rubidium-Normal direkt als Clock für den Prozessor nehmen. Das würde sogar mit nem 8051 gehen.

Dann einen Timer der durch den Prozessorclock getaktet wird.

Wobei der 8051 den eingehenden Takt doch erstmal teilt. War das nicht ein Teiler von 12?

Gerrit

Am 31.07.2019 um 19:42 schrieb Stefan:

das meinte ich mit "an den CLK-Eingang"

Gruß Stefan.

Am 31.07.2019 um 22:16 schrieb Stefan U.:

ich dachte, du meintest den Clock Eingang eines Counters

Ich glaub schon. Der übliche Quarz hatte 11,0592 MHz. Damit konnte man dann auch die üblichen Baudraten einstellen. Der 80535 und 80537 hatte dafür einen extra counter, da konnte man auch einen 12 MHz Quarz nehmen.

Jedenfalls könnte man die Dinger mit 10 MHz takten. Macht aber heute wohl keiner mehr.

Warum mit Geriatronik?

Nimm eine Cortex CPU mit ausreichend Takt und Du kannst die Pulse mit einem Timer Zaehlen....

Warum nicht? Genausogut kann man fragen warum man heutzutage immer alles in Software machen muss wenn eine spezielle Anwendung auch in Hardware geht.

Setzt voraus, daß er diese CPU kennt und programmieren kann. Ist das nicht der Fall und er muss sie erst lernen aber kennt den Atmel ist er mit letzterem besser bedient.

Wenn ich aus den 10 MHz einen Sekundenpuls machen will würde ich gar keine CPU nehmen sondern entsprechend viele Teiler durch 10 hintereinanderschalten.

Gerrit

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required