Guten Abend,
ich habe eine Platine mit einem RTC gemacht und dies ist mein ersten
Projekt mit einem RTC.
Die ganze Platine ist THT, bis auf den RTC der als SMD auf der Rückseite
angelötet ist. Da ich mich mit den Pads ein wenig vertan hab musste ich
ein wenig tricksen um den richtig rauf löten zu können.
Ich habe nun mit dem Multimeter überprüft oder die Kontakte passen bzw.
Brücken da sind -> alles Okay.
Nun wollte ich mein Programm testen, doch das Programm stoppt beim
schreiben über I2C immer. Jetzt weiß ich nicht ob der IC defekt ist
(vielleicht thermisch) oder ob mein Programm fehlerhaft ist. Da ich
nicht weiß ob alle Befehle stimmen. Also die Adressen usw.
Bitte um Hilfe ob die Vorgehensweise richtig ist.
Mit freundlichen Grüßen,
avvf
edit: vor der Zeile mit PORTD |= (1<<5); muss ein Fehler sein, da dieser
Befehl nicht mehr ausgeführt wird.
RTC: MCP 79410-I/SN
1 | #define RTC_SRAM_ADDRESS 0b1101111
|
2 |
|
3 | // init rtc - chip
|
4 |
|
5 | i2c_init();
|
6 | i2c_start_wait(RTC_SRAM_ADDRESS+I2C_WRITE);
|
7 | i2c_write(0x00);
|
8 | i2c_write(0x40); //start ON Board Oscillator
|
9 | PORTD |= (1<<5);
|
10 | i2c_stop();
|
11 |
|
12 | i2c_start_wait(RTC_SRAM_ADDRESS+I2C_WRITE);
|
13 | i2c_write(0x02);
|
14 | i2c_write(0x30); //24 hours format
|
15 | i2c_stop();
|
16 |
|
17 | i2c_start_wait(RTC_SRAM_ADDRESS+I2C_WRITE);
|
18 | i2c_write(0x03);
|
19 | i2c_write(0x34); //VBAT act. 0b00111
|
20 | i2c_stop();
|