Hi Leute. Also ich habe folgendes Problem: Habe mir vor kurzem ein RTC Modul zugelegt: [1] Ich habe jetzt schon mehrere Programme (wie auch dieses von dem link) ausprobiert. Die Uhrzeit kann gesetzt und auch ausgelesen werden, somit sollte die Kommunikation (i2c) funktionieren. Das Problem liegt darin, dass die Uhrzeit nicht weitergezählt wird. Wenn ich die Uhrzeit 20:32:40 einstelle, dann bleibt die immer gleich. Ich habe auch schon im Datenblatt gelesen, dass eine 0 auf das 7 Bit von Register 0 geschrieben werden muss um den oscillator zu aktivieren. Hat aber leider nichts geändert. Gebe es eine Möglichkeit das Modul irgendwie auf Funktionalität zu überprüfen? Oder muss ich noch etwas an der Schaltung verändern? Danke, Fabian [1] http://l.hh.de/y3VNk
:
Bearbeitet durch User
Programmier den Chip so, das auf dem SQ was herauskommen sollte. Wenn Oszi vorhanden, dann kannst Du die 32kHz ausgeben, ohne ist die 1 Hz Ausgabe vielleicht geschickter. Dann siehst Du, ob der RTC Oszillator auch korrekt arbeitet. Wenn ich das Datenblatt richtig interpretiere, muss man den Oszillator übrigens über das Bit im Sekdunden-Register erst einschalten, aber einfach eine korrekte Sekunde (Bereich 0..59) reicht da active low. Schau auch mal nach der Spannung an BAT.
Gute Idee werde ich heute gleich mal versuchen. Ja das Bit hab ich auch gesetzt, aber es hat eben auch nichts geändert. Die Batterie kann es eigentlich nicht sein , da ich das Modul mit 5V des Arduino versorge. Aber ich muss bei dem nicht noch irgendwelche Pull up´s oder so anbringen? Die wären ja nur für i2c oder?
Hi >Aber ich muss bei dem nicht noch irgendwelche Pull up´s oder so >anbringen? Die wären ja nur für i2c oder? Es gibt einen Schaltplan für das Modul. MfG Spess
Fabian Ko schrieb im: 25.07. 10:19 > Ich habe auch schon im Datenblatt gelesen, dass eine 0 auf das 7 Bit von > Register 0 geschrieben werden muss um den oscillator zu aktivieren. >>CH=0 25.07. 11:19 > Ja das Bit hab ich auch gesetzt, aber es hat eben auch nichts geändert. >>CH=1 wie hast du denn nun das Bit? 0 oder 1 ? Damit die Uhr läuft muss das Bit 0 sein, wenn du beim schreiben der Sekunde nicht noch irgendwas mit dem Byte anstellst sollte der Zustand von CH, wie Jim schon schrieb, korrekt sein. Sascha
Fabian Ko schrieb: > Die Batterie kann es eigentlich nicht sein , da ich das Modul mit 5V des > Arduino versorge. ohne Batterie muss Vbat auf GND gelegt werden
CheckerChan schrieb: > ohne Batterie muss Vbat auf GND gelegt werden Nee, nix 'muss', 'kann' Und das einzige was RTC anhalten kann, ist CH-bit, aber Jim schrieb schon, das normale Sec eingabe dieses bit zurucksetzt - und das tut sie auch. Allerdings: "Illogical time and date entries result in undefined operation." Was war mit Jim's Vorschlag mit SQW ? Ausprobiert ? mfg, Bole
hi Leute, sorry das ich erst jetzt wieder schreibe. Angeschlossen habe ich das Modul, wie auch im link gezeigt. 5V an Vcc, Gnd, Scl, Sda vom Arduino. Wie gesagt, ich kann die Zeit setzen und auch auslesen, es wird nur nicht gezählt. Habe es nochmal inizialisiert und danach mit I2c 0x68 (Adresse) dann 0x07 (Register) und 0x10 beschrieben um den SQ Ausgang mit 1Hz zu betreiben. Leider liegt am SQ Ausgang immer eine Spannung von 5V an. Code (von einem Beispiel + von mir erweitert): // Date and time functions using a DS1307 RTC connected via I2C and Wire lib #include <Wire.h> #include "RTClib.h" RTC_DS1307 rtc; void setup () { Wire.begin(); rtc.begin(); if (! rtc.isrunning()) { // following line sets the RTC to the date & time this sketch was compiled rtc.adjust(DateTime(F(_DATE_), F(_TIME_))); // This line sets the RTC with an explicit date & time, for example to set // January 21, 2014 at 3am you would call: // rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0)); } Wire.beginTransmission(44); Wire.write(0x68); Wire.write(0x07); Wire.write(0x10); Wire.endTransmission(); } void loop () { } Gruß Fabian
Hallo, hast du es schon mal mit der Lib die es zu dem Modul gibt versucht? Dein Code hat mit dem auf der Website ja nicht viel gemeinsam. Sascha
Fabian Ko schrieb: > betreiben. Leider liegt am SQ Ausgang immer eine Spannung von 5V an. Quartz im Eimer ?
Wennn der DS1307 mit 5V betrieben wird darf die Batteriespannung nicht über 4V gehen da der DS1307 dann nicht mehr funktioniert Hatte ich selber als ich den VDD mit einem Goldcaps Puffern wollte und die Ladespannung diese 4 V überschritten hatte also wenn keine Batterie vorhanden ist VBat mit GND verbinden wie CheckerChan schon geschrieben hatte
@Sascha, hab schon alle Example Programme getestet die ich zu dem Modul oder ähnlichen Modulen finden konnte. Wie gesagt, sie funktionieren ja, bekomm auch die gesetzte zeit zurück (Serial Monitor) nur bleibt die gestzte zeit so. @Bole aus Serbien, wenn du mit Eimer das Gehäuse darum meinst, dann ja. Siehe [1] @Matthias, das Modul wurde mit der Batterie geliefert und ich habe sie auch noch nicht rausgenommen. Was ich gerade versucht habe: Modul ohne Batterie, Anschluss 5V auf VDD und GND -> bekomme eine Antwort (Serial Monitor) Modul ohne Batterie, Anschluss 5V auf VBat und GND -> bekomme keine Antwort (Serial Monitor) Modul ohne Batterie, Anschluss 3V auf VDD und GRD -> bekomme eine Antwort (Serial Monitor) Modul mit Batterie, Anschluss 3V/5V auf VDD und GRD -> bekomme eine Antwort (Serial Monitor) Mit bekomme eine Antwort ist gemeint, dass ich die Register auslesen kann. Die davor beschriebene Zeit z.B.: 22:07:00 08-04-2011 (immer die gleiche) Gruß Fabian [1] http://l.hh.de/y3VNk
Ohne Batterie müsstest du Vbat an GND legen. Ansonsten bleibt wohl nur noch ein Defekt - warscheinlich der Quarz. Sascha
Fabian Ko schrieb: > @Bole aus Serbien, wenn du mit Eimer das Gehäuse darum meinst, dann ja. > Siehe [1] Nein, gemeint ist, dass der Quartz kaputt ist.
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.