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);
|