PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Gelöst: Problem mit PCF8574



Tido
13.01.2009, 19:48
Hallo,

ich habe ein PCF8574 an einem Atmega32. Schreiben funktioniert wunderbar, aber beim Lesen habe ich ein Problem:

An allen Ports sind Taster nach GND angeschlossen. Ich setze alle Ports durch Senden des Wertes 255 auf Eingang. Ein Logikprüfer bestätigt, dass alle Ports High sind ( &B11111111 = 255).
Lese ich nun aber die Ports, so erhalte ich statt dem erwarteten Wert von 255 nur 0.
Drücke ich den 1. Taster (LSB), so ändert sich der ausgelesene Wert von 0 auf 254 (was ja auch logisch ist: &B11111110 = 254).

Warum aber wird ohne bet. Taster nicht 255 gelesen sondern 0? Diese "0" lässt sich dann nämlich nicht vom Zustand "alle Taster betätigt" unterscheiden. Natürlich könnte ich mit Pullups an den Ports Abhilfe schaffen, aber das ist nicht der Sinn.

KlaRaw
14.01.2009, 08:04
Hallo,
Nach dem Hochfahren des IC, werden die Ausgänge automatisch resetet, auf 0V gesetzt. Setz vor dem Betreiben der Ports als Eingänge die Ports auf 1.
Wenn Du die Ports als Eingang mit Taster nutzen willst, so solltest Du die Ports per Pullup, 10K genügen, gegen +UB ziehen.
gruss Klaus.

Tido
14.01.2009, 09:29
Moin,

lt. Datenblatt (und dem was ich hier vor mir sehe) sind die Ports nach dem Einschalten bereits High.
Trotzdem setze ich sie nochmals auf High.

Testweise habe ich an allen Ports 4,7K-Pullups angeschlossen.
Seltsamerweise erhalte ich nach wie vor beim Lesen immer den Wert 0, solange alle Ports High sind. Lege ich einen beliebigen Ports per Taster auf GND, so wird der korrekte Wert (aller Ports) angezeigt.

Jemand eine Idee?

Tido
14.01.2009, 12:59
Problem gelöst: Der PCF war defekt, nach Tauch gibt er endlich auch die 255 aus.