Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: I2C-Bus defekt? Kategorie: I²C-Bus (von ChristianS - 9.09.2005 15:16)
Als Antwort auf Re: I2C-Bus defekt? von ChristianS - 9.09.2005 14:42
Ich nutze:
C-Control II Station
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 Werner Radfelder - 11.09.2005 23:57)
    Re: I2C-Bus defekt? (von ChristianS - 12.09.2005 12:15)
        Re: I2C-Bus defekt? (von ChristianS - 26.09.2005 19:30)