PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [ERLEDIGT] PCF8574AP gibt komische Werte aus



RP6fahrer
05.02.2016, 10:00
Hallo Forum,
Ich möchte 6 PCF8574AP als Portexpander benutzen (entspricht ja 48 Ausgängen). Ich habe jetzt eine Schatung entwickelt, wo ich zum Teil mit den Ausgängen auf ULN2004 Verstärker gehe und mit anderen auf UND und Inverter Bausteine gehe (4081, 4069). Am Verstärker hängt jetzt noch keine Last. Theoretisch sollte ja alles funktionieren. Jetzt habe ich angefangen die Platine zu löten und habe erstmal nur eine Testschaltung fertig. PCF 1 geht mit einem Pin auf den Eingang von UND, PCF 2 geht mit 5 Ausgängen jeweils auf den Eingang vom INverter (4069) die Ausgänge der Inverter je auf ULN2004. Und PCF3 geht auf Eingänge verschiedener ULN2004. PCF 4-6 sind einfach im Sockel, aber es gibt dort keine weitere Anbindung irgendwo hin. Nur 5V, GND, SDA,SCL.
Jetzt starte ich das Testprogramm und es schaltet nacheinander alle Ports von einem PCF an und wieder aus. Jetzt tritt folgendes Phänomen auf. PCF 1, 4-6 schalten alle Ports auf 4,9V und halt wieder aus. PCF 2 alle Ausgänge auf nur 2,2V und PCF 3 schaltet nur Ausgang 4 auf 4,8V und alle anderen nur auf 2,2V. Jetzt habe ich gedacht, dass die vielleicht kaputt sind. Also habe ich sie mal rausgenommen und in die Sockel von PCF 5-6 gesteckt. Dort erfüllen si ganz normal ihre Funktion mit 4,9V auf den Ausgängen.
Also muss es doch einn schaltungstechnischen Fehler geben. Ich habe die Verbindungen genau geprüft. Es ist alles so, wie es sein soll. Keine Kurzschlüsse. Könnte es sein, dass sich die Ausgänge nicht mit 4069 und ULN2004 vertragen? Sollte ja eigentlich nichtder Fall sein.

Die Spannungsversorgung kommt übrigens von einem Arduino Uno board (SDA, SCL logischerweise auch). Ich habe keine extra Kondensatoren oder Pullup Widerstände verbaut. Leitungslänge bis Board etwa 15cm. Also keine langen Leitungen.

Ich hoffe ihr habt das Problem verstanden und vielleicht sogar ne super Lösung dafür. Ich bin wirklich ratlos, weil es ja eigentlich gehen sollte.
Wenn ihr noch mehr Infos braucht, einfach fragen.

Liebe Grüße,
Daniel

redround
05.02.2016, 10:29
Schaltplan + Foto vom Aufbau?

RP6fahrer
05.02.2016, 10:55
Hier mal der Schaltplan. Ich habe noch nen anderen, den habe ich aber mit Bleistift gemalt. Es sieht ungefähr so aus. Wie gesagt, ich habe auch noch nicht alle Pins von jedem verdrahtet, weil ich es erstmal testen wollte.
Habe mal noch weiter im Internet geforscht, aber noch nichts gefunden. Braucht es Pullup Widerstände an den Ausgängen von den PCF? Meine Widerstände sind verschollen, kann es mometan nicht ausprobieren.

redround
05.02.2016, 11:12
wir brauchen einen tatsächlichen und vollständigen Schaltplan von Deinem Aufbau. So fehlt zum Beispiel die Beschaltung der Adress-Pins auf Deinem Schaltplan. Mit "ich habe so eine ähnliche Schaltung" wird Dir keiner helfen können.

RP6fahrer
05.02.2016, 11:31
Die Schaltung ist ja vollständig. Mehr habe ich nicht verkabelt.
Adresspins:
PCF1 A0 = VDD, A1 & A2 = GND Dual B001
PCF2 A1 = VDD, A0 & A2 GND Dual B010
PCF3 A0, A1 & A2 = VDD Dual B111
PCF4 A0, A1 & A2 GND Dual B000
PCF5 A0 & A1 = VDD, A2 GND Dual B011
PCF6 A2 = VDD, A0 & A1 GND Dual B100
Mit ungefähr meinte ich nur, dass die Bleistift Zeichnung eine Skizze ist.

Vielleicht noch zur Erklärung: Ich möchte mit die Lichtsignale meiner Modellbahn steuern und damit möglichst wenig Ports benutzen. Mein ISP Programmer ist abgschmiert und hat alle meine Mikrocontroller gekillt. Benutze daher noch die Sachen, die ich auf Reserve habe.

Danke für deine Hilfe.

Holli_
05.02.2016, 14:25
Also muss es doch einn schaltungstechnischen Fehler geben.


Ja, nämlich das du mit einem PCF8574 einen ULN... treiben willst. Das ist ein ganz schlechtes Schaltungsdesign. Der PCF liefert bei H-Pegel nur max. 100µA Strom, das ist für die ULNs zu wenig. Abhilfe schafft ein Pull-up Widerstand am PCF-Pin im unteren einstelligen Kiloohm-Bereich.

Pali64
18.02.2016, 13:06
Du musst bei jedem Ausgang vom PCF einen Pullup Widerstand legen (Mindestens 4k7) besser aber 1,2 KOhm Gibt steilere Ein / Aus flanken, dann passt das ;)
Vergiss aber nicht jeden anders zu adressieren!
Um doppelt so viele Adressen zu verwenden kannst du zusätzlich den PCF8574P verwenden,
der ist identisch mit dem PCF8574AP außer das er eine andere I²C Basisadresse hat ;)

Gruß Pali64

redround
18.02.2016, 18:59
(Mindestens 4k7) besser aber 1,2 KOhm
da solltest Du nochmal kritisch drüberlesen ... wenn MINDESTEN 4,7 kOhm, dann ist 1,2 kOhm nicht wirklich besser ;)

Pali64
19.02.2016, 08:22
Hallo redround,

Danke für dein Hinweis.
Ja das liegt natürlich auf der Seite des Betrachters was ist Min was ist Max???
Natürlich meine ich mit Mindestens 4,7K das der Widerstand mindestens 4,7 K haben muss das heißt bezogen auf die Leistung.
Den mit 4,7k fliesen gerade mal ca 550µA Strom, was das Minimum ist das der ULN2004 überhaupt sauber anspricht.
Bei 500Ohm ist der Strohm für den PCF8574xx zu hoch, da geht die einschaltflanke in die Knie. Deshalb bezog ich das Mindestens auf den Strom der fliest.
Also 800Ohm Maximalstrom für diese Schaltung, 4k7 Minimalstrom für die Schaltung!

Denke halt manchmal etwas um die Ecke deshalb gut das du mich darauf hinweist, Danke.

Also sagen wir so:
Am besten nimmst du einen 1,2k Widerstand den das ergibt die ideale Ein/Aus Flanke (Spielt natürlich eine rolle was hinten am ULN2004 hängt bei Lampen ist dies nicht so kritisch).
Aber bei Verbrauchern wie Spulen kann der ULN2004 durch die Flache Einschaltflanke zu langsam einschalten und dadurch bei Hoher last sogar Abrauchen.

Gruss Pali64

RP6fahrer
23.02.2016, 16:06
Vielen Dank euch beiden für die Hilfe. Ich habe da jetzt diese Widerstände eingebaut und es funktioniert fehlerfrei. Danke nochmal. Daran hatte ich gar nicht gedacht.

Gruß,
Daniel