PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [ERLEDIGT] PCF8574: Ansteuerung Relais



schorsch_76
14.09.2014, 08:42
Hallo zusammen!

Ich hab mir eine 8 fach I2C Relaiskarte gebaut mit dem 8574. Als Ausgangstreiber hab ich einen BC548 genommen um das Relais am Collector zu schalten. Leider hat das Relais nicht angezogen, da nur 29 mA flossen. Dann hab ich mal das 8574 aus dem Sockel gehoben, und an die Basis 5V und einen 330Ohm Widerstand gepackt. Jetzt hat das Relais geschalten Ic = 49mA. Laut Datenblatt [1] kann der 8574 ja 25mA treiben. Über die Stromverstärkung des Transistors sollte das reichen um das Relais zum schalten zu bringen.

Auf Seite 13 des Datenblatt steht:


Io DC output current −± 25 mA


Hier der Plan des Ausgangstreibers:

29045

Hier der Plan des 8574:
29046

P0 - P7 Geht auf den "Signal Pin" der Treiberstufe aka. Basis des 548.

Bei meinem Test hab ich einen Widerstand mit 330 Ohm von +5V auf die Basis des Transistors gelegt und hatte so einen Basisstrom von (5V-0.55V)/330Ohm = 13.5mA. Also weit unterhalb dessen was der PCF8574 kann. Jetzt steh ich auf dem Schlauch warum der PCF8574 über den Transistor das Relais nicht zum schalten gebracht hat... :confused:

Bei meinem Test mit dem 330 Ohm Widerstand ist ein Ic von 49 mA geflossen. 10% dessen was der BC548 verträgt laut Datenblatt. Vom Kollector zu Gnd hatte ich 0.15V. Also volle Durchsteuerung und dementsprechend eine Pverlust von 0.15V*50mA + 0.55V * 13.5mA = 14.6 mW. Praktisch nichts.... Der BC548 wurde auch absolut nicht warm....

Meine bisherige Vermutung ist (welche auch passen wird): Arbeitspunkt des BC548 passt so nicht, direkt am Outputpin des PCF8574. Nur warum? Ib sollte doch hoch genug sein... oder macht hier mir der "quasi-bidirectional Mode" der Pins des PCF einen Strich durch die Rechnung? :confused:

[1] https://cdn-reichelt.de/documents/datenblatt/A300/PCF8574%23PHI.pdf

Gruß
Georg

TheDarkRose
14.09.2014, 09:08
Ich muss dich enttäuschen, der PFC8574 liefert kaum Strom im High-Zustand. Er kann 25mA im Low-Zustand als Open-Drain Ausgang schlucken..

Von https://www.mikrocontroller.net/articles/Port-Expander_PCF8574

Die Pins P0:7 können bis zu 25mA aufnehmen, aber nur gegen GND! Denn es handelt sich um Open Collektor Ausgänge. Ausgeben können die IOs nur ca. 100µA über den interen Pull-Up Widerstand

schorsch_76
14.09.2014, 09:33
Das hab ich auch gelesen, aber das Datenblatt sagt hier:



1 FEATURES
...
Latched outputs with high current drive capability for
directly driving LEDs
....


Ok, auf Seite 8 des Datasheets ist die schematische Darstellung der Ausgangsschaltung. Da rieselt es mir wie Schuppen vor den Augen ... :eek: ... der Treibt nur 100 µA im High State. Also muss ich aussen einen Pullup auf +5V legen und der PCF zieht den dann auf Low, wenn der Ausgang auf Low ist. Ein klassischer Fall von "DOH" wie Homer Simpson so schön sagt ....

Also werd ich die Schaltung so umbauen:

29047

Danke dir ... ich hab mich von der Zeile


Io DC output current −± 25 mA

und der Zeile bei den Features (siehe oben) blenden lassen....

Edit:
D.h. Ich hatte ca 100µA Ib, der Ic war bei 29 mA ... Der Genaue typ des BC548 ist BC548A. Der hat wohl 100 .. 220 Gain ... Das erklärts ...
Edit2:
Eine andere Lösung wäre einen BC548B oder C einzusetzen ... Die haben ein Gain von B(220...450) C(420..800). Dann könnte ich das Layout so lassen ....
Edit3:
Stabiler wäre sicher die Methode mit dem Pullup .... Die hängt nicht so sehr von der Streuung des Transistors ab, ich hätte einen deutlich höheren Ib und damit kann ich den Transistor besser in die Sättigung treiben....

TheDarkRose
14.09.2014, 09:48
Btw. wenn du ins Datenblatt schaust, dann stehen weiter hinten die Electrical Characteristics wo die High und Low Ströme angeführt sind.

schorsch_76
14.09.2014, 10:24
Ja da stehts ... Seite 14.

Ioh ... min 30 µA .. max 300 µA
Iol .... min 10mA ... typ 25 mA

Ich hab echt reingesehen ins Datasheet, aber das hab ich übsersehen :rolleyes:

Ich könnte auch einen kleinen N Kanal Mosfet nehmen, da der ja über die Spannung gesteuert wird und nicht wie ein NPN Transistor über den Strom. Kannst mir hier einen empfehlen? Ich brauche keinen hohen Frequenzen, da die Last ein Relais ist... Bei den Mosfets bin ich nicht geübt ... habe bisher eigentlich immer NPN/PNP eingesetzt.

BS107 ... TO92?? Könnte ich den hier direkt hier einbauen? Möchte halt das Board nicht neu machen ... falls es sich einfach vermeiden lässt ...
BS170 ... TO92 .. wäre der was?

EDIT:
Ok, ich hab nochmal nachgedacht und ich mach das mit einer Layoutänderung. Danke für die "Starthilfe" :)

schorsch_76
15.09.2014, 09:07
Ok. nach dem Umbau funktionierts. 1mA Basisstrom am BC548A über einen 4k7 Widerstand gegen 5V. Damit hab ich einen maximalen Ic vom 110mA bei hfe 110. Der Transistor hat eine Streuung von hfe 110 bis 220. Das Relais zieht 50 mA. Also dicke auf der sicheren Seite. Der PCF8574 zieht die Basis gegen Gnd, wenn der Ausgang Low ist. Das kann er leicht ab. 1mA.

Gruß
Georg