PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PCF 8574 Problem



hacker
02.11.2007, 17:21
Hallo,

ich habe einen einen PCF 8574 wie folgt angeschlossen:

Vcc und GND ganz normal, die drei Adressports alle auf Masse gelegt, von den 8 Portpins hab ich einen auf Masse gelegt, 3 haben keine Verbindung und 4 Stück sind jew. an die Ausgänge von IS471 Sensoren angeschlossen.

Ich lese über I2C ganz normal aus. Klappt auch recht gut. Jedoch schleicht sich da ca. jeden fünften Wert eine "65" ein, die da eigentlich nichts verloren hat. --> seltsam

Aber das richtig lustige kommt noch:
Ich will die Interruptleitung verwenden. Die hängt über 10k an Vcc und direkt auf einen Int Pin vom µC. Der Int wird als low aktiv angegeben. Also ständig 5V bis eine Änderung registriert wird. Dann zieht das IC die Leitung auf Masse. Zurückgesetzt wird der Int entweder durch ein Schreib/Lesevorgang dieses Ports, der den Interrupt ausgelöst hat oder ein Erneutes Ändern zum alten Zustand.

Und jetzt bin ich mal gespannt auf eure Erklärungsversuche: Ich hab nämlich auf der Int Leitung ein Takt! Verhältnis low zu high oder high zu low ist ca. 1:5. Es ist komplett willkürlich, ob low oder high nach anschalten den größeren Anteil hat.
Und man beachte, es gibt keinerlei Änderung der Eingangssignale! (oder vllt. doch die in der Luft hängenden Pins?)

Lasse ich nun ein Sensor auslösen, fällt der Takt zusammen und es ergibt sich ein 0V Pegel, der Int löst also wunderbar aus. Nach Wiederherstellung des Eingangssignals erscheint wieder dieser seltsame Takt auf meiner Int-Leitung. Auch bei einem Lesevorgang erscheint der Takt wieder. (Der Int resetet also auch wunderbar).

Hat einer eine Erklärung dafür?

Gruß Hacker

damaltor
02.11.2007, 18:46
ich tippe auf die offenen eingänge. tu mal alle auf masse, und schau was passiert...

hacker
02.11.2007, 19:07
Hat keinen Einfluss...der Takt ist immer da...

Eine andere Vermutung, einer der Sensoren spinnt und sein Ausgangssignal springt schon immer hinundher, was dann auch ein sich selbst immer wieder resetender Interrupt zur Folge hätte, hat sich auch nicht bestätigt.

kolisson
03.11.2007, 02:02
haste mal das datenblatt gelesen.?
der int ausgang vom PCF 8574 ist open drain.

brauchte also nen pullup... sonst geht dat nitt

hacker
03.11.2007, 11:38
Ich will die Interruptleitung verwenden. Die hängt über 10k an Vcc

mycroc
03.11.2007, 11:53
wird der PCF 8574 den von einem controler abgefragt, oder ist der Takt ohne bus aktivität vorhanden.

hacker
03.11.2007, 11:59
Mit PowerOn setze ich alle sein Pins als Eingang. Danach herrscht Ruhe auf dem Bus. Der Takt ist unverändert.

hacker
03.11.2007, 12:11
Den Takt hab ich nun wegbekommen. Es lag an einem Sharp Sensor in unmittelbarer Nähe. Komisch nur, dass ich auf der Versorgungsleitung auf dem Oszi nichts gesehen habe.

Der Interrupt funktioniert nun gut. Jedoch gibt er mir ständig den Wert 65, egal welcher Sensor für den Int verantwortlich war.
Das ist vllt. mal merkwürdig.

hacker
03.11.2007, 12:52
Was alles so 22µF Elkos nahe am PCF8574 alles bewirken können. Hab nun keine Probleme mehr damit. Ich bin davon ausgegangen 100nF reichen vollkommen. Aber anscheinend hab ich mich da getäuscht.

Vitis
03.11.2007, 14:05
Die Versorgungsspannung sollte immer stabilisiert werden,
auch und gerade bei Linearreglern ;)