Forum: Mikrocontroller und Digitale Elektronik suche nach geeignetem Optokoppler


von L.S. (lagerschaden)


Angehängte Dateien:

Lesenswert?

Ich muss einen ESP32-C3 mit einem PIC16LF1825 ein- und ausschalten, dazu 
nutze ich einen P-Channel MOSFET, das funktioniert schon gut.

Jetzt möchte ich aber noch Daten zwischen PIC und ESP und vice versa 
übertragen solange der ESP aktiv ist, es werden nur ein paar Bytes 
übertragen, 9600 Baud reicht locker.

Da brauche ich einen 2-Kanal Optokoppler, der sollte mit möglichst wenig 
Strom für die LED-Seite zufrieden sein, das ganze läuft nämlich über 
Monate outdoor.

Habt Ihr Vorschläge für einen geeigneten Optokoppler?

Anbei ein Prinzip-Schaltbild.

von Εrnst B. (ernst)


Lesenswert?

Warum brauchst du einen Optokoppler? GND ist doch sowieso verbunden.

von L.S. (lagerschaden)


Lesenswert?

> Warum brauchst du einen Optokoppler? GND ist doch sowieso verbunden.

Solange der ESP ausgeschaltet ist, könnten Ströme unkontrolliert über 
die Datenleitungen fliessen.

von Εrnst B. (ernst)


Lesenswert?

L.S. schrieb:
> Solange der ESP ausgeschaltet ist, könnten Ströme unkontrolliert über
> die Datenleitungen fliessen.

Aber die Datenleitungen kommen von deinem PIC, die kannst du 
kontrollieren, auf GND ziehen, und dann ist da nix mehr unkontrolliert.


Wenn du unbedingt Hardware dazwischenschalten willst, um dich vor 
Programmierfehlern im PIC zu schützen:
Da tun's dann auch stinknormale Transistoren/FETs, ganz ohne "Opto".

: Bearbeitet durch User
von Rainer W. (rawi)


Lesenswert?

Εrnst B. schrieb:
> Da tun's dann auch stinknormale Transistoren/FETs,

Das "T" in "FET" STEHT für Transistor.
scnr

von Frank K. (fchk)


Lesenswert?

L.S. schrieb:
> Ich muss einen ESP32-C3 mit einem PIC16LF1825 ein- und ausschalten, dazu
> nutze ich einen P-Channel MOSFET, das funktioniert schon gut.
>
> Jetzt möchte ich aber noch Daten zwischen PIC und ESP und vice versa
> übertragen solange der ESP aktiv ist, es werden nur ein paar Bytes
> übertragen, 9600 Baud reicht locker.
>
> Da brauche ich einen 2-Kanal Optokoppler, der sollte mit möglichst wenig
> Strom für die LED-Seite zufrieden sein, das ganze läuft nämlich über
> Monate outdoor.

Dafür brauchst Du keinen Optokoppler. Ein 74AVC2T245 ist hier die 
geeignete Wahl. Das ist ein Dual-Supply Levelshifter, d.h. er hat für A 
und B Seite eigene Spannungsversorgungen, und er schaltet sich 
hochohmig, wenn eine der beiden Spannungsversorgungen fehlt. Genau das 
willst Du ja.

https://assets.nexperia.com/documents/data-sheet/74AVC2T245.pdf

Alternative: SN74AXC2T245
https://www.ti.com/lit/ds/symlink/sn74axc2t245.pdf

Andere Möglichkeit: 74LVC2T241
https://www.ti.com/lit/ds/symlink/sn74lvc2g241.pdf
Der entscheidende Satz im Datenblatt:
"Ioff Supports Live Insertion, Partial-Power-Down Mode, and Back-Drive 
Protection". Sprich: wenn der Chip keine Versorgunsgspannung bekommt 
(die vom ESP), dann ist gesichert, das auch durch die Schutzdioden etc 
kein Strom fließt. Diese Eigenschaft findet man bei vielen LVC und AVC 
Chips.

fchk

von Frank K. (fchk)


Lesenswert?

Frank K. schrieb:

> Andere Möglichkeit: 74LVC2T241
Korrektur: 74LVC2G241

von Monk (roehrmond)


Angehängte Dateien:

Lesenswert?

Dem PIC genügen die 3,3V Pegel vom ESP32.

Und für die Richtung Tx Pic -> ESP Rx hast die vielleicht die 
Möglichkeit, den seriellen Port zu deaktivieren (auf LOW oder input). 
Dann reicht dort ein simpler Spannungsteiler aus zwei Widerständen.

: Bearbeitet durch User
von Peter D. (peda)


Lesenswert?

Z.B. der 74LV1T34 kann 5V->3,3V und umgekehrt.
Der Eingang kann auch bei VCC = 0V bis zu 7V ab.

von Rainer W. (rawi)


Lesenswert?

Frank K. schrieb:
> Dafür brauchst Du keinen Optokoppler. Ein 74AVC2T245 ist hier die
> geeignete Wahl.

Da ist es doch wohl einfacher, eine vernünftig geschriebene Software und 
evtl. einen Angstwiderstand zwischen PIC und ESP zu verwenden

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Monk schrieb:
> Dann reicht dort ein simpler Spannungsteiler aus zwei Widerständen.

Ein simpler Spannungsteiler verträgt sich aber ggf. nicht mit einem 
monatelangen Batteriebetrieb, insbesondere bei solch geringen 
Widerstandswerten sowie eine Schnittstelle, deren Ruhepegel auf High 
liegt und daher der Stromfluss durch den Spannungsteiler maximiert.

Die schon vorgeschlagenen Levelshifter begnügen sich hingegen mit 
wenigen Mikroampere, insbesondere bei solcher quasistatischen 
Belastungen.

von Rainer W. (rawi)


Lesenswert?

Monk schrieb:
> spannungsteiler.png

Andreas S. schrieb:
> Ein simpler Spannungsteiler verträgt sich aber ggf. nicht mit einem
> monatelangen Batteriebetrieb, ...


Beide uC laufen mit 3.3V, so dass ein Pegelwandler überhaupt nicht 
erforderlich ist. Wozu also die Diskussion?

L.S. schrieb:
> opto.png

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


Lesenswert?

Εrnst B. schrieb:
> L.S. schrieb:
>> Solange der ESP ausgeschaltet ist, könnten Ströme unkontrolliert über
>> die Datenleitungen fliessen.
> Aber die Datenleitungen kommen von deinem PIC, die kannst du
> kontrollieren, auf GND ziehen, und dann ist da nix mehr unkontrolliert.
Ich würde da einfach prüfen, was die tatsächlich nötige Bruttodatenrate 
ist, ggfs. mit der Baudrate nochmal runtergehen und dann je einen 4k7 
Widerstand in diese beiden Kommunikationsleitungen schalten. Dann wird 
der Strom auf 750µA begrenzt, falls die Software spinnt und die 
kontrollierte Umschaltung mal nicht so richtig klappt.

: Bearbeitet durch Moderator
von Gerald K. (geku)


Angehängte Dateien:

Lesenswert?

Der TxD der seriellen Schnittstelle des MC's liefert im Ruhezustand 
High-Potential (3,3V). Daher würde ich beim ESP die 
GND-Versorgungsleitung schalten. Dann kann sich der ESP nicht über den 
TxD versorgen. Es braucht den einen N-Kanale FET. Außerdem würde ich 
alle Leitungen zwischen den MC und den ESP mit einem Tiefpass 
entkoppelen, da durch den ESP sich HF in die Leitungen einkoppeln kann. 
Beispiel siehe Anhang.

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


Lesenswert?

L.S. schrieb:
> einen 2-Kanal Optokoppler, der sollte mit möglichst wenig Strom für die
> LED-Seite zufrieden sein
Optokoppler mit "möglichst wenig Strom" sind quasi zwingend auch "sehr 
langsam". Zu langsam für 9600.

Gerald K. schrieb:
> Daher würde ich beim ESP die GND-Versorgungsleitung schalten.
Dem µC den Bezugspunkt (auf den sich fast sämtliche Datenblattangaben 
beziehen) wegschalten ist in mehr als 99,9% eine ganz schlecht Idee.
Wehe, wenn es in diesem System noch irgendeine andere Verbindung in 
Richtung GND gibt, oder in Zukunft mal einer unbedarft so eine dazubaut.

: Bearbeitet durch Moderator
von Bauform B. (bauformb)


Lesenswert?

L.S. schrieb:
> Da brauche ich einen 2-Kanal Optokoppler, der sollte mit möglichst wenig
> Strom für die LED-Seite zufrieden sein, das ganze läuft nämlich über
> Monate outdoor.

ISO7021D (nicht ISO7021FD), braucht auf beiden Seiten je 8.8µA max. bei 
10kBaud, 153µA bei 1MBaud, 4.8µA typ. im Ruhezustand. Jeweils über den 
vollen Temperaturbereich, -55 bis +125°C wegen Klimakatastrophe ;)

von L.S. (lagerschaden)


Lesenswert?

Vielen Dank für die zahlreichen Antworten.

Ich werde erst mal PIC und ESP mit je einem Widerstand in den 
Datenleitungen verbinden und schauen, ob da "interessante" Ströme 
fliessen. Die 2. Option wäre der SN74LVC2G241, der 74AVC2T245 kommt 
wegen der Gehäuse nicht in Frage.

von Rainer W. (rawi)


Lesenswert?

Gerald K. schrieb:
> Der TxD der seriellen Schnittstelle des MC's liefert im Ruhezustand
> High-Potential (3,3V).

Solange der PIC den ESP abgeschaltet hat, kann er seine serielle 
Schnittstelle gefälligst ebenfalls abschalten und den Pin auf Gnd legen.
Dann ist der Ruhezustand 0V - fertig.

> Daher würde ich beim ESP die GND-Versorgungsleitung schalten.

Das ist wohl die denkbar schlechteste Idee.

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


Lesenswert?

L.S. schrieb:
> und schauen, ob da "interessante" Ströme fliessen.
Als Tipp: dazu musst du nur die Spannungen über den Widerständen messen 
und kommst mit I = U/R auf den Strom.

von Rainer W. (rawi)


Lesenswert?

L.S. schrieb:
> Ich werde ... und schauen, ob da "interessante" Ströme fließen.

Da brauchst du nicht groß zu gucken. Konfiguriere in deinem Programm den 
Pin geeignet. Dann fließen da auch keine "interessanten" Ströme. Ströme 
können nur fließen, wenn es eine Spannungsdifferenz gibt.

von Gerald K. (geku)


Lesenswert?

Rainer W. schrieb:
> Das ist wohl die denkbar schlechteste Idee.

Die sich in der Praxis bewährt hat. 9 Melder ohne Ausfälle und Störungen 
seit drei Jahre im Dauerbetrieb.

Ich bevorzuge N-Kanal-FETs.

N-Kanal-FETs (Field-Effect Transistors) weisen in der Regel bessere 
Schalteigenschaften auf als P-Kanal-FETs.

Z.B.: RDS(on) (Drain-Source Einschaltwiderstand): N-Kanal-FETs haben im 
Allgemeinen einen niedrigeren RDS(on), was bedeutet, dass sie bei 
gleichem Strom und gleicher Spannung weniger Verluste und eine höhere 
Effizienz aufweisen.

Wo liegen in Opto.png beim P-Kanal FET Drain und Source?

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


Lesenswert?

Gerald K. schrieb:
> N-Kanal-FET weisen in der Regel bessere
> Schalteigenschaften auf als P-Kanal-FETs.
Ob 30mOhm oder 3mOhm macht dann in der Praxis auch nichts mehr aus.

> Wo liegen in Opto.png beim P-Kanal FET Drain und Source?
Sinnvollerweise ist der FET so drin, dass die Bulkdiode normalerweise 
sperrt. Also hier mit der Source links an 3V3.

von Peter D. (peda)


Lesenswert?

Rainer W. schrieb:
> Beide uC laufen mit 3.3V, so dass ein Pegelwandler überhaupt nicht
> erforderlich ist. Wozu also die Diskussion?

Das stimmt natürlich. Beide Leitungen könne also direkt durchverbunden 
werden. Der PIC setzt vor dem Abschalten des ESP beide Leitungen auf 
Tristate und gut.
Man kann sich die Abschaltmimik aber auch sparen und den ESP in 
Deep-Sleep setzen.

von ArnoNym (bergler)


Lesenswert?

Gerald K. schrieb:
> Der TxD der seriellen Schnittstelle des MC's liefert im
> Ruhezustand
> High-Potential (3,3V). Daher würde ich beim ESP die
> GND-Versorgungsleitung schalten. Dann kann sich der ESP nicht über den
> TxD versorgen. Es braucht den einen N-Kanale FET. Außerdem würde ich
> alle Leitungen zwischen den MC und den ESP mit einem Tiefpass
> entkoppelen, da durch den ESP sich HF in die Leitungen einkoppeln kann.
> Beispiel siehe Anhang.

Die kann man stillegen.
Also Serielle wegkonfigurieren, TX-Pin Controllerseitig auf tristate 
oder LOW setzen, erst dann den ESP schalten.
Das wegkonfigurieren ist recht wenig Aufwand (sowohl Code als auch 
Laufzeit).

Einen Tiefpass gegen echte HF kann man in eine 9,6kBd UART problemlos 
reinbauen. z.B. RC mit 100kHz Grenzfrequenz müssten drin sein.
Auch die üblichen Ferritbeads kann man nehmen (auch zusätzlich), 
zumindest mit Augenmaß. 60Ohm@100MHz sollten die UART nicht weiter 
beeindrucken.

-> Mehr als ein bischen Hühnerfutter ist hier nicht nötig.

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


Lesenswert?

ArnoNym schrieb:
> wegkonfigurieren ist recht wenig Aufwand (sowohl Code als auch Laufzeit).
Laufzeit ist hier m.E. sowieso völlig irrelevant, weil kurz danach wegen 
des Abschaltens eh' gar nichts mehr geht. Ob das Abschalten 2µs länger 
dauert, darauf kommt es nicht an.

Peter D. schrieb:
> Der PIC setzt vor dem Abschalten des ESP beide Leitungen auf Tristate
> und gut.
Hmm, ich würde den Ausgang des PIC ebenfalls auf definierten Low-Pegel 
treiben und nicht, wie du vorschlägst, einen undefinierten, weil 
unversorgten ESP-Pin an einen undefinierten, weil hochohmigen 
PIC-Eingang anschließen. Falls der hochohmige Pin doch noch irgendwie 
ins Floaten kommt, dann fließt bei Vcc/2 ein Querstrom durch den 
Eingangstreiber des PIC-Pins.

: Bearbeitet durch Moderator
von Bruno V. (bruno_v)


Lesenswert?

Alternativ (und falls es eine längere Strecke zwischen den beiden ist) 
gehen auch je 2 Inverter (RX/TX vom PIC, RX/TX vom ESP).

Dann ist der Ruhepegel 0V (UART = Ruhepegel 1) und man man kann das 
Signal dazwischen auch einfach mitlesen.

Wirkglich gebraucht wird es nur vom PIC zum ESP (die andere Seite treibt 
sowieso keine Ströme in den RX des PICs). Also reicht ein Inverter am 
PIC. Wenn Du 2 Pins frei hast, kannst Du direkt einen Inverter des PICs 
benutzen.

Am ESP reicht dann auch ein Inverter, notfalls ein Single-Gatter.

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


Lesenswert?

Bruno V. schrieb:
> Wirkglich gebraucht wird es nur vom PIC zum ESP (die andere Seite treibt
> sowieso keine Ströme in den RX des PICs)
Da kommt eben wieder das ins Spiel, was ich geschrieben habe: der RX-Pin 
vom PIC ist ein hochohmiger Eingang. Und wenn der ESP stromlos ist, kann 
dessen Ausgangspin machen, was er will, weil diesr Zustand im Datenblatt 
nicht definiert ist. Es muss nicht sein, dass der TX-Pin des ESP 
definiert low ist. Und ein undefinierter Ausgang auf einen hochohmigen 
CMOS-Eingang ist eine ungünstige Kombination.

Also wäre meine Hardware 2 Serienwiderstände zwischen PIC und ESP (als 
i-Tüpfelchen würde ich diese Widerstände direkt am jeweiligen TX-Pin 
platzieren, dann könnte ich die falls nötig mit passenden Werten auch 
für eine Serienterminierung verwenden).

Und meine Software würde so aussehen:
1. UART im PIC abschalten
2. TC und RX Pins im PIC auf Ausgang schalten
3. Aan beiden Pins low ausgeben
3. Versorgung des ESP in der Highside abschalten

: Bearbeitet durch Moderator
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.