Forum: Mikrocontroller und Digitale Elektronik PCF8574AP


von Stefan (Gast)


Lesenswert?

habe einen PCF8574AP am 90S8515 von ATMEL und versuche ihn als
Tastatureingabe zu nutzen. das Adressbyte habe ich schon zu ihm
geschickt, und er antwortet auch mit einem ACK. nun will ich lesen und
er schreibt immer ne "1" egal was ich an den eingängen für pegel habe.
gibt es hier einen Trick.
Bey Stefan

von thkais (Gast)


Lesenswert?

Wenn Du das Adressbyte schickst, hast Du da Bit 0 auf "1" gesetzt?

von Stefan (Gast)


Lesenswert?

zum lesen schicke ich eine "0" und danach will ich lesen.
am ende warte ich noch auf ein ACK vom Slave.

von Ralf Hochhausen (Gast)


Lesenswert?

Hallo,

weiß im Moment nicht ob man ne '0' oder ne '1' zum lesen zum PCF senden 
muß. Aber man sollte zuerst alle IOs, des PCF, die man als Eingang 
nutzen will mit '1' beschreiben (also hochohmig schalten), bevor man die 
Taster an den Eingängen abfragt. Hab das mal mit einem PIC gemacht und 
hat wunderbar funktioniert. Hast Du das schon gemacht?

Bis denne,

Ralf

von Peter D. (peda)


Lesenswert?

Vermute mal, Du hast da was mit den PINx, PORTx, DDx Registern 
durcheinandergebracht. Ist ja auch nicht so leicht wie beim 8051.

Ich empfehle Dir folgendes:

PORTx immer auf 0
lesen immer von PINx
senden 1: DDx = 0
senden 0: DDx = 1 (also invertiert)

Dann sollte es klappen, (externen Pullup nicht vergessen !).

Auch wichtig, jeder Puls muß mindestens 5µs lang sein, mehr als 100kHz 
geht nicht !


Peter

von thkaiser (Gast)


Lesenswert?

Es liegt am Bit 0. Zum Schreiben ist es 0, zum Lesen muß es 1 sein. Das 
Bit 0 des Adressbytes ist immer für die Richtung zuständig (0=Write, 
1=Read)

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.