RTC PCF2129: Peripherie bleibt nach dem Setzen der Zeit stehen

Gast #4750573
Lesenswert?

Hallo zusammen

Ich betreibe einen PCF2129 per I2C an einem LPC1114. Ich kann die RTC 
initialisieren und auch Zeit und Datum auslesen. Wenn ich jedoch einen 
neuen Zeitpunkt reinschreibe, dann ist sie danach nicht mehr per I2C 
ansprechbar, und auch der Clock-Ausgang gibt keinen Takt mehr aus.
Wenn ich dann das ganze Gerät neustarte (sprich: vom Strom trenne und 
wieder anschliesse und somit auch die RTC neu initialisiere), dann wird 
die von mir vorher gesetzte Zeit korrekt ausgelesen. Die Uhr bekommt die 
Zeit also und zählt sie auch weiter korrekt hoch (ich habe dafür eine 
Pufferbatterie).
Kennt jemand dieses Phänomen und weiss vielleicht sogar woran das liegen 
könnte?

Grüsse
Matthias


P.S.: Um die Zeit zu setzen schreibe Ich folgende Daten (neun Byte) per 
I2C auf die RTC:
1
I2CMasterBuffer[0] = (0x51<<1); //adresse pcf2129
2
I2CMasterBuffer[1] = 0x03; // register-adresse sekunden
3
I2CMasterBuffer[2] = rtcDecToBCD(timeUTC->tm_sec) & 0x7F;
4
I2CMasterBuffer[3] = rtcDecToBCD(timeUTC->tm_min);
5
I2CMasterBuffer[4] = rtcDecToBCD(timeUTC->tm_hour);
6
I2CMasterBuffer[5] = rtcDecToBCD(timeUTC->tm_mday);
7
I2CMasterBuffer[6] = rtcDecToBCD(timeUTC->tm_wday);
8
I2CMasterBuffer[7] = rtcDecToBCD(timeUTC->tm_mon);
9
I2CMasterBuffer[8] = rtcDecToBCD(timeUTC->tm_year - 100);
Gast #4756711
Lesenswert?

Vielen Dank für die schnelle Antwort (und sorry für meine langsame 
Reaktion darauf ;-) ).

Der verlinkte Thread hat mir leider nicht weitergeholfen, auch wenn es 
mir noch einige Denkanstösse gab.
Der I2C-Bus funktioniert bei mir ja, das Initialisieren und Lesen 
funktioniert so wie es soll. Es hängt auch noch ein Display an demselben 
Bus, und dieses funktioniert auch wie es soll.
Das Stehenbleiben des Interfaces des PCF2129 geschieht auch unabhängig 
davon ob die Pufferbatterie vorhanden ist oder nicht.
Gast #4971311
Lesenswert?

Hallo tobias

Leider nein. Ich habe dann auch mal noch versucht nach dem Setzen der 
Zeit der RTC die Speisung zu kappen und danach neu zu initialisieren. 
Das hat aber auch nicht geklappt. Das war aber auch nur ein kleiner 
Versuch auf die Schnelle, vielleicht hatte ich da auch noch was 
übersehen oder so.
Die letzten Monate habe ich nichts mehr daran gemacht, ich müsste es 
eigentlich wieder mal in Angriff nehmen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren