Ein kleines Beispiel, um einen DS1307 RTC (Real-Time Clock) zu initialisieren, Zeit, Datum und RAM zu setzen/auszulesen. Bei erfolgreicher Initialisierung liefert der Ausgangspin des RTC einen Sekundenimpuls. Alle ca. 100ms wird der RTC abgefragt und das Ergebnis angezeigt. Ev. auftretende Fehler (Errorcodes) werden angezeigt. Auf die Batterie habe ich im Versuchsaufbau absichtlich verzichtet. Eine Kapazität von 220µF konnte den RTC bei Spannungsausfall mehrere Minuten (ca.15) lang puffern. Diese Zeit ist u.a. abhängig vom Leckström der Kapazität, der Spannung an der Kapazität / PIN3 und dem Sperrstrom der Diode. (PIN3/Bat max 3,5V lt. Datenblatt, beim anlegen einer höheren Spannung, z.B. 5V, läßt sich der RTC in meinem Versuchsaufbau per TWI nicht mehr ansprechen, Sekundentakt funktioniert zwar noch, aber erst ein komplette Spannungsabschaltung, incl. Bat, erweckt ihn zum Glück wieder zum Leben. Bitte nicht unbedingt testen, der RTC könnte beschädigt werden.) Probleme gab es, als der PIN3 (Bat) unbeschaltet war, meine Empfehlung: PIN auf GND oder an ein definiertes Spannungspotential. Es können auch BUS-Probleme auftreten, wenn die BUS-Widerstände einen zu kleinen Wert haben, der RTC schaltet relativ hochohmig gegen GND, dann stimmen ev. die Pegel nicht. Der Programmcode könnte optimaler gestaltet sein. Bernhard
Hallo Bernhard, danke für das tolle Beispiel. Ich beschäftige mich gerade mit TWI und einem DS1307. Mit einer minimalen Anpassung, klappt es auch auf anhieb mit meinem 1-Zeiligen Display. Das Beispiel funktioniert einwandfrei. Werde mir nun den Code genau ansehen und mir daraus wissen schöpfen. Grüße Stephan
Hallo Stephan, ich danke Dir, vielleicht könntest Du den angepassten Programmcode mit an diesen Beitrag anhängen, dann hätten alle was davon. Gruß Bernhard
Bernhard S. schrieb: > (PIN3/Bat max 3,5V lt. Datenblatt, beim anlegen einer höheren Spannung, > z.B. 5V, läßt sich der RTC in meinem Versuchsaufbau per TWI nicht mehr > ansprechen, Sekundentakt funktioniert zwar noch, Hallo! Nachdem ich sehr lang gesucht hatte warum mein I2C Bus plötzlich hing, fand ich dieses Problem hier auch. Ich hatte fälschlicherweise eine Spannung von 4,2 V an UBat Anschluss. Der DS1307 hat stundenlang problemlos funktioniert, aber irgendwann blieb mein Bus stehen. Das Problem ist, dass der Chip dann immer NCK liefert, wenn man ihn ansprechen will. War ganz klar mein Fehler, aber dass sich so was erst spät äußert .... Jetzt läuft es erst mal seit 5h durch. Grüße Hans-Joachim
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.