Der Calliope mini hat leider keinen Echtzeit-Uhrenchip an board. Will man also Projekte realisieren, welche eine aktuelle Uhrzeit benötigen (z.B. regelmäßige Erfassung von Sensor-Daten etc.), dann benötigt man ein externes Zusatzmodul.
Auf der Suche nach passenden Chips /Boards bin ich auf die Typen DS1307 und co. gestoßen, welche gerne beim Arduino verwendet werden. Diese werden über I2C angebunden - aber leider haben diese Chips eine unveränderliche Adresse, welche mit bereits auf dem Calliope verbauten Bausteinen kollidiert.
Im Calliope-Forum stieß ich dann auf den Hinweis, dass es im Grove-System einen "High precision RTC-Baustein" mit einem PCF85065TP gibt:
https://wiki.seeedstudio.com/Grove_High_Precision_RTC/
Leider ist dieser Baustein mit ca. 10€ + Versand relativ teuer. Achtung - die andere Grove-Variante mit einem DS1307 funktioniert nicht am Calliope mini (siehe oben).
Die LösungAlso habe ich geschaut, ob man so etwas nicht selber bauen kann. Der verwendete Baustein in der TP-Ausführung ist zwar bei den großen Distributoren (Mouser, DigiKey) verfügbar, ich musste aber feststellen, dass dieser so klein is, dass auch meine geübten SMD-Fähigkeiten nicht ausreichten.
Es gibt aber eine Variante "A" - welche zwar auch SMD ist, aber deutlich einfacher zu löten ist. Ausgehend von den Application Notes habe ich also eine Platine im Format 5cm x 5cm entwickelt, welche außer dem Uhrenchip nur klassische Bauteile enthält (siehe Aufmacher-Bild).
Das Platinen-Layout ist unten angehängt. Ggf. habe ich aber auch welche vorrätig.
Dazu habe ich auch noch basierernd auf der Extension von Raik Andritschke eine neue Extension für MakeCode entwickelt, welche sowohl die neue Platine als auch den Grove-Baustein unterstützt und dabei noch einige Sonderfunktionen des PCF85063 verfügbar macht:
- 30 / 60 Sekunden Timer für den Interrupt (Ausgang INT)
- Clock-Signal am Ausgang CLK (32768Hz, 16384Hz, 8192Hz, 4096Hz, 2048Hz, 1024Hz, 1Hz)
Man findet diese hier: https://github.com/dl1ekm/pxt-calliope-PCF85063-RTC
Zunächst kann man den Chip-Typ auswählen:
Hiermit kann man die Uhr stellen (Achtung, das sollte man nur einmal mit einem eigenen Programm machen, denn wenn die Batterie eingelegt ist, läuft die Uhrzeit von alleine weiter und man würde sich die Uhr damit bei jedem Programmstart zurücksetzen.
Dann kann man noch den Interrupt und/oder den Clock-Ausgang einstellen:
Zur Abfrage der Uhrzeit kann man entweder vorgefertige Ausgaben für das Datum oder die Uhrzeit verwenden oder einzelne Werte des Datums/Uhrzeit auslesen:
Die folgenden Dateien zeigen den Schaltplan und enthalten das Platinen-Layout. Alle Teile bis auf den Uhren-Chip sind z.B. bei Reichelt erhältlich.
Comments