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.
Warum brauchst du einen Optokoppler? GND ist doch sowieso verbunden.
> Warum brauchst du einen Optokoppler? GND ist doch sowieso verbunden.
Solange der ESP ausgeschaltet ist, könnten Ströme unkontrolliert über
die Datenleitungen fliessen.
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
Εrnst B. schrieb: > Da tun's dann auch stinknormale Transistoren/FETs, Das "T" in "FET" STEHT für Transistor. scnr
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
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.
Z.B. der 74LV1T34 kann 5V->3,3V und umgekehrt. Der Eingang kann auch bei VCC = 0V bis zu 7V ab.
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
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.
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
Ε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
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.
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
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 ;)
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.
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.
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.
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.
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
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.
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.
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.
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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.