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?
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.
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.
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.
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.
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?
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...
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.
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.
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?
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.
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/
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?
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?
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?
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.
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.
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).
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.
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?
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.
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.
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).