suche nach geeignetem Optokoppler

OP #7694320
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.

Angehängte Dateien:
#7694327
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".

#7694374
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

(Firma: Schweigstill IT) Persönliche Seite #7694444
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.

Moderator (Firma: Titel) Persönliche Seite #7694454
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.

#7694461
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.

Angehängte Dateien:
Moderator (Firma: Titel) Persönliche Seite #7694466
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.

#7694475
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 ;)

#7694498
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.

#7694591
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?

Moderator (Firma: Titel) Persönliche Seite #7694825
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.

#7694990
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.

#7696391
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.

Moderator (Firma: Titel) Persönliche Seite #7696445
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.

#7696467
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.

Moderator (Firma: Titel) Persönliche Seite #7696515
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
  4. Versorgung des ESP in der Highside abschalten

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren