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 14:42)
Als Antwort auf Re: I2C-Bus defekt? von ChristianS - 9.09.2005 13:50
Ich nutze:
C-Control II Station
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 - 9.09.2005 15:16)
    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)