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 André H. - 9.09.2005 11:07)
Als Antwort auf I2C-Bus defekt? von ChristianS - 5.09.2005 8:05
Ich nutze:
C-Control II Unit, C164CI-ControllerBoard, CC2-Application-Board, CC2-StarterBoard, CC2-ReglerBoard, OSOPT V3.0
Hallo Christian,

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.


Antworten bitte nur ins Forum!
Fragen per EMail auf Forum-Postings werden nicht beantwortet!

Das macht meine Heizung gerade


    Antwort schreiben


Antworten:

Re: I2C-Bus defekt? (von ChristianS - 9.09.2005 13:50)
    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)