PCA9555 Frage

OP #7007996
Lesenswert?
• ▲
▼
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
OP #7008032
Lesenswert?
• ▲
▼
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
#7009013
Lesenswert?
• ▲
▼
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?
OP #7009244
Lesenswert?
• ▲
▼
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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 4 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.