Für dieses Forum muß Javascript im Browser aktiviert werden!
Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C2 Quellcode formatieren: <code>Quellcode</code> ASM Quellcode formatieren: <asm>Quellcode</asm> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! > Hallo Christian, > > > Ich habe versucht I2C-Komponenten (MAX7311, PCF8574) an die C-Control II Station anzuschliessen. > > Dazu habe ich ein kleines Programm geschrieben dass Daten an die Ports schreibt. Soweit funktioniert > > es gut. Nur kann ich keine Daten von den Bausteinen lesen. Ich erhalte beim "Start" nicht einmal ein > > "ACK". Auch wenn ich Daten an die Ports schreibe erhalte ich kein "ACK", obwohl es eigentlich > > funktioniert. > > Ohne Deine Routinen zu kennen, kann ich dazu nichts sagen. > Es gibt viele mögliche Fehler Ursachen: > Falsche Adressierung (R/W-Bit), Repeatet-Start falsch eingesetzt etc. > > Verwende am besten die vorhandenen Module pcf.c2 und max7311.c2 . > > > > Der I2C-Bus funktioniert doch als Open-Drain mit Pull-Up-Widerständen von einigen KOhm? > > Ein klares Jain. > Ich musste im OS leider feststellen, daß der Bus leider nicht als Open-Drain programmiert ist, > obwohl dies bei Port P3 möglich wäre. Ich werde einmal sehen, ob ich das in OSOPT V3.1 > korregieren kann. > > > Ich habe > > mal kurz SDA bzw. SCL der Station gegen GND gemessen. Dabei fliesst ein Strom von über 40mA!! > > Mess niemals eine Port mit einer Shuntmessung gg. GND oder V+ !! > Wahrscheinlich hast Du den Port jetzt geschossen ! > Wenn Du feststellen willst, ob ein Port durchgeschaltet oder hochohmig ist, solltest Du immer > den Strom begrenzen. z.B. mit einer LED + 470Ohm Vorwiderstand. > > > Dies > > ist wahrscheinlich auch der Grund, wieso die Bausteine keine Daten senden können. Ausserdem sind > > ja noch 2 330Ohmn Widerstände in Serie. Bei so einem kleinen Innenwiderstand erkennt die Station nie > > einen Low-Pegel von den Slaves. Auf dem Schema der Station sind keine Widerstände eingezeichnet. > > Sobald Du Daten vom Bus liest, wird SDA als Eingang geschalten und wird somit hochohmig. > Da lesen funktioniert an der CC2 einwandfrei. Sonst würden meine ganzen Erweiterungen nicht funzen. > Wie gesagt, vermute ich, daß in Deinen Routinen ein Fehler ist. > Aber es kann jetzt durch Deine Messung natürlich auch sein, daß Du die Ports geschossen hast. > > > > Hat jemand eine ähnliche Erfahrung gemacht oder hat jemand eine Idee was ich falsch mache. Sind > > die Treiber der Station etwa aktiv? i2c.init() habe ich ausgeführt. Woran könnte das liegen? > > i2c.init() muß nicht ausgeführt werden. Das macht das OS bereits nach einem Reset. > Poste einmal Deine Routinen und schreib', wie lang Deine Leitungen am Bus sind und > was für Kabel Du verwendest. Sonst kann ich Dir kaum helfen. > > MfG André H.