www.jb-electronics.de » Elektronik » Digitaltechnik » Universal-Uhr-IC
Eine Digitaluhr ist kein Hexenwerk. Sie kann zum einen diskret aus einzelnen Logik-ICs aufgebaut werden (siehe zum Beispiel die Digitaluhr I oder II) oder aber durch einen Mikrocontroller realisiert werden (siehe zum Beispiel die Nixie-Uhr III, die Binär-Uhr, oder den LED-Wecker), und manchmal sogar nur mit einem einzelnen Mikrocontroller ohne externe Hardware, wie etwa bei der Mini-Binäruhr.
Doch sowohl der konkrete Aufbau einer diskreten Digitaluhr mit all seinen Details sowie die Auswahl und Programmierung eines Controllers ist für viele Elektronik-Hobbyisten eine nur schwer überwindbare Herausforderung. Andere hingegen wollen vielleicht den Aufwand auf der Elektronik-Seite so gering wie möglich halten, um sich voll auf den Bau eines schönen Gehäuses der Uhr konzentrieren zu können.
Ein Bekannter von mir - passionierter Röhrenbauer und großer Techniker - machte mich auf dieses Problem aufmerksam, und gemeinsam entwickelten wir das Konzept dieses Universal-Uhr-ICs:
Diese Funktionalitäten sollten in einen Mikrocontroller einprogrammiert werden, der in normaler DIL-Technologie als auch in SMD-Technologie zur Verfügung steht, doch dazu später mehr.
Aber Moment einmal, was ist der Vorteil? Jetzt wird ja doch wieder ein Mikrocontroller benötigt. Das stimmt zwar, aber dieser kann unabhängig vom Projekt geflasht werden, und quasi als fertiges Bauteil eingeplant werden.
Diese geschieht BCD-kodiert, daher werden zunächst einmal Stunden, Minuten und Sekunden in EIner und Zehner gesplittet, und diese Informationen dann im Binärformat ausgegeben.
Das ist daher ganz sinnvoll, da viele Treiber-ICs genau dieses digitale Format benötigen:
Da der Universal-Uhr-IC mit +5V arbeitet, können diese Chips auch alle direkt an diesen angeschlossen werden.
Viele Digitaluhren besitzen mehr Einstelloptionen, als einem lieb ist. Dem sollte hier bewusst entgegengewirkt werden, so gibt es nur zwei Taster, die jeweils mit einem Widerstand angeschlossen werden müssen; über sie lassen sich Stunden und Minuten je um einen Zähler erhöhen, bei Gedrückthalten erfolgt schnelleres Hochzählen. Die Sekunden werden bei einem solchen Einstellvorgang immer auf Null gesetzt, um ein Synchronisieren (zum Beispiel mit dem 20:00 Uhr-Tagesschau-Gong) zu ermöglichen.
Doch genug der Worte, hier ist die Beschaltung des Universal-Uhr-ICs zu sehen:
Die Kondensatoren C1 und C2 sind für die stabile Arbeitsweise der Uhr sinnvoll und sollten möglichst nahe am IC platziert werden; die Kondensatoren C3 und C4 bilden mit dem Quarz Q1 die Zeitbasis. Der Reset-Pin kann auch direkt mit +5V verbunden werden.
An die Eingänge SW_MIN und SW_HR wird jeweils ein Taster nach +5V angeschlossen; zudem wird jeder Eingang mit einem 4.7kΩ-Widerstand mit Masse verbunden, damit die Eingänge auch bei offenem Taster auf einem wohldefiniertem Potential liegen (hier: GND). Diese Widerstände dürfen nicht weggelassen werden.
Verwendet wird hier der PIC16F707, der mit seinen 40 Pins genügend I/O-Ports zur Verfügung stellt. Er ist zum einen im hobbytauglichen DIL-Package lieferbar (dabei haben die einzelnen Pins einen Abstand von 2.54mm), aber zudem auch in sehr kleinen SMD-Packages. Denkbar ist allerdings auch der PIC16F877A, den es allerdings nicht so einfach im SMD-Package gibt.
Für alle Interessierten gibt es hier den C-Quellcode und das fertig kompilierte HEX-File (sowohl für den PIC16F707 und den PIC16F877A): UniversalUhrIC.zip (7 KB)
Sollten Sie nicht in der Lage sein, den Chip selbst zu flashen, dann schreiben Sie mir doch eine Email.
Natürlich kann auch gänzlich auf weitere Hardware verzichtet werden, und die LEDs werden dann direkt (über Vorwiderstände, versteht sich) an den Controller angeschlossen. Das ergbit dann eine schöne BCD-Uhr.
Zu Testzwecken habe ich eine solche einmal aufgebaut, hier ist sie zu sehen:
Nicht verwirren lassen: das PICkit3 ist nur aus Entwicklungsgründen angeschlossen, und wird beim Betrieb natürlich nicht benötigt.
www.jb-electronics.de » Electronics » Digital Technology » Universal Clock IC
There is no English translation of this page available yet. It will take some more time for me to translate the whole website.
If you have a particular interest in this page getting translated as fast as possible, please contact me; I will see what I can do. Please click here for the German version.