On 24.12.16 04.20, Ruediger Wilke wrote:
> wie genau bzw. wie ungenau läuft eigendlich die Systemuhr eines
> Raspberry Pi 3 [1]?
Das willst Du nicht wissen. Ich hatte nach einem Tag schon heftigste
Abweichungen (Minuten). Es wäre möglich, dass die Ungenauigkeiten durch
wechselnde GPU-Aktivität verstärkt wurden.
> Mit welchen Ungenauigkeiten ist zu rechnen?
Mit unerwarteten.
> Hintergrund:
> Vor zwei Monaten habe ich mir einen Raspberry Pi 3 zugelegt, weil
> bei dem offensichtlich die GPIOs das sind, was beim C64 der Userport
> war. Also soll der Raspi der neue Kern meiner Mutteruhr werden.
Für Uhrengenauigkeit brauchst Du ntpd oder DCF77.
Btw: ein Pi3 ist dafür auch heftig Overkill. Da hätte es ein Pi1 für ein
paar Euro aus der Bucht auch getan. Dessen Uhr ist genauso mies.
> Konfiguration:
> - Raspberry Pi 3 mit Raspian Jessy
> - feste IP
> - WLAN und Bluetooth deaktiviert
> - Netz nur über Ethernet
> - NTP holt sich die Zeit von der PTB
Das wird immer funktionieren. Dabei ist die Systemuhr nahezu egal.
Allerdings sind die PTB-Server glaube ich nicht mehr für jedermann frei
erreichbar. Es gibt aber genug freie Stratum 2 Server.
> Das ist natürlich entsprechend genau. Falls Internet mal nicht geht,
> soll einer meiner DCF77-Empfänger als Referenz dienen.
Wenn Du den hast, brauchst Du wiederum kein ntp. Der geht immer, wenn
Strom da ist. Ich weiß gar nicht, wann das DCF77 Signal das letzte mal
ausgefallen ist.
> DCF77-Signal an GPIO27 angeschlossen und mit Regina-Rexx einen Dekoder
> geschrieben.
Rexx? Lebt das immer noch?
Mglw. kannst Du Dir die Arbeit erleichtern, wenn Du LIRC für die erste
Stufe des Dekoders nutzt. Der übersetzt Dir das gesampelte Signal in
eine Folge von Einschalt- und Ausschaltdauern. Daraus kann man bei DCF77
nahezu direkt (also einfach per Schwellwert) die Bits extrahieren.
> Der DCF77-Dekoder setzt die Systemzeit NICHT, da ich erstmal wissen
> wollte, wie ungenau die Systemuhr des Raspis geht. Dafür habe ich dem
> Raspi über meinen Router den Zugriff zum Internet komplett gesprerrt
> und NTP auch noch gestoppt.
Warum fragst Du, wenn Du es ohnehin selber messen willst?
> Der Vergleich der Zeiten ergab, dass die Systemuhr des Raspis in 24
> Stunden nur eine knappe Sekunde vorgeht. Das erscheint mir doch etwas zu
> genau.
Für eine eigenständige Uhr gerade noch brauchbar.
Aber das ist reine Glückssache. Je nachdem wo das eigene Exemplar mit
der Quarztoleranz gelandet ist. Und vor allem auch je nach
Umgebungstemperatur.
So ein Feld-Wald-Wiesen-Quartz hat vielleicht eine Grundgenauigkeit von
100ppm. Das sind so knapp 10 Sekunden pro Tag.
Oft ist bei Systemen ohne RTC aber nicht der Quartz der begrenzende
Faktor, sondern die Software. So verlieren manche Systeme unter heftiger
Last manchmal ein paar Timer-Interrupts. Oder aber bei umschalten des
Systemtaktes abhängig von der Last ergeben sich immer wieder kleine
Hüpfer, die sich über den Tag hinweg zu Minuten kumulieren können.
> Üblicherweise erwarte ich von Computern Ungenauigkeiten der
> Systemuhr von bis zu mehreren Minuten pro Tag.
PCs haben eine RTC und sind vorbehaltlich von defekten oder
ausgelutschten Batterien wesentlich genauer. Ein 08/15 Uhrenquarz bringt
aus dem Stand ungefähr 20 ppm über den ganzen Temperaturbereich. Das
sind maximal knapp 2s/Tag Abweichung, typischerweise deutlich unter
einer Sekunde, weil die Temperatur sich nicht so ändert.
Wenn die Abweichung beim PC größer ist, ist üblicherweise die Software
im Eimer oder die Batterie leer oder die RTC defekt - etwa in der
Reihenfolge.
> Und bisher sind meine
> Erwartungen auch nicht enttäuscht worden.
Abweichungen von Minuten pro Tag hatte (beim PC) ich bisher nur bei fast
leeren Batterien.
> Warum geht die Systemuhr des Raspis ohne Synchronisation so genau?
Glück gehabt.
Ich habe allerdings das Gefühl, seit Jessie ist die Raspi-Uhr
/wesentlich/ genauer geworden. Keine Ahnung warum.
Ich vermute mal, das fiel vorher in die Kategorie 1, Software-Müll.
Jedenfalls liegt der Drift laut ntp bei mir jetzt bei -28,26 ppm
(2,44s/d). Das wäre im typischen Rahmen der verwendeten Standard-Quarze
auf dem Pi.
Marcel
PS. wenn Du wirklich was wirklich schickes in Sachen Uhr machen willst:
im Netz tummeln sich immer mal wieder recht günstige, kleine
Rubidium-Atomuhren aus russischer oder chinesischer Fertigung für
60-100€. Die Biester sind zwar nicht so genau wie die bekannten Cäsium
Atomuhren, aber 10^-10 (= 0,1 ppb = 1 Sekunde in 300 Jahren) ist selbst
mit den einfachen Dingern durchaus realistisch. Der Preis ist, dass die
Uhr nochmal so viel Strom braucht, wie der Raspi (direkt nach dem
Einschalten sogar deutlich mehr). Dafür spielt man dann aber fast in der
Klasse der GPS Satelliten mit, die übrigens auch (bessere)
Rubidium-Uhren haben.
Marcel