10MHz runterteilen und zählen

R

Ralph Aichinger

Guest
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:

http://leapsecond.com/pic/

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.
--
-----------------------------------------------------------------------------
https://aisg.at
ausserirdische sind gesund
 
Am 30.07.2019 um 10:07 schrieb Ralph Aichinger:
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.

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:

Ein Arduino wird eher nicht in der Lage sein, das Signal
direkt zu zählen[1],
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.
 
Stefan U. <stefan.u.news108@gmx.de> wrote:
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

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
--
-----------------------------------------------------------------------------
https://aisg.at
ausserirdische sind gesund
 
Am 30.07.2019 um 11:55 schrieb Ralph Aichinger:
Stefan U. <stefan.u.news108@gmx.de> wrote:
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

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.
 
On 7/31/19 7:42 PM, Stefan wrote:
Am 30.07.2019 um 11:55 schrieb Ralph Aichinger:
Stefan U. <stefan.u.news108@gmx.de> wrote:
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

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.

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:
Man kĂśnnte auch die 10 MHz aus dem Rubidium-Normal direkt als Clock fĂźr
den Prozessor nehmen.

das meinte ich mit "an den CLK-Eingang"

Gruß
Stefan.
 
Am 31.07.2019 um 22:16 schrieb Stefan U.:
Am 31.07.2019 um 19:42 schrieb Stefan:
Man kĂśnnte auch die 10 MHz aus dem Rubidium-Normal direkt als Clock fĂźr
den Prozessor nehmen.

das meinte ich mit "an den CLK-Eingang"

Gruß
Stefan.

ich dachte, du meintest den Clock Eingang eines Counters
 
Am 31.07.2019 um 19:49 schrieb Gerrit Heitsch:
On 7/31/19 7:42 PM, Stefan wrote:
Am 30.07.2019 um 11:55 schrieb Ralph Aichinger:
Stefan U. <stefan.u.news108@gmx.de> wrote:
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

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.

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

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.
 
Ralph Aichinger <ra@pi.h5.or.at> wrote:

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?
Warum mit Geriatronik?

Nimm eine Cortex CPU mit ausreichend Takt und Du kannst die Pulse mit
einem Timer Zaehlen....
--
Uwe Bonnes bon@elektron.ikp.physik.tu-darmstadt.de

Institut fuer Kernphysik Schlossgartenstrasse 9 64289 Darmstadt
--------- Tel. 06151 1623569 ------- Fax. 06151 1623305 ---------
 
On 8/1/19 6:19 PM, Uwe Bonnes wrote:
Ralph Aichinger <ra@pi.h5.or.at> wrote:

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?
Warum mit Geriatronik?

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


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

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
 

Welcome to EDABoard.com

Sponsor

Back
Top