Re: Probleme mit I2C und C-Control II Station Kategorie: I²C-Bus (von Chris - 14.09.2004 20:09) | ||
Als Antwort auf Re: Probleme mit I2C und C-Control II Station von André H. - 9.08.2004 8:44 | ||
| ||
Hallo André Vielen Dank für die Antwort. Die Ports haben es glücklicherweise überlebt :-) Inzwischen habe ich den Fehler gefunden. Das Programm war ok aber Conrad hat mir die falschen Widerstände geliefert. Ich wollte 5k6 Pull-Up Widerstände verwenden, stattdessen lieferte man mir 560Ohm. Plötzlich viel mir auf, dass der Farbcode nicht stimmen kann - obwohl der Beutel mit 5k6 angeschrieben war! Dass die Ausgänge nicht Open-Drain sind, finde ich unschön. Wenn ich richtig informiert bin, kann ein Slave den Bus bremsen, indem er die Taktleitung auf Masse behält (bin nicht mehr ganz sicher). Dies würde aber auch entweder die Ports der Station oder die der Slaves ziemlich belasten. Chris. > 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. > | ||
Antwort schreiben Antworten: Re: Probleme mit I2C und C-Control II Station (von André H. - 19.09.2004 1:28) |