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

Re: Chipkarte an C-Control II Station Kategorie: I²C-Bus (von André H. - 27.11.2004 17:04)
Als Antwort auf Re: Chipkarte an C-Control II Station von Joachim Rohmann - 25.11.2004 22:58
Ich nutze:
C-Control II Unit, C164CI-ControllerBoard, CC2-Application-Board, CC2-StarterBoard, CC2-ReglerBoard, OSOPT V3.0
Hallo Joachim,

Zuerst: Mache bitte einmal dringenst ein komplettes Update !
Du benutzt noch das Original-OS. Mit diesem zu arbeiten macht keinerlei Sinn.
Auch die Module müssen upgedatet werden.
Die Module station_lcd.c2 und station_io.c2 sind mehr als veraltet.
Ich werde diese zum Jahreswechsel von meiner Site entfernen.

Installiere daher bitte das aktuelle Service Pack und lade OSOPT V3.0 in Deine Station.

Als nächstes: Wenn Du Quellcode postest, benutze bitte, wie krassos bereits
geschrieben hat, die Code-Tags. Ansonsten ist der Code schlechter zu lesen und kann
auch falsch dargestellt werden. (Meistens wenn Grö�er- und Kleinerzeichen vorkommen.)


Bist Du sicher, daÃ? Du eine 16kBit-Chipkarte hast und keine 16kByte (128kBit) ?
Dann müsstest Du mit zwei Byte Adressiern.
Ist es eine gewöhnliche Speicher-Chipkarte oder eine mit Pin ?

EEProms (& SpeicherChipkarten) vom Typ 24C04 bis 24C16 sind anders zu adressieren.
Die unteren oberen Bits des Datenzeigerswerdenmit der I²C-Bus-Adresse verknüpft.
Beim 24C16 (16kBit) werden das Hi-Word der Adresse in den Bits 1, 2 und 3
der Bus-Adresse angegeben.
Aber das hätte hier jetzt keinen Einflu�, da Du nur die ersten Bytes beschreiben willst.

Du hast leider nicht geschrieben, was Dein Testprogramm ausgibt.
Also lasse einmal dieses Programm laufen und poste bitte die Ausgaben,
sonst kann man nichts analysieren.

thread main
{
 lcdext.init();
 stports.init();

 lcdext.print("ACK1: ");
 lcdext.ziff(i2c.start(160) and 1);
 i2c.write(0);
 i2c.write('A');
 i2c.write('B');
 i2c.write('C');
 i2c.write('D');
 i2c.stop();

 sleep 50;


 lcdext.print(" ACK2: ");
 lcdext.ziff(i2c.start(160) and 1);
 i2c.write(0);
 lcdext.ziff(i2c.start(161) and 1);
 lcdext.zahl4(i2c.read());
 lcdext.zahl4(i2c.read());
 lcdext.zahl4(i2c.read());
 lcdext.zahl4(i2c.readlast());
 i2c.stop();

 quit 1;
}


Im Idealfall müsste in der ersten Zeile dies:
ACK1: 1 ACK2: 11
und ind er zweiten Zeile das
 64  65  66  67
stehen.

Wenn die Chipkarte sich überhauptnicht ansprechen lässt, müsste in der ersten Zeile
auf jeden Fall dies stehen:
ACK1: 0 ACK2: 00
Ist dies der Fall, überprüfe bitte den Anschlu�, ob Du iregendetwas vertauscht hast.

MfG André H.



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

Das macht meine Heizung gerade


    Antwort schreiben


Antworten:

Re: Chipkarte an C-Control II Station (von Joachim Rohmann - 29.11.2004 22:17)