Forum: Mikrocontroller und Digitale Elektronik I²C Atmega1284 PCF8574 Eingangerw. SDA nach Übertragung High


von Bruce (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,
ich habe ein Problem mit der Kommunikation von einem Atmega1284 über I²C 
zu PCF8574 als Eingang. Ich sende die Adresse, bekomme ein ACK, und 
empfange den Eingangszustand des PCF8574, dann das STOP-Bit. Jedoch 
bleibt der SDA-Pegel auf LOW und mein Controller hängt sich auf.

Lasse ich das Stop-Bit am Ende der Kommunikation weg (war Zufall, hatte 
ich vergessen), so hängt sich der Controller nicht auf. Ich kann weiter 
kommunizieren, jedoch bleiben bis zur nächsten Kommunikation und danach 
die SDA und SCL Pegel auf LOW.

Zweites wäre kein Problem, weil die Kommunikation funktioniert. Aber ich 
bin auf den INT von dem PCF8574 angewiesen (Eingänge/Port-Zustand ändert 
sich), welche nur funktioniert wenn die Pegel wieder auf HIGH sind. 
Damit der Controller gleich reagieren kann.

Ich benutze die Library für I²C von Peter Fleury.

Screenshot tek00010 zeigt die Kommunikation mit STOP-Bit
Screenshot tek00011 zeigt die Kommunikation ohne STOP-Bit

Die Eingänge de PCF8574 liegen auf LOW. Weshalb im Datenbyte nichts zu 
sehen ist.

Woran liegt das das die Pegel von SDA & SCL nicht mehr auf HIGH gehen?

von Wilhelm M. (wimalopaan)


Lesenswert?

Sendest Du eine Write-Adresse oder eine Read-Adresse?

von Bruce (Gast)


Lesenswert?

Ich sende read-addr., also "addr-byte | 0x01"

von Wilhelm M. (wimalopaan)


Lesenswert?

Dann darfst Du beim Lesen des letzten Bytes kein ACK anfordern.

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Bruce schrieb:
> Screenshot tek00011 zeigt die Kommunikation ohne STOP-Bit

 Da fehlt auch START-Bit, wie soll das funktionieren ?

von Bruce (Gast)


Angehängte Dateien:

Lesenswert?

Vielen Herzlichen Dank! :-)

Es funktioniert.

Einen schönen Tag wünsche ich noch!

von Wilhelm M. (wimalopaan)


Lesenswert?

Was war die Ursache?

von Bruce (Gast)


Lesenswert?

@Wilhelm:

War das ACK am Ende des Datenbytes. Ohne ACK funktioniert es jetzt. 
Vielen Dank Wilhelm.

von Wilhelm M. (wimalopaan)


Lesenswert?

Prima!
Die (eindeutigen) Lösungen sind immer wichtig für Leute, die danach 
suchen ;-)

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.