Hallo, ich schlage mich gerade mit einen PCA9555 rum Ich habe alle beide Ports als Eingänge gecodet //PCAaddr = $27 = 100111 TWIoutC(PCAaddr, $6, $FF); //FF=input 00=Output TWIoutC(PCAaddr, $7, $FF); //FF=input 00=Output Wenn ich den ersten Eingang von Port 0 auf Masse ziehe, bekomme ich eine 1 als ergebnis. Wenn ich den ersten Eingang von Port 0 auf Plus 3,3Volt ziehe, bekomme ich eine 0 zurück TWIoutC(PCAaddr, InputPort0); TWIinpC(PCAaddr, byt); Sind die eingänge von den Ports nur auf Masse bezogen ? Ich verstehe es nicht, es müsste doch Port0_pin0 = VCC = 1 sein und nicht eine 0 mfg Schuby
Das sieht so aus, als ob du in Register 4/5 (Polarity Inversion) geschrieben hättest.
Hallo, das habe ich mir auch schon gedacht, ist es aber nicht Ich habe jetzt den Pin1 von Port0 auf Masse gezogen. ich bekomme eine 2 zurück. TWIoutC(PCAaddr, $4, $00); // TWIoutC(PCAaddr, $5, $00); // TWIoutC(PCAaddr, $6, $FF); //FF=input 00=Output TWIoutC(PCAaddr, $7, $FF); //FF=input 00=Output Hierbei bekomme ich eine 253 zurück. TWIoutC(PCAaddr, $4, $FF); // TWIoutC(PCAaddr, $5, $FF); // TWIoutC(PCAaddr, $6, $FF); //FF=input 00=Output TWIoutC(PCAaddr, $7, $FF); //FF=input 00=Output Und damit eine 2 Tja ich verstehe es auch nicht mehr. mfg schuby
Ich hätte noch vermutet, das ein floatender Eingang merkwürdige Effekte hat, aber die Eingänge des PCA9555 haben interne Pullups. Und mit den Pullups müssten alle offenen Eingänge 1 liefern. Kannst du die anderen Register korrekt lesen? Oder ist das ein chinesischer Klon, der die Polarity-Inversion-Register falsch herum implementiert hat?
Hallo Clemens, alle beide Ports sind auf eine Stiftleiste gelegt, es sind keine pullup Widerstände angeschlossen. Wenn ich die beiden Ports als Ausgang Programmiere ist alles ok, ich kann ein Bit setzen und der Ausgang wird high. Nur wenn ich alle beide Ports auf Eingang Programmiere, bekomme ich einen wert wenn ich den Eingang auf Masse ziehe. Ich verstehe es nicht mehr. Ich glaube schon fast du hast recht und ich habe so einen China Chip. Das ist nicht mein erster I2C Chip den ich Programmiere. PS: Register zb. Config Reg. 6 oder 7 kann ich auslesen mfg Schuby
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.