Präzises Timing hat mich schon immer interessiert. Heutzutage verlassen wir uns stark auf das Wetter, das uns über das Internet, über Funkwellen von GPS-Satelliten oder Rundfunkstationen übermittelt wird. Aber ich wollte eine Uhr, die unabhängig von der Außenwelt eine hervorragende Zeit liefert – sicherlich etwas Besseres als die Zeit, die der Quarzkristalloszillator liefert, der in einer typischen Digitaluhr oder einem typischen Mikrocontroller verwendet wird und der von etwa 1,7 Sekunden pro Tag oder mehr abweichen kann . 10 Minuten im Laufe eines Jahres.

Natürlich könnte ich eine Atomuhr kaufen, also eine Uhr mit einem Rubidium-Oszillator, wie er an Bord von GPS-Satelliten verwendet wird. (Nicht diejenige, die als „Atomuhr“ vermarktet wird, sondern eine, die tatsächlich auf der Erfassung von Funkzeitsignalen beruht.) Rubidium-Uhren bieten eine unglaubliche Präzision, kosten aber Tausende von US-Dollar. Ich brauchte etwas dazwischen, und die Rettung fand ich in Form des ofengesteuerten Quarzoszillators, der aus historischen Gründen immer als OCXO bekannt ist. Mit einer davon könnte ich für etwa 200 US-Dollar meine eigene Uhr bauen, und zwar eine, die etwa 200-mal genauer wäre als eine typische Quarzuhr.

Temperaturänderungen sind die größte Fehlerquelle bei herkömmlichen Quarzoszillatoren. Sie führen dazu, dass sich der Quarz ausdehnt oder zusammenzieht, wodurch sich seine Resonanzfrequenz ändert. Eine Lösung besteht darin, die Temperatur zu verfolgen und Frequenzänderungen zu kompensieren. Aber es wäre besser, die Frequenzen gar nicht erst zu ändern, und hier kommt OCXO ins Spiel.

Eine Leiterplatte, umgeben von Komponenten wie LED-Anzeigematrizen, einem Nano-Mikrocontroller und einem Drehregler.Die gedruckte Schaltung [center] kann in zwei Teile geschnitten werden, wobei die zeitbezogenen Komponenten im unteren Teil und die Steuerungs- und Anzeigekomponenten im oberen Teil montiert werden.James Provost

OCXO hält den Kristall auf einer konstanten Temperatur. Um zu vermeiden, dass ein Kristall als Reaktion auf Umgebungsschwankungen erwärmt und abgekühlt werden muss, wird der Kristall auf etwa 80 °C erhitzt, was weit über den Umgebungstemperaturen liegt, denen er wahrscheinlich ausgesetzt ist. In der Vergangenheit waren OCXOs energiehungrig und sperrig bzw. teuer, doch in den letzten Jahren sind Miniaturversionen erschienen, die viel billiger sind und viel weniger Strom verbrauchen. Der Raltron OCXO, den ich für meine Uhr ausgewählt habe, kostet 58 US-Dollar, arbeitet mit 3,3 Volt und verbraucht im Dauerbetrieb 400 Milliampere.

Der OCXO schwingt mit 10 Megahertz. In meiner Uhr wird dieses Signal in einen 4-Bit-Zähler eingespeist, der jedes Mal, wenn er binär von 0000 bis 1111 zählt, einen Impuls erzeugt und so das 10-MHz-Signal durch 16 teilt. Dieses 625-Kilohertz-Signal (kHz) treibt dann a an Hardware-Timer in einem Arduino Nano-Mikrocontroller, der jede Zehntelsekunde eine Programmunterbrechung auslöst, um die Zeitbasis der Uhr zu aktualisieren. (Ausführliche Informationen zur Funktionsweise der Vertriebskette und der Software finden Sie in einem Begleitartikel unter IEEE-Spektrum(Website, zusammen mit einer Stückliste und Leiterplattendateien.) Mit einem direkt an den Nano angeschlossenen Drehregler können Sie die Uhrzeit einstellen.

Der Nano verfolgt die Zeit, stellt Sekunden, Minuten und Stunden vor und steuert auch die Anzeige. Dieses Display wird mit sechs „CharliePlex FeatherWings“ von Adafruit erstellt, bei denen es sich um 15 x 7 LED-Arrays mit steuerbarer Helligkeit handelt, die in verschiedenen Farben erhältlich sind. Jeder wird über das I2C-adressierbare serielle Busprotokoll gesteuert. Ein Problem entsteht, weil ein CharliePlex so verkabelt ist, dass er nur eine von zwei möglichen I2C-Adressen hat, was es unmöglich macht, sechs Ziffern der Uhr auf einem einzigen Bus individuell zu adressieren. Meine Lösung bestand darin, einen I2C-Multiplexer zu verwenden, der eingehende I2C-Daten aufnimmt und zwischen sechs separaten Bussen umschaltet.

Ein Blockdiagramm, das den OCXO, einen 4-Bit-Zähler, einen Nano-Mikrocontroller, einen I2C-Multiplexer und eine sechsstellige Anzeige verbindet.Die Zeitkette beginnt mit dem OCXO-Oszillator und seinem 10-Megahertz-Signal und endet mit der Aktualisierung der Anzeige einmal pro Sekunde. Das Zeitsignal synchronisiert einen Hardware-Timer im Nano-Mikrocontroller, sodass dieser zehnmal pro Sekunde einen Interrupt-Handler in der Nano-Software auslöst. Daher können Sie durch Softwaremodifikationen viele Änderungen vornehmen oder neue Funktionen hinzufügen.James Provost

Die Verwendung eines Mikrocontrollers (anstelle beispielsweise diskreter Logikchips) vereinfachte das Design und ermöglicht eine einfache Änderung und Erweiterung. Es ist einfach, die Software zu modifizieren, um beispielsweise die Zahlen durch Ihr eigenes Schriftdesign zu ersetzen oder die Bildschirmhelligkeit anzupassen. Anschlussblöcke für serielle Schnittstellen sind direkt am Nano verfügbar, sodass Sie die Uhr als Timer oder Trigger für ein anderes Gerät verwenden können.

Zu diesem Zweck können Sie die Anzeige ganz weglassen und so die Größe der Uhr erheblich reduzieren (allerdings müssen Sie die Software ändern, um die Startprüfung der Anzeige zu überspringen). Die Uhrenplatine ist so konzipiert, dass sie in zwei Teile geschnitten werden kann, wobei das untere Drittel den Mikrocontroller, OCXO und andere unterstützende Elektronik enthält. Die oberen zwei Drittel enthalten den Bildschirm und den Drehgeber. Indem Sie vier Stiftleisten hinzufügen und zwei Kabel zwischen den Teilen verlegen, um sie zu verbinden, können Sie die Platinen so anordnen, dass sie eine große Bandbreite an physikalischen Konfigurationen bilden, was Ihnen große Freiheit bei der Gestaltung des Formfaktors jedes Gehäuses gibt, das Sie für die Uhr bauen möchten. Tatsächlich war die Erstellung der Leiterplatte, um dies zu ermöglichen, wahrscheinlich der schwierigste Teil des gesamten Prozesses. Aber die daraus resultierende Hardware- und Softwareflexibilität des endgültigen Designs hat sich gelohnt.

Die Stromversorgung des gesamten Geräts erfolgt über den USB-C-Anschluss des Nano. USB-C war erforderlich, um ausreichend Strom bereitzustellen, da Uhr, OCXO und Display alle mehr als die maximale Stromstärke von 500 mA der vorherigen USB-Anschlüsse benötigen. Um ein Zurücksetzen aufgrund eines Stromausfalls zu verhindern, ist eine an diesen Anschluss angeschlossene Pufferbatterie erforderlich. Die Verwendung einer der bekannteren Knopfzellen-Echtzeit-Backup-Uhren wäre aufgrund ihrer relativen Ungenauigkeit nutzlos.

Und was das Ziel betrifft, eine genaue Uhr mit einem hervorragenden Preis-Leistungs-Verhältnis zu schaffen, habe ich den Ausgang meines OCXO-Schaltkreises mit einem HP 53150A-Frequenzmesser gegengeprüft. Das Ergebnis ist, dass die Uhr nicht mehr als 0,00864 Sekunden pro Tag oder weniger als 3,15 Sekunden pro Jahr abweicht. Tatsächlich ist die Genauigkeit wahrscheinlich besser, aber ich hatte die Grenze dessen erreicht, was ich mit meinem Frequenzmesser messen konnte! Ich hoffe, Sie bauen selbst eines. Das Löten dauert nur ein paar Stunden, und ich denke, Sie stimmen mir zu, dass diese Zeit gut investiert ist.

By rb8jg

Leave a Reply

Your email address will not be published. Required fields are marked *