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

I2C Bus Porterweiterungen1816R Kategorie: I²C-Bus (von Friedhelm Kesten - 12.04.2010 18:30)
Ich nutze:
C-Control II Unit, CC2-ReglerBoard, OSOPT V3.1
Hallo CC2User!

Mein System: C-Control II, 2005/05/27, CC2 V3.1b, OSOPT V3.1
Reglerboard V1.3
Max7311.c2 V1.03 I2c.c2 V1.32

Ich habe für meine Haustechnik 2 x I2C Bus Porterweiterungen1816R und 3 x I2C-Bus
Transceiver 1824R zusammenbebaut und getestet. Beide I2C Bus Porterweiterungen verhalten
sich nicht wie erwartet. Ich habe zwei Testloops erstellt um Ein- und Ausgänge zu testen.
Es fehlen jeweils die Bits 3,4,5 und 11,12,13 beim Inputtest sowie beim Outputtest. Nur der
Outputtest, wo ich alle Bits einzeln Ein- und Ausschalte, funktioniert. Den 1816R hatte ich
mit MAX7311 aufgelötet bestellt, weil ich das Risiko nicht eingehen wollte, hier einen Fehler
einzubauen. Das Verhalten mit ist mit und ohne Transceiver gleich.
Da beide 1816R den gleichen Fehler zeigen vermute ich den Fehler im Programm.

�ber einen Hinweis würde ich mich freuen! Danke!

GruÃ?

Friedhelm

Hier die Testloops â?? ich aktiviere mal die eine und mal die andere loop.

// Outputttest
// 11.04.2010
//-----------
  thread main
//-----------
{
//-----------
//Init MAX7311
//-----------
string s;

  rblcd.init();
  rblcd.clear();
  rblcd.setLight(1);

  rblcd.goto(1,0);
  s="Max7311 Outputttest";
  rblcd.print(s);
  sleep 1000;

  max7311.setDDRw(16,0000000000000000);    //set Datenrichtung: alle Ports als Ausgang festlegen -ok-
  //max7311.setDDRb(16,0,0);    //set Datenrichtung: Ports 0-7 als Ausgang festlegen -ok-
  //max7311.setDDRb(16,1,0);    //set Datenrichtung: Ports 8-15 als Ausgang festlegen -ok-
  //max7311.setDDR(16,0,0);    //set Datenrichtung: Port "0" als Ausgang festlegen
1=Eingang 0=Ausgang
  //max7311.setw(16,1111111111111111);       //setze alle Ports "1"
  //max7311.setw(16,0000000000000000);       //setze alle Ports "0"
 
 loop
 {
  max7311.setw(16,1111111111111111);       //Baustein 16, Port 0, einschalten - Fehler
je 3 Bits 3,4,5 und 11,12,13  fehlen.....
  sleep 500;
  max7311.setw(16,0000000000000000);       //Baustein 16, Port 0, ausschalten - Fehler
je 3 Bits 3,4,5 und 11,12,13  fehlen.....
  sleep 500;
  /*
  max7311.setb(16,0,11111111);       //Baustein 16, Byte 0, einschalten - Fehler
je 3 Bits 3,4,5 und 11,12,13  fehlen.....
  sleep 500;
  max7311.setb(16,0,00000000);       //Baustein 16, Byte 0, ausschalten - Fehler
je 3 Bits 3,4,5 und 11,12,13  fehlen.....
  sleep 500;
  max7311.setb(16,1,11111111);       //Baustein 16, Byte 1, einschalten - Fehler
je 3 Bits 3,4,5 und 11,12,13  fehlen.....
  sleep 500;
   max7311.setb(16,1,0000000);       //Baustein 16, Byte 1, ausschalten - Fehler
je 3 Bits 3,4,5 und 11,12,13  fehlen.....
  sleep 500;
  */
/*
  //-----------
  //Teste Ports 0 bis 7 einzeln -ok-
  //-----------

  max7311.set(16,0,1);       //Baustein 16, Port 0, einschalten
  sleep 200;
  max7311.set(16,0,0);       //Baustein 16, Port 0, ausschalten
  sleep 200;
  max7311.set(16,1,1);       //Baustein 16, Port 1, einschalten
  sleep 200;
  max7311.set(16,1,0);       //Baustein 16, Port 1, ausschalten
  sleep 200;
  max7311.set(16,2,1);       //Baustein 16, Port 2, einschalten
  sleep 200;
  max7311.set(16,2,0);       //Baustein 16, Port 2, ausschalten
  sleep 200;
  max7311.set(16,3,1);       //Baustein 16, Port 3, einschalten
  sleep 200;
  max7311.set(16,3,0);       //Baustein 16, Port 3, ausschalten
  sleep 200;
  max7311.set(16,4,1);       //Baustein 16, Port 4, einschalten
  sleep 200;
  max7311.set(16,4,0);       //Baustein 16, Port 4, ausschalten
  sleep 200;
  max7311.set(16,5,1);       //Baustein 16, Port 5, einschalten
  sleep 200;
  max7311.set(16,5,0);       //Baustein 16, Port 5, ausschalten
  sleep 200;
  max7311.set(16,6,1);       //Baustein 16, Port 6, einschalten
  sleep 200;
  max7311.set(16,6,0);       //Baustein 16, Port 6, ausschalten
  sleep 200;
  max7311.set(16,7,1);       //Baustein 16, Port 7, einschalten
  sleep 200;
  max7311.set(16,7,0);       //Baustein 16, Port 7, ausschalten
  sleep 200;
 
   //-----------
  //Teste Ports 8 bis 15 einzeln -ok-
  //-----------

  max7311.set(16,8,1);       //Baustein 16, Port 8, einschalten
  sleep 200;
  max7311.set(16,8,0);       //Baustein 16, Port 8, ausschalten
  sleep 200;
  max7311.set(16,9,1);       //Baustein 16, Port 9, einschalten
  sleep 200;
  max7311.set(16,9,0);       //Baustein 16, Port 9, ausschalten
  sleep 200;
  max7311.set(16,10,1);       //Baustein 16, Port 10, einschalten
  sleep 200;
  max7311.set(16,10,0);       //Baustein 16, Port 10, ausschalten
  sleep 200;
  max7311.set(16,11,1);       //Baustein 16, Port 11, einschalten
  sleep 200;
  max7311.set(16,11,0);       //Baustein 16, Port 11, ausschalten
  sleep 200;
  max7311.set(16,12,1);       //Baustein 16, Port 12, einschalten
  sleep 200;
  max7311.set(16,12,0);       //Baustein 16, Port 12, ausschalten
  sleep 200;
  max7311.set(16,13,1);       //Baustein 16, Port 13, einschalten
  sleep 200;
  max7311.set(16,13,0);       //Baustein 16, Port 14, ausschalten
  sleep 200;
  max7311.set(16,14,1);       //Baustein 16, Port 14, ein schalten
  sleep 200;
  max7311.set(16,14,0);       //Baustein 16, Port 15, ausschalten
  sleep 200;
  max7311.set(16,15,1);       //Baustein 16, Port 15, einschalten
  sleep 200;
  max7311.set(16,15,0);       //Baustein 16, Port 4, ausschalten
  sleep 200;
*/
 }
}

// Max7311 Inputtest
// 11.04.2010
//-----------
  thread main
//-----------
{
//-----------
//Init MAX7311
//-----------

string s,s1,s2;
int u,u1;

  rblcd.init();
  rblcd.clear();
  rblcd.setLight(1);
 
  rblcd.goto(1,0);
  s="Max7311 Inputtest";
  rblcd.print(s);
  sleep 5000;

  //max7311.setDDRw(16,0000000000000000);    //set Datenrichtung: alle Ports als
Ausgang festlegen -ok-
  max7311.setDDRw(16,1111111111111111);    //set Datenrichtung: alle Ports als
Eingang festlegen -ok-
  //max7311.setDDRb(16,0,11111111);    //set Datenrichtung: Ports 0-7 als Eingang
festlegen -ok-
  //max7311.setDDRb(16,1,11111111);    //set Datenrichtung: Ports 8-15 als Eingang
 festlegen -ok-
  //max7311.setDDR(16,0,0);    //set Datenrichtung: Port "0" als Ausgang festlegen
1=Eingang 0=Ausgang
  //max7311.setw(16,1111111111111111);       //setze alle Ports "1"
  //max7311.setw(16,0000000000000000);       //setze alle Ports "0"

 loop                                      
 {
  u=max7311.getb(16,0);       //Baustein 16, Port 0, einschalten - Fehler
je 3 Bits 3,4,5 und 11,12,13  fehlen.....
  rblcd.goto(1,0);
  rblcd.print ("Ports 7-0 : ");
  rblcd.goto(1,11);
  s1="";
  str.putmask(s1,u,'1','0'); //Integer wandeln
  rblcd.print(s1);
  sleep 1000;
 
  u=max7311.getb(16,1);       //Baustein 16, Port 0, ausschalten - Fehler
je 3 Bits 3,4,5 und 11,12,13  fehlen.....
  rblcd.print ("Ports 15-8: ");
  rblcd.goto(2,11);
  s2="";
  str.putmask(s2,u,'1','0'); //Integer wandeln
  rblcd.print(s2);
  sleep 1000;
 }
/*
  loop                      
  {
  s="";                      
  s="Datenrichtung zeigen";  //0=Ausgang, 1=Eingang
  rblcd.goto(1,0);
  rblcd.print(s);
  u=max7311.getDDRb(16,0);
  s1="";                    
  str.putmask(s1,u,'1','0'); //Integer wandeln
  rblcd.goto(2,0);
  rblcd.print(s1);
  u1=max7311.getDDRb(16,1);
  s2="";                    
  str.putmask(s2,u,'1','0'); //Integer wandeln
  rblcd.goto(2,9);
  rblcd.print(s2);
 
  s="";                      
  s="Inversion Reg zeigen";  //0=Ausgang, 1=Eingang
  rblcd.goto(3,0);
  rblcd.print(s);
  u=max7311.getPIb(16,0);
  s1="";                    
  str.putmask(s1,u,'1','0'); //Integer wandeln
  rblcd.goto(4,0);
  rblcd.print(s1);
  u1=max7311.getPIb(16,1);
  s2="";                    
  str.putmask(s2,u,'1','0'); //Integer wandeln
  rblcd.goto(4,9);
  rblcd.print(s2);
  sleep 1000;
  }
*/
}


    Antwort schreiben


Antworten:

Re: I2C Bus Porterweiterungen1816R (von nitraM - 13.04.2010 9:41)
    Re: I2C Bus Porterweiterungen1816R (von Friedhelm Kesten - 15.04.2010 8:48)
Re: I2C Bus Porterweiterungen1816R (von Andreas - 13.04.2010 9:39)
    Re: I2C Bus Porterweiterungen1816R (von Friedhelm Kesten - 15.04.2010 8:56)