Abend zusammen, hätte mal gern Hinweise zu folgendem Problem, ich glaub ich steh da grad Verständnismäßig auf dem Schlauch: Ich benutz ne'n PCF8574A um damit einen Treiberbaustein (ULN280x Reihe) anzusteuern, der dann Relais schalten soll. Mein Problem ist: Der Treiberbaustein ULN2801A und auch ULN2803A schaltet immer durch, auch wenn ich beim PCF8574A die Ausgänge auf Low setze. Gemessen hab ich an den Ausgängen ca. 1.6 Volt, bei 5 Volt Betriebsspannung (wobei sich die Spannung am Ausgang defakto eigentlich nicht ändert, auch wenn ich die Betriebsspannung ändere. Jetzt ist natürlich die Frage warum das passiert ;) Meine Idee wär jetzt gewesen das es mit einem anderen Treiberbaustein klappt (etwa ULN2804A), der einen höheren Eingangswiderstand hat. Bin und jegliche Hinweise dankbar.
Hast Du bedacht, dass der ULN280x Open-Collector ist? Der Ausgang bleibt immer nahe 0V. Beschalte den Ausgang mit LED (+R), dann siehst Du was. Stefan
Sorry, hab ich vergessen zuzuschreiben: Ich mein die Spannung am Ausgang vom PCF8574, das ganze natürlich in der fertigen Schaltung gemessen, es gibt also keine offenen Ein und Ausgänge. Und dort liegt leider immer 1.6 Volt an. Zwischenzeitlich konnte ich das Problem weiter eingrenzen: Nehme ich den ULN280x aus der Schaltung, liegt am PCF8574 die jeweils korrekte Spannung für High und Low an.
Der PCF8574 hat doch open drain Ausgänge. Die internen Pull-Ups reichen nur, um CMOS oder TTL-Logik anzusteuern. Die ULN280x sind aber Transistor-Arrays und die wollen ordentlich Basisstrom haben, d.h. man muß externe Widerstände gegen VCC anschließen. Peter
Hmm, laut Datenblatt ist z.B. der ULN2804A intern mit 10.5k beschaltet und für CMOS Ansteuerung geeignet, möglicherweise klappts mit dem? Ich hab den für TTL Logik probiert (ULN2803A), der zwar mit ne'm Atmel Mega18 funktioniert, aber net mit dem PCF8574A.
spendier jedem PCF-Ausgang einen pullup, dann klappts auch mit dem ULN2803. 10k sollten genug STrom liefern.
oder halt den genannten ULN2804A, der dat schon intern hat ;) Kostet eh nur 0.42 und ist wesentlich einfach im Aufbau als 10 Widerstände einzulöten...
Leider zu früh gefreut. Der 04 hat einen Vorwiderstand, keinen Pullup. Stefan
Hallo Max Zunächst mal wirf nen Blick auf das Pic was ich angehangen hab. Dort hab ich mal die wesentlichen Schaltungsteile zusammengetragen. Is eigentlich ganz einfach. Links der Ausgang des 8574. Wie man sieht hat der nur ne 100uA Quelle nach Vdd und kann so nur wenig nach "oben" reissen. Er kann also nur kräftig nach Masse (Vss) ziehen. Will man dort Definierte Pegel mit etwas mehr "Energie" dann sind Pullups fällig aber das ist ja hier schon erwähnt worden. Nun zu den ULN 280x. Eines der Treiberschemata hab ich Rechts eingefügt. Der Unterschied zwischen 01-05 ist nur der Basiswiderstand am Eingang der bei 01 nicht vorhanden ist und bei 02-05 die Werte 10.5K / 2.7k / 10.5k und 1.05K beträgt. Der Rest ist immer gleich. Das Datenblatt zu den Tyapen 2801-05 gibt ja schon gut auskunft darüber welcher Typ für welche Ansteuerung gedacht ist. Also 01 Pmos/Cmos 02 15V Pmos 03 5V TTL/Cmos 04 6-15V Cmos/Pmos 05 High-TTL Du mußt nur entscheiden welchen du brauchst. Wie ebenfalls schon gesagt wurde ist der 280x als Open Collector ausgeführt und die Last kommt zwischen VCC und Ausgang. Er Schaltet also nach Masse. Da ich auch mit I2C Arbeite und natürlich ebenfalls kaum um den 8574 herumkomme und nochmals "kaum" (Ich weiß,wiederholungen sind unfein aber mir ist's ladde) um den 280x komme kann ich dir auch sagen das es mit Pullups und dem 2803 bestens klappt denn der 8574 gibt ja TTL aus also bekommt er auch die TTL-Taugliche Schaltstufe ;) Als Pullups hab ich oft 20K ohm genommen. Das ist nicht zuviel und nicht zuwenig. Wer Sicherer Fahren will der kann auch gerne bis zb. auf 5-10 K runtergehen. Wenn dir die Einzelwiderstände für die 8 Leitungen zu sperrig sind dann nimm doch ne Kaskade. Die gibt es zb. bei Reichelt unter den Bezeichnungen "SIL 9-8" in der E12 Reihe für 12 Cent das Stück. Die einzige andere Chance ohne auszukommen ist einen anderen I2C Portchip zu finden der schon Pullups drinne hat aber so aus der Hüfte fällt mir da nur der MAX 7311 ein. Der ist allerdings in 16 Bit ausgeführt und damit im 24 Poligen Dil.Gehäuse erhältlich aber dafür kann er von 2-5V Arbeiten,ist TTL-Tollerant und verträgt 17-32mA als Sink bzw. 41-31mA als Source am Port. Ob sich das aber lohnt mußt du wissen. Ich nutze jedenfalls gerne die Kaskaden und das dürfte ja nicht zuviel Arbeit sein oder ? ;)
Ratber: Danke für die sehr hilfreichen Hinweise. Gibt's denn auch Treiber in der Art ULN280x mit bereits integrierten PullUp Widerständen?
Und nach ne kleine Frage als Nachtrag: Hab mal testweise an einem der Ausgänge einen PullUp Widerstand mit 10k Ohm angeschlossen. Komischerweise funktioniert jetzt alles (also alle 8 Ausgänge) wie gewünscht, wie kommt das und klappt das in Zukunft auch sicher ;) ?
****** Ratber: Danke für die sehr hilfreichen Hinweise. Gibt's denn auch Treiber in der Art ULN280x mit bereits integrierten PullUp Widerständen? ******* so aus der Hüfte wüßte ich da jetzt nix aber ich vermute mal "Neín". ******* Und nach ne kleine Frage als Nachtrag: Hab mal testweise an einem der Ausgänge einen PullUp Widerstand mit 10k Ohm angeschlossen. Komischerweise funktioniert jetzt alles (also alle 8 Ausgänge) wie gewünscht, wie kommt das und klappt das in Zukunft auch sicher ;) ? ******** Yo,das das Funktioniert glaube ich gerne denn ohne Pullup geht es eben nicht mit nem 8574. Sicher ist das allemale. Warum ich 20K genommen habe ist einfach der Grund das ja permanent ein Strom durch die Widerstände fließt und sich alle Pullups in einer Schaltung ja irgendwo summieren und das kann dann schnell mal ein nennenswerter Wert werden. Also mal grob gerechnet (Nicht schlagen. Ich machs mit absicht so einfach) haste bei 10k Pullup und nem 2803 dann 10k+2.7k+7.2k+3k=22.9k zwischen Vcc und Vdd. Bei 5V sind das dann nach I=U/R also 5V/22.9k=0.22mA pro Port die permanennt fließen. Hört sich wenig an aber bei 8 Ports sind das schon 1.76mA Zugegeben,auch noch wenig aber auch kleinvieh macht mist. Bei deiner Relaisschaltung könnteste auch mit nem Widerstand und nem Kondensator etwas Leistung sparen und auch die Spulen schonen damit se nicht solange Braten. Mit 10k biste aber auf jedenfall auf der Sicheren Seite. Den Blockkondensator für die Relais nicht vergessen sonst ziehts dir eventuell beim Schalten die Versorgung runter.(Nur so am Rande)
Ich betreibe bistabile Relais um mir möglichst viel Leistung zu sparen, die Spulen brauchen also nur kurz Strom ;) Was ich jetzt noch net ganz verstanden hab: Es könnte also ausreichend sein für meinen kompletten PCF8574 einen einzigen PullUp Widerstand zu verwenden, oder muss ich (um sicherzugehen) für jeden Ausgang ne'n eigenen PullUp anlegen, damit die Pegel wirklich immer korrekt sind? Wegen dem Blockkondensator: Reicht da nicht schon die bereits vorhandene Schutdiodenschaltung im ULN280x ? Wie wäre ein Blockkondensator bei ne'm bistabilen Relais (2 Spulen, also einmal +6 V und zweimal GND für die jeweilige Spule) verdrahtet? Danke nochmal :)
Hallo Max Sorry für die Verspätung aber das Wetter hat mich ins Freie gezogen und ziu ner längeren Runde über die Landstraßen gezwungen ggg Zum Thema: **** Ich betreibe bistabile Relais um mir möglichst viel Leistung zu sparen, die Spulen brauchen also nur kurz Strom ; **** Tofte,so mache ich es auch immer wenn ich keine Halbleiterrelais verwenden will/Kann. Vorschlagen tu ich es einfach nicht mehr da mir dann immer gleich das Argument der Kosten entgegenschwappt (Die Leute wollen alles für 0 Kohle). ******* Was ich jetzt noch net ganz verstanden hab: Es könnte also ausreichend sein für meinen kompletten PCF8574 einen einzigen PullUp Widerstand zu verwenden, oder muss ich (um sicherzugehen) für jeden Ausgang ne'n eigenen PullUp anlegen, damit die Pegel wirklich immer korrekt sind? ******* Die Frage und den Denkfehler kannste schnell selber beantworten/erkennen wenn de mal Zeichnest was de vorhast ;) Wie willste alle 8 Leitungen mit einem Pullup versehen ohne sie zusammenzuschließen ? ;) geht also nicht. Nimm die Widerstandsmatrix die ich dir Empfohlen habe.Is das Optimalste. ***** Wegen dem Blockkondensator: Reicht da nicht schon die bereits vorhandene Schutdiodenschaltung im ULN280x ? ****** Die Schutzdioden Löschen nur die Induktionsspiten beim Abschalten der Relaisspulen damit diese nicht die Halbleiter killen.(Wenn du Pin 10 auch nach VCC gelegt hast.Sonst bringt es nix) Der Kondensator ist dafür da die örtliche Versorgungsspannung nicht beim Einschalten runterzuziehen. (Is sowas wie das Vergasertöpfchen am Automotor). Kannst ja mal alle Relais gleichzeitig Einschalten und dir ansehen was passiert. ;) ***** Wie wäre ein Blockkondensator bei ne'm bistabilen Relais (2 Spulen, also einmal +6 V und zweimal GND für die jeweilige Spule) verdrahtet? ***** ??? Versteh ich nicht genau wie du das meinst. Ein Guter Elko zwischen VCC und Pin 9 (Masse) vom 280x sollte voll ausreichen um alles abzudecken. Die Größe ist abhängig von dne Relaisdaten aber da kannste entweder Rechnen oder einfahc mal etwas rumprobieren. Ich kann dir ja mal ne Zeichnung machen wenne willst. Gruß Ratber
@Ratber: Sorry das ich auch so spät geantwortet hab. Danke für die vielen ausführlichen Hinweise, die mir sehr weitergeholfen haben :) Hab gestern auch das schöne Wetter ausgenutzt zum fahren :) Gruß Max
******* @Ratber: Sorry das ich auch so spät geantwortet hab. Danke für die vielen ausführlichen Hinweise, die mir sehr weitergeholfen haben :) Hab gestern auch das schöne Wetter ausgenutzt zum fahren :) Gruß Max ******** Yep,kein Problem. Hauptsache es hilft. Sonnentage muß man erstmal mitnehmen solange der Sommer sich noch versteckt gg
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.