Schlagwort-Archive: RTC

Den Arduino Quarztakt auf 3ppm genau bestimmen mit der DS3231 RTC

Der Arduino Uno hat einen 16MHz Quarz für den Prozessortakt.

Diese Quarzfrequenz ist von der Temperatur abhängig, typisch +-30ppm oder 480 Hz über normale Temperaturen und Herstellungsbedingt fehlerhaft in der Größenordnung von typisch +-30ppm oder 480Hz. Das ergibt zusammen einen Fehler von +-960Hz oder 60ppm. Bei einer Frequenzmessung kann das zu großen Fehlern führen sodaß die 4. Stelle schon falsch sein kann. Bessere Angaben liefert das Datenblatt vom Quarz oder der Aufdruck.

Das läßt sich verbessern auf unter 3ppm oder 48 Hz Fehler mit der RTC DS3231. Dazu wird der 1Hz Ausgang des DS3231 verwendet um bei steigender Flanke einen Interrupt im Arduino auszulösen. Bei jedem 4. Interrupt (4 Sekunden) wird die vergangene Prozessorzeit mit der Funktion micros() in Mikrosekunden ermittelt. Daraus kann nun der Prozessortakt genauer bestimmt werden. Weiterlesen

RTC3231 Aufbau

Die Uhrzeit des RTC DS3231 Modul vom Arduino auslesen

Das Uhrzeitmodul RTC DS3231 (Real Time Clock ZS-042) ist eine genaue Uhr mit eingebauten Quarz. Dieser Quarz wird intern Temperatur überwacht und korrigiert sodass sie einen Fehler von nur +-2ppm hat, was ca. 1 Minute pro Jahr entspricht.

Ich habe das RTC3231 mit 4 Leitungen an den Arduino Uno angeschlossen. Weiterlesen

Den Arduino Quarz Takt genauer bestimmen mit einer RTC oder mit GPS

Für einen Frequenzzähler mit dem Arduino ist es wichtig den Quarz Takt genau zu bestimmen. Beim Arduino Uno ist er mit 16 MHz angegeben. Der eingebaute Quarz hat einen typischen Fehler von \pm 30ppm (parts per million) also \pm30*10^{-6}.

Das entspricht 30 Sekunden auf 1.000.000 Sekunden beim Arduino.

Für den Frequenzzähler bedeutet das einen Fehler für 100.000 Hz von \pm 3Hz. Da dieser Fehler auch bei 99.999 Hz gilt, können wir von dieser Genauigkeit ausgehen:
> Die ersten 4 Stellen der Frequenz werden korrekt dargestellt. Weiterlesen