Forum: Mikrocontroller und Digitale Elektronik PCF8574 Optokoppler Input/Output


von Roger (rbritt)


Angehängte Dateien:

Lesenswert?

Ich bin gerade dabei, ein Schema für einen optisch isolierten PCF8574 
Eingang und Ausgang zu erstellen. Dazu möchte ich gerne euren Input 
abholen, da ich ein Newbie in Sachen Elektronik bin.

Die Anforderungen an die Schaltung sind:
- Inputs mit 5-30 V
- Outputs mit 12 V um SSR's schalten zu können (200mA pro Kanal reichen)
- Inputs sowie Outputs sollen optisch isoliert sein
- Status der Output sowie Input via LED anzeigbar

Im Anhang findet ihr meinen ersten Entwurf. Was meint ihr dazu? Was kann 
ich verbessern?

Grossen Dank an alle Wortmeldungen.

von Arno R. (arnor)


Lesenswert?

Roger schrieb:
> Im Anhang findet ihr meinen ersten Entwurf. Was meint ihr dazu?

Der Schaltungsteil "Output 12V" macht einfach gar nichts, außer 
ordentlich Ruhestrom verbrauchen. Auch dann, wenn man anstelle der LED 
einen OK-Transistor an den Eingang schaltet.

von Arno R. (arnor)


Angehängte Dateien:

Lesenswert?

Ich würde es mal so wie im Anhang versuchen.

von Roger (rbritt)


Angehängte Dateien:

Lesenswert?

Danke Arno, das habe ich auch gerade gemerkt. Der Optokoppler ist für 
den Ausgang noch falsch herum angeschlossen. Das habe ich im neuen 
Schema v2 korrigiert.

von Roger (rbritt)


Angehängte Dateien:

Lesenswert?

Nun habe ich gleich noch den Output von dir Arno aufgenommen. Gibts noch 
weitere Vorschläge?

von Ron-Hardy G. (ron-hardy)


Lesenswert?

woher soll Q3 seinen Basisstrom zum Aufsteuern bekommen?

von Wastl (hartundweichware)


Lesenswert?

Roger schrieb:
> Gibts noch weitere Vorschläge?

Das Wort "Schema" in diesem Zusammenhang grundsätzlich durch das
Wort "Schaltplan" ersetzen. Sonst biegt es dem geneigten Leser
die Zehennägel hoch.

von Arno R. (arnor)


Lesenswert?

Roger schrieb:
> Nun habe ich gleich noch den Output von dir Arno aufgenommen.

Nein, hast du nicht.

von Gerd E. (robberknight)


Lesenswert?

Roger schrieb:
> Gibts noch
> weitere Vorschläge?

Der Eingang funktioniert am PCF8574 so nicht. Der bräuchte für Deine 
Konfiguration einen integrierten Pulldown damit er Low erkennen kann. 
Den hat er aber nicht.

Daher: Einen festen Pullup auf 3V3 setzen, mit dem Optokoppler-Ausgang 
dann auf GND ziehen.

von Christian M. (christian_m280)


Angehängte Dateien:

Lesenswert?

Genau, etwa so wie im Anhang. Schau mal das Innenschaltbild an, 
vielleicht brauchts den externen Widerstand gar nicht...

Gruss Chregu

von Sherlock 🕵🏽‍♂️ (rubbel-die-katz)


Lesenswert?

Für den großen Eingangsspannungsbereich würde ich Konstantstromdioden 
verwenden.

Für die Ausgänge könnten Motortreiber günstiger sein. Besonders wenn sie 
einen integrierten Schutz gegen Überlast haben.

: Bearbeitet durch User
von Roger (rbritt)


Angehängte Dateien:

Lesenswert?

Danke für euren Input. Dank euch konnte ich wieder einiges lernen. Hier 
also der aktuelle Schaltplan V4 mit:
* Eingang nun mit Pullup anstatt Pulldown
* Ansteuerstrom Q3 korrigiert. Hatte den Input von Arno falsch 
umgesetzt, sorry!

@Sherlock: Wie würden denn die Konstantstromdioden beim Eingang 
eingesetzt werden? Und wie die Motortreiber als Pullup-Pulldown Ersatz?

von Sherlock 🕵🏽‍♂️ (rubbel-die-katz)


Lesenswert?

Roger schrieb:
> Wie würden denn die Konstantstromdioden beim Eingang eingesetzt werden?

An Stelle von R6. Und R5 entfällt.

> Und wie die Motortreiber als Pullup-Pulldown Ersatz?

Ich meinte die Motortreiber als Ersatz für deine gesamte 
Ausgangsschaltung (der gestrichelt umrahmte Block).

von Arno R. (arnor)


Lesenswert?

Roger schrieb:
> Hier also der aktuelle Schaltplan V4

Du kannst im Prinzip auch Q3 und R45 weglassen und statt dessen den 
OK-Transistor an die Stelle von Q3 setzen. Damit wird das Signal 
invertiert und du bist mit dem Ausgangsstrom (die gewünschten 200mA) 
wegen des CTR des OK etwas stärker limitiert. So wie jetzt gezeichnet 
kannst du richtig viel Ausgangsstrom machen, indem du R2 entsprechend 
niederohmig machst.

: Bearbeitet durch User
von Loco M. (loco)


Lesenswert?

Roger schrieb:
> Danke für euren Input. Dank euch konnte ich wieder einiges lernen. Hier
> also der aktuelle Schaltplan V4 mit:

Zeichne deine Eingangsschaltung inklusive IR-Diode des Optokopplers auf 
ein separates Stück Papier, und schreibe an jedes Bauteil die Spannung, 
die sich einstellt, wenn du 5V an den Eingang legst. Welcher Strom wird 
wohl durch den Optokoppler fließen?

: Bearbeitet durch User
von Roger (rbritt)


Lesenswert?

Loco M. schrieb:
> Roger schrieb:
>> Danke für euren Input. Dank euch konnte ich wieder einiges lernen. Hier
>> also der aktuelle Schaltplan V4 mit:
>
> Zeichne deine Eingangsschaltung inklusive IR-Diode des Optokopplers auf
> ein separates Stück Papier, und schreibe an jedes Bauteil die Spannung,
> die sich einstellt, wenn du 5V an den Eingang legst. Welcher Strom wird
> wohl durch den Optokoppler fließen?

~40uA? Ja, das ist wohl etwas zu wenig für den Optokoppler...

von Gerd E. (robberknight)


Lesenswert?

Arno R. schrieb:
> Du kannst im Prinzip auch Q3 und R45 weglassen und statt dessen den
> OK-Transistor an die Stelle von Q3 setzen. Damit wird das Signal
> invertiert

Dass das Signal invertiert wird wäre für mein Verständnis ein Problem:

Er verwendet Optokoppler, will also die Spannungsversorgung zwischen dem 
PCF8574 und den 12V Ausgang trennen. Bei Deinem Vorschlag mit 
Optokoppler statt Q3 wäre es jetzt so dass der Ausgang auf 12V liegt 
wenn zwar die 12V da sind, die Spannungsversorgung vom PCF8574 aber 
nicht - oder der PCF8574 noch per I2C kein Signal bekommen hat den 
Ausgang auf Low zu ziehen, z.B. weil der Mikrocontroller grad im 
Bootloader ist.

Normalerweise baut man so Zeug so, dass es ohne explizites Schaltsignal 
im sicheren Zustand ist. Und das dürfte in den meisten Fällen eben Low 
sein statt 12V.

von Bauform B. (bauformb)


Angehängte Dateien:

Lesenswert?

Hier gibt's noch eine witzige Eingangsschaltung, die schaltet typisch 
bei 2.5V. Das wäre mir zu wenig. Andererseits sind das die normalen 50% 
von 5V. Irgendwie ist der Bereich einfach zu groß. Der PNP muss auch bis 
zu 150mW verheizen.

von Arno R. (arnor)


Lesenswert?

Gerd E. schrieb:
> Arno R. schrieb:
>> Du kannst im Prinzip auch Q3 und R45 weglassen und statt dessen den
>> OK-Transistor an die Stelle von Q3 setzen. Damit wird das Signal
>> invertiert
>
> Dass das Signal invertiert wird wäre für mein Verständnis ein Problem:

Naja, dann tauscht man eben die Positionen von Q3 (Fototransistor) und 
R2.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Roger schrieb:
> Outputs mit 12 V um SSR's schalten zu können
Dafür brauchst du keinen Push-Pull-Ausgang. Ein simpler Highside- oder 
Lowside-Treiber reicht da aus. In der Automatisierungswelt sind 
Highside-Treiber "normal".

> (200mA pro Kanal reichen)
Das erscheint mir 10-fach überdimensioniert.

> Was meint ihr dazu?
Woher kommen die 3V3 für den µC? Sind die tatsächlich potentialgetrennt 
aus einem eigenen Netzteil? Oder werden die über einen Schaltregler aus 
den 12V erzeugt?

Bauform B. schrieb:
> schaltet typisch bei 2.5V. Das wäre mir zu wenig. Andererseits sind das
> die normalen 50% von 5V.
Aber grade mal 8% von 30V...

> Irgendwie ist der Bereich einfach zu groß.
Ich sehe diese Anforderung auch spannend, denn bei einer "üblichen" SPS 
interpretiert ein 24V-Eingang eine Spannung von 3V bei einem Strom von 
1mA noch als "low". Erst bei 8V und 3mA wird dann sicher ein "high" 
erkannt.

Roger schrieb:
> SSR's
Dazu eine Anmerkung: die Mehrzehl von "das Relais" ist "die Relais". 
Also wird aus "einem Solid State Relais" dann auch einfach "mehrere 
SSR".

Dann würde nämlich das Problem mit dem unnötigen und fehlerhaften 
Apostrophen nicht auftreten. Nicht umsonst hat der einen eigenen Namen: 
http://www.deppenapostroph.info/

von Roger (rbritt)


Angehängte Dateien:

Lesenswert?

Überarbeitete Version V5:
* Input ausgetauscht mit Transistor und Widerstand als "Constant Current 
Diode", um den weiten Spannungsbereich zu ermöglichen.

Wie ich den Ausgang vereinfachen kann, habe ich nicht kapiert. Gerd's 
Bemerkung, dass während des Boot-Vorgangs des uC der Ausgang auf GND 
gezogen wird, ist sicher sinnvoll. Nach meinem Verständnis wird das bei 
der aktuellen Beschaltung so gemacht. Aber was kann ich nun auf der 
Ausgangsseite vereinfachen?

Wie siehts nun mit dem Eingang aus? Funktioniert das so? Oder soll ich 
besser eine Constant Current Diode einsetzen? Auf welchen Strom soll ich 
da begrenzen?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Der Schaltplan ist im Bereich um den U9 völlig unleserlich. Es gibt 
extra Schaltplansymbole für alle Arten von Transistoren. Verwende sie!

Roger schrieb:
> Funktioniert das so?
Welcher Strom fällt bei 20mA an einem 47mOhm Widerstand ab?
Richtig: grade mal 1 einziges mV. Das juckt den Transistor überhaupt 
nicht. Insofern ist dieser Widerstand völlig nutzlos oder völlig falsch 
dimensioniert.

> Wie ich den Ausgang vereinfachen kann, habe ich nicht kapiert
Machs wie alle anderen mit einem NPN und schalte den GND.

Oder nimm einen Highside-Smart-Switch. Der kann ist dann auch gleich 
kurzschlussfest und überlebt auch sonstige Mishandlungen.

> Oder soll ich besser eine Constant Current Diode einsetzen?
Ja, tu das.

> Auf welchen Strom soll ich da begrenzen?
Nimm eine CRD mit 10mA.

: Bearbeitet durch Moderator
von Arno R. (arnor)


Angehängte Dateien:

Lesenswert?

Roger schrieb:
> Wie ich den Ausgang vereinfachen kann, habe ich nicht kapiert. Gerd's
> Bemerkung, dass während des Boot-Vorgangs des uC der Ausgang auf GND
> gezogen wird, ist sicher sinnvoll. Nach meinem Verständnis wird das bei
> der aktuellen Beschaltung so gemacht. Aber was kann ich nun auf der
> Ausgangsseite vereinfachen?

Siehe Anhang.

von Wastl (hartundweichware)


Lesenswert?

Roger schrieb:
> Gerd's Bemerkung

Auch das da oben ist ein Deppenapostroph.

Lothar M. schrieb:
> Nicht umsonst hat der einen eigenen Namen:
> http://www.deppenapostroph.info/

von Εrnst B. (ernst)


Angehängte Dateien:

Lesenswert?

Wastl schrieb:
> Roger schrieb:
>> Gerd's Bemerkung
>
> Auch das da oben ist ein Deppenapostroph.

Nach den neuen Rechtschreibregeln des Recht'schrei'brat's ist der 
Deppenapostroph in Eigennamen jetzt erlaubt.
Haben wohl eingesehen, dass die Deppen in der Überzahl sind.

Seite 150:
https://www.rechtschreibrat.com/DOX/RfdR_Amtliches-Regelwerk_2024.pdf

Bleibt die Frage, ob "Gerds Bemerkung" als Eigenname der Bemerkung 
durchgeht.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Roger schrieb:
> Gerd's Bemerkung, dass während des Boot-Vorgangs des uC der Ausgang auf
> GND gezogen wird
In der Praxis ist es eher so, dass während des Bootens ein Ausgang 
inaktiv sein sollte. Also weder "high" noch "low". Denn je nachdem, 
was das für ein Ausgang ist und was dort wie angeschlossen ist, ist "auf 
GND" schalten zugleich ein "Einschalten eines Aktors".

Und genau dieses "inaktiv setzen" geht eben mit den üblichen 
"einseitigen" Treibern, die aktiv nur in 1 Richtung schalten können: 
entweder Highside nach 12V/24V/sonstwas oder Lowside nach GND.

Εrnst B. schrieb:
> ob "Gerds Bemerkung" als Eigenname der Bemerkung durchgeht.
Eher nicht, denn das ist wie "Evas Brille" oder "Peters Mutter".

Beitrag #7798346 wurde vom Autor gelöscht.
Beitrag #7798351 wurde vom Autor gelöscht.
von Roger (rbritt)


Angehängte Dateien:

Lesenswert?

Neue Version V6:
* Eingang: CRD 10mA anstelle von Transistor mit Widerstand. Habe ich den 
richtig platziert? Sodass auch die IR Diode des Optokopplers schaltet?
* Ausgang: Nach Input von Arno

Für den Ausgang möchte ich bei diesem Push-Pull bleiben, probiere dann 
später mal die High-side Switches aus.

Bei einem nicht initialisierten Port auf GND zu gehen, passt so für 
meine Anwendung.

Ich sehe schon, dass für euch die Rechtschreibung sehr wichtig ist. 
Möchte mich hier aber auf das Thema konzentrieren. Danke.

von Maxim B. (max182)


Angehängte Dateien:

Lesenswert?

Roger schrieb:
> Überarbeitete Version V5:

Es gibt noch Fehler und Ungenauigkeiten. Statt sie einzeln zu richten, 
habe ich meine Variante gemacht:

H11L1M ist ein Optokoppler mit Hysteresis und 1,6 mA Schwellstrom,
relativ schnell, Vcc von 3 bis 16 Volt. Für eine logische Schaltung
besser als Phototransistor-Optokoppler. Gleich wie PC900 von Sharp.
Statt Si2343DS passen auch andere P-MOSFETs mit V GS max über 16 Volt.
CL05M6F ist eine Stromquelle für 6 mA, die gibt es billig bei Mouser,
aber es kann auch eine andere sein.

R2 und R3 kann man etwas kleiner wählen, Geschwindigkeit auf Kosten von
Strom. Beide parallel gerechnet sollten nicht kleiner als 270 Ohm sein
(z.B. R2=1k und R3=390 Ohm).

von Maxim B. (max182)


Lesenswert?

Roger schrieb:
> Neue Version V6:
Überleg mal, was passiert mit LED9 bei Input 30 V DC? Kann LED wirklich 
260 mA durchhalten? Und Eingangs-LED von U2?

Beitrag #7798370 wurde vom Autor gelöscht.
von Sherlock 🕵🏽‍♂️ (rubbel-die-katz)


Lesenswert?

Roger schrieb:
> Wie ich den Ausgang vereinfachen kann, habe ich nicht kapiert.

Schau dir mal das Datenblatt vom TC4423 an. Der hat 2 Eingänge mit 
Logikpegeln (passend zum PCF8574) und 2 Ausgänge mit bis zu 18V und 
(kurzzeitig) bis zu 1,5A.

Kostet bei Mouser ca. 1,60€ wenn man 100 Stück nimmt. Bei Aliexpress ist 
er auch in kleineren Mengen noch billiger.

: Bearbeitet durch User
von Roger (rbritt)


Angehängte Dateien:

Lesenswert?

Sherlock 🕵🏽‍♂️ schrieb:
> Schau dir mal das Datenblatt vom TC4423 an. Der hat 2 Eingänge mit
> Logikpegeln (passend zum PCF8574) und 2 Ausgänge mit bis zu 18V und
> (kurzzeitig) bis zu 1,5A.

Habe mal die Verwendung dieses Drivers ohne optische Trennung 
gezeichnet. Ist die Verwendung dieses Drivers wirklich so einfach? Oder 
fehlt hier noch etwas?
Macht bei der Verwendung eines Drivers eine galvanische Trennung 
überhaupt Sinn?

von Christian M. (christian_m280)


Lesenswert?

Den 20p brauchst Du nicht, der ist schon drinn!

Roger schrieb:
> Macht bei der Verwendung eines Drivers eine galvanische Trennung
> überhaupt Sinn?

*Ergibt...
Ja, mehr Strom, Push-Pull. Habe jetzt den Thread nicht mehr im Kopf was 
Du brauchst.

Gruss Chregu

von Rainer W. (rawi)


Lesenswert?

Roger schrieb:
> Macht bei der Verwendung eines Drivers eine galvanische Trennung
> überhaupt Sinn?

Bei normalen Treibern und passender Verdrahtung ist die überflüssig. 
Aber es kommt natürlich darauf an, welchen Zweck du damit verfolgst, 
insbesondere wie  die Potentiale von Motor und Steuerlogik zueinander 
liegen.

von Sherlock 🕵🏽‍♂️ (rubbel-die-katz)


Lesenswert?

Roger schrieb:
> Ist die Verwendung dieses Drivers wirklich so einfach?

Ja ich denke schon. Allerdings würde C4 und C5 weg lassen. Sie belasten 
die Ausgänge unnötig.

> Macht bei der Verwendung eines Drivers eine galvanische Trennung überhaupt Sinn?

Braucht man wohl nur sehr selten. Dann muss der Treiber ein eigenes 
Netzteil haben. Die beiden Kanäle des IC hängen natürlich zusammen.

: Bearbeitet durch User
von Loco M. (loco)


Lesenswert?

Roger schrieb:
> Macht bei der Verwendung eines Drivers eine galvanische Trennung
> überhaupt Sinn?

https://de.wikipedia.org/wiki/Galvanische_Trennung

Wenn du diesen Artikel verstanden hast, dann kannst du dir deine Frage 
selbst beantworten.

Weiter oben wurde schon mal die Frage gestellt, die du nicht beantwortet 
hast, ob die 3,3V und 12V aus einem Netzteil abgeleitet werden. Falls 
ja, hast du keine galvanische Trennung und die Optokoppler erübrigen 
sich.

Pin 13 (INT#) des PCF8574 ist ein Ausgang, und darf nicht auf GND 
gehängt werden.

von Gerd E. (robberknight)


Lesenswert?

Loco M. schrieb:
> https://de.wikipedia.org/wiki/Galvanische_Trennung
>
> Wenn du diesen Artikel verstanden hast, dann kannst du dir deine Frage
> selbst beantworten.

richtig

> Pin 13 (INT#) des PCF8574 ist ein Ausgang, und darf nicht auf GND
> gehängt werden.

falsch. Das ist ein Open-Drain-Ausgang, kein Push-Pull. Der PCF8574 kann 
den nur auf GND ziehen. Wenn man den verwenden möchte muss man extern 
einen Pullup dranhängen. Wenn man ihn nicht verwenden möchte kann man 
ihn fest mit GND verbinden.

Das ist bei Interrupt-Ausgängen so üblich damit man mehrere gemeinsam an 
eine Leitung hängen kann (Wired-OR).

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.