suche nach geeignetem Optokoppler

OP #7694320

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

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

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

Gast #7694402

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.

Angehängte Dateien:
(Firma: Schweigstill IT) Persönliche Seite #7694444

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

Ε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

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

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

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

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.

#7694553

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.

#7694591

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

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

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

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

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

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

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

Eine eigene Frage? Dieser Thread ist über 2 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.