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 13:50)
Als Antwort auf Re: I2C-Bus defekt? von André H. - 9.09.2005 11:07
Ich nutze:
C-Control II Station
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 14:42)
    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)