Re: I2C-Bus defekt? Kategorie: I²C-Bus (von ChristianS - 12.09.2005 12:15) | ||
Als Antwort auf Re: I2C-Bus defekt? von Werner Radfelder - 11.09.2005 23:57 | ||
| ||
Hallo Werner, das kann es nicht sein, hat definitiv in dieser Konstelation gefunzt. Ich fürchte es ist die Rel8. Ich habe sie als fertigen Baustein bezogen. Ich tippe auf eine kalte Lötstelle, da es nach meinen Versuchen plötzlich für ein einziges mal funktionierete. Wenn ich mal Zeit habe, baue ich das Gerät aus und löte mal nach.... ChristianS. > Hallo Christian, > > Wenn es nicht schon einmal funktionierete hätte > würde ich sagen du hast einen Fehler in der Steckerbelegung. > Im Datenblatt des PCF/MAX-Rel8(+8) hat sich ein Fehler eingeschlichen > laut Datenblatt 5=SDA 6=SCL > Richtig wäre 5=SCL 6=SDA > > Habe mehere von den PCF/MAX-Rel8(+8) im einsatz > an C-Control II Station und am Reglerbords > > Gru� Werner > > > > Nochmal ich, > > ich habe den Fehler eingrenzen können. Das Programm "Wechselblinker" habe ich > > nochmals bei angeschlossener Rel8-Platine laufen lassen und festgestellt, > > dass eine der beiden (SCL) keinen High-Pegel bekommt. Er geht lediglich auf 0,8V. Nach mehreren > > Resetzs habe ich es ein einziges mal geschafft, dass die Platine arbeitet, da wurde SCL und > > SDA high. Das Testprogramm funktionierete dann auch. nachdem ich den RJ45-Stecker ge- > > zogen hatte, war der Fehler wieder da. Zufall? Liegt es am Steckkontakt? Es funktionieren dann > > aber beide Buchsen nicht. kann das sein? Am RJ45-Kabel liegt es nicht, dass habe ich mal in eine > > CAT6-Dose gesteckt und die Pegel sind O.K. > > Was kann ich tun? > > Auch so, das ganze ist in der Hausverteilung eingebaut und nicht gerade transportabel! > > Danke, > > ChristianS. > > > > > Hallo, > > > noch ein Nachtrag: Den Kabelbruch kann ich ausschlie�en. Wer hat noch eine Idee? > > > ChristianS > > > > > > > Hallo, > > > > zuerst einmal vielen Dank für die umfangreiche Antwort. > > > > Ich habe zuerst das 2. Progrämmchen ausprobiert. Dabei habe ich alle Busteilnehmer entfernt. > > > > Folgendes habe ich festgestellt: > > > > > > > > Wenn State=0 ist, dann sind SCL und SDA auf 1gesetzt, mit der Ground-Brücke lassen sich die > > > > Zustände jeweils auf 0 setzen. > > > > > > > > Ist State=1, dann sind SCL und SDA auf 0 gesetzt und ändern Ihren Zustand mittels > > > > Ground-Brücke nicht. > > > > > > > > Wenn ich das jedoch richtig verstanden habe, sollte sich bei State=1 der Zustand mittels Brücke > > > > auf 0 ändern lassen, und nicht umgekehrt, oder? > > > > > > > > Der Wechselblinker funktioniert übrigens auch. Dann kann nur die Relaisplatine einen Defekt haben, > > > > oder es liegt zwischen CC2 und Relaisplatine ein Kabelbruch vor. Die Versorgungsspannungen von > > > > 5V und 12V sind auf jeden Fall O.K. und wie gesagt, das Programm läuft/lief seit einem halben Jahr > > > > ohne Macken und ohne den Programmcode zu ändern, daran kann´s auch nicht liegen. > > > > > > > > > > Du kannst die Ports des I²C-Busses sehr einfach testen: > > > > > thread main > > > > > { > > > > > sfr.set_P3(((sfr.get_P3() and 0xFEFF) or 0x200)); > > > > > sleep 2000; > > > > > sfr.set_P3(((sfr.get_P3() and 0xFDFF) or 0x100)); > > > > > sleep 2000; > > > > > } > > > > > > > > > > Hier sollte sich sich an SDA und SCL ein Wechselblinker mit 4 Sekundentakt ergeben. > > > > > Wenn das nicht funktioniert, sind die Ausgangstreiber geschossen. > > > > > > > > > > > > > > > Du kannst auch einmal folgendes Testprogramm ausprobieren: > > > > > inline function get_DP3() returns int > > > > > { > > > > > inline vmcodes.VM_LOAD_ABSOLUTE_INT; > > > > > inline 0xFFC6; > > > > > } > > > > > inline function set_DP3(int value) > > > > > { > > > > > inline vmcodes.VM_STORE_ABSOLUTE_INT; > > > > > inline 0xFFC6; > > > > > } > > > > > > > > > > int x,state; > > > > > thread main > > > > > { > > > > > hwcom.setspeed(8); > > > > > sfr.set_ODP3(sfr.get_ODP3() or 0x0300); > > > > > sfr.set_P3(sfr.get_P3() and 0xFCFF); > > > > > set_DP3(get_DP3() and 0xFCFF); > > > > > // set_DP3(get_DP3() or 0x0300); > > > > > > > > > > loop > > > > > { > > > > > if ports.getHostkey() state=state xor 1; > > > > > if state > > > > > { > > > > > // sfr.set_P3(sfr.get_P3() and 0xFCFF); > > > > > set_DP3(get_DP3() or 0x0300); > > > > > } > > > > > else > > > > > set_DP3(get_DP3() and 0xFCFF); > > > > > > > > > > x=sfr.get_P3() shr 8; > > > > > hwcom.num(system.second());hwcom.tab(); > > > > > hwcom.put(state or 0x30);hwcom.tab(); > > > > > hwcom.put((x and 1) or 0x30); > > > > > hwcom.put(((x shr 1) and 1) or 0x30); > > > > > hwcom.ret(); > > > > > sleep 500; > > > > > } > > > > > } > > > > > > > > > > Es ist zwar dazu gedacht die Open-Drain-Funktionalität an Port3 zu testen, > > > > > allerdings ist es auch ein hilfreiches Testprogramm für die Ports des I²C-Busses. > > > > > Zum Bedienen brauchst Du ein Terminalprogramm(z.B. Hyperterminal) mit 57.600 Baud > > > > > und die Hosttaste. > > > > > Wenn State=1 ist, kannst du mit einer Brücke nach GND testen, > > > > > ob am Eingang dann ein Low-Pegel erkannt wird. > > > > > Wird aber bei State=1, ohne da� etwas an den Busleitungen angeschlossen ist, dennoch > > > > > ein Low-Pegel erkannt, ist höchstwarscheinlich der betreffende Port geschossen. > > > > > > > > > > Im Hyperterminal bekommst Su folgenden Datenrahmen: > > > > > Sekunde Sollwert Istwert > > > > > 00 1 11 (nur als Bsp.) > > > > > Die Dritte Zahl spiegelt den Zustand der Busleitungen wieder. > > > > > Die erste Ziffer ist SCL, die zweite SDA. > > > > > > > > > > MfG André H. > > > > > > > > > > > > > > > > Hallo, > > > > > > ich habe seit ca.: einem halben Jahr an meiner CC2-Station die PCF/MAX-Rel8-Erweiterung > > > > > > über den I2C-Bus angeschaltet. �ber eines der Relais wird eine Aussenbeleuchtung gesteuert. > > > > > > Seit ca: 4 Wochen funktioniert die Ansteuerung nicht mehr; am Programm und an der HW wurde > > > > > > nichts geändert. > > > > > > > > > > > > Es sieht so aus, als würde die Erweiterung nicht mehr angesteuert bzw. initialisiert. Ich habe den > > > > > > Verdacht, als sei der I2C-Bus der Station defekt. Gibt es eine Möglichkeit, dies möglichst einfach > > > > > > und zuverlässig zu testen? > > > > > > Ich habe auch versucht, alte "Testprogramme" laufen zu lassen, ohne Erfolg. > > > > > > > > > > > > Wenn jemand eine gute Idee hat, wäre ich dankbar. > > > > > > ChristianS. | ||
Antwort schreiben Antworten: Re: I2C-Bus defekt? (von ChristianS - 26.09.2005 19:30) |