Forum: Mikrocontroller und Digitale Elektronik Problem mit PCF8574 Port Expander


von Thomas N. (thomas8443)


Lesenswert?

Hallo!

steuere mit meine ATMega32 einen PCF8547 Port Expander an. Verwende
dafür eine Software I2C Funktion. Leider schaffe ich es nicht, Zugriff
auf den Port Expander zu erzeugen.
Habe das I2C Signal schon mit LEDs ausprobiert und abgelesen, auch schon
mit Tastern simuliert aber ich schaffe es nicht den IC richtig
anzusteuern.

Mein Übertragungssignal sieht folgendermaßen aus (In der Software
programmiert, mit LEDs abgelesen und auch mit Tastern ausprobiert):

START 0100 0000 ACK 00001111 ACK STOP

Meine Adresspins sind alle nach Masse geschalten, daher Adresse 0.

hättet ihr eine Idee was mein Fehler sein könnte?
Danke für eure Antworten!

lg Tommy

von Oliver (Gast)


Lesenswert?

Thomas N. schrieb:
> Meine Adresspins sind alle nach Masse geschalten, daher Adresse 0.

Laut Datenblatt wäre das Adresse 0x20, je nach Implementierung kann es 
aber sein, daß du dafür 0x40 ausgeben musst.

Oliver

von Thomas N. (thomas8443)


Lesenswert?

habe mich etwas falsch ausgedrückt, meinte der teil der adresse der 
durch die Pins bestimmt wird ist null, habe als gesamte adresse 0x40 
gewählt!

>START 0100 0000 ACK

was könnte sonst noch mein fehler sein?

von Olaf (Gast)


Lesenswert?

> was könnte sonst noch mein fehler sein?

Ein beliebter Fehler ist es zu vergessen das I2c ja
OpenDrain ist. Da du SoftwareI2C machst darfst
du nicht den Pegel aendern indem du High
oder Low auf dem Port ausgibst, der muss immer
auf Low stehen. Du gibst dann den Pegel
aus indem du die Portdirektion von Eingang
auf Ausgang umschaltest.

Olaf

von Thomas N. (thomas8443)


Lesenswert?

@Olaf
muss zugeben, das habe ich nicht gewusst und ich hoffe dass das mein 
fehler war! aber wie müsste die schaltung aussehen wenn ich das mit 
normalen taster ausprobieren möchte?
reicht es nicht einfach einen taster an den eingang des Port Expanders 
zu hängen und zwischen Masse und 5V umzuschalten?

lg

von Oliver (Gast)


Lesenswert?

Thomas N. schrieb:
> reicht es nicht einfach einen taster an den eingang des Port Expanders
> zu hängen und zwischen Masse und 5V umzuschalten?

Die Leitungen dürfen nur per Pull-Up-Widerstand auf high gezogen werden, 
niemals aktiv. Taster dann gegen Masse, oder offen.

Die Widerstände hasr du aber dran, oder?

Oliver

von Olaf (Gast)


Lesenswert?

> Taster dann gegen Masse, oder offen.

Mit einem echten Taster geht das nicht weil der prellen wird.
Da muesste dann hinter den beiden Tastern noch etwas Logic
um die zu entprellen.

Olaf

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
Noch kein Account? Hier anmelden.