Hallo! Ich möchte an meinem ESP32 über den seriellen Port einem Dritten Modbus über eine RS485 Schnittstelle bereitstellen. Häufig wird dazu scheinbar der MAX485 eingesetzt. Ich muss allerdings sicherstellen, dass der ESP32 keinen Schaden nehmen kann, weil die Dritte Person am A/B-Eingang Unfug treibt. Dazu gehört z.B., dass dort einfach mal 24V DC oder auch 230V AC angelegt wird (also z.B. versehentlich eine Phase aus dem Wechselstromnetz). Mein Ansatz wäre hier, einen digitalen Isolator zu verwenden, der eine galvanische Trennung integriert hat. Damit habe ich einerseits die Spannungsversorgung der Schnittstelle von der Spannungsversorgung von meinem µC isoliert, andererseits kann über die digitalen Ein- und Ausgänge nichts Schädliches an den RX/TX-Port vom µC kommen. Texas Instruments hat hier scheinbar eine Komplettlösung (full duplex): https://www.ti.com/lit/ds/symlink/isow1412.pdf Oder das hier als half duplex: https://www.ti.com/lit/ds/symlink/isow7821.pdf Drei konkrete Fragen dazu: 1. Würde der ISOW7821 (half duplex) den µC so schützen, wenn man versehentlich 230V AC an den A- oder B- Eingang anlegt? 2. Kann man beim MAX485 bei Anschluss einer galvanisch getrennter Spannungsversorgung das Gleiche erreichen oder hätte man weiterhin das Problem, dass die falsch angelegte Spannung über die DI/DO-Ausgänge auf den µC übertragen würde? In der Dokumentation des MAX485 wird auf den DC/DC-Wandler MAX253 verwiesen. Wenn man die Doku des MAX253 liest, dann gibt es dort Beispiele einer Trennung über Optokoppler, was recht aufwendig erscheint. https://www.analog.com/media/en/technical-documentation/data-sheets/max253.pdf 3. Die Frage mag basic sein, aber ich bin ein Elektrotechniker: Was heißt in all diesem Zusammenhang "Spannungsfestigkeit"? Das hat wohl erst einmal nichts direkt mit galvanischer Trennung zu tun. Aber gibt es dort eine Verbindung zwischen diesen Themen?
RS-485 ist ein definierter differenzieller Datenbus die Ansteuerung des Transceiver kannst Du galvanisch per Optokoppler trennen ... mit 230V wäre der Transceiver dann aber dennoch hinüber. Auch müsstest Du dann die Spannungsversorgung des Transceivers vom Rest der Schaltung trennen.
Sebastian E. schrieb: > 2. Kann man beim MAX485 bei Anschluss einer galvanisch getrennter > Spannungsversorgung das Gleiche erreichen oder hätte man weiterhin das > Problem, dass die falsch angelegte Spannung über die DI/DO-Ausgänge auf > den µC übertragen würde? Nur die Spannungsversorgung zu trennen ist sinnlos und obendrein auch nicht möglich, denn die Masse der Spannungsversorgung des RS485-Treibers muss auch mit dem µC verbunden werden, die ist das Bezugspotential für alle Signale. Du hast effektiv zwei Möglichkeiten: Verwende einen RS485-Treiber mit integrierter galvanischer Trennung oder verwende einen RS485-Treiber mit separater galvanischer Trennung. In beiden Fällen brauchst Du einen galvanisch isolierten DC/DC-Wandler zur Spannungsversorgung. Ein Beispiel für einen Treiber mit integrierter galvanischer Trennung ist das hier: https://www.analog.com/en/products/adm2587e.html Vorteil: Einfacheres Schaltungsdesign. Nachteil: Hoher Preis, der auch bei Reparaturen wieder anfällt. Die verbreitete Alternative besteht aus drei Optokopplern und einem herkömmlichen RS485-Treiber wie dem MAX485. Vorteil: Niedriger Preis, auch bei Reparaturen Nachteil: etwas aufwendigeres Schaltungsdesign. Eine weitere Möglichkeit besteht in der Verwendung eines digitalen Isolators und eines herkömmlichen RS485-Treibers wie dem MAX485. Ein solcher digitaler Isolator ist beispielsweise der hier: https://www.analog.com/en/adum342e Vorteil: Einfacheres Schaltungsdesign Nachteil: Hoher Preis.
Sebastian E. schrieb: > 3. Die Frage mag basic sein, aber ich bin ein Elektrotechniker: Was > heißt in all diesem Zusammenhang "Spannungsfestigkeit"? Das hat wohl > erst einmal nichts direkt mit galvanischer Trennung zu tun. Aber gibt es > dort eine Verbindung zwischen diesen Themen? Ab einer bestimmten Spannung schlägt das Ding durch, eine 380KV Leitung kannst du nicht auf der einen Seite anschließen und erwarten das man die andere Seite anfassen kann.
Harald K. schrieb: > Nur die Spannungsversorgung zu trennen ist sinnlos und obendrein auch > nicht möglich, denn die Masse der Spannungsversorgung des RS485-Treibers > muss auch mit dem µC verbunden werden, die ist das Bezugspotential für > alle Signale. Oh ja, richtig. Der MAX485 hat nur eine einzige Spannungsversorgung. Dachte, er hätte zwei separate. Dann fällt diese Option zumindest beim MAX485 weg. Es gibt bei TI andere mit separater Spannungsversorgung für beide Seiten (die hatte ich fälschlicherweise im Kopf). > Ein Beispiel für einen Treiber mit integrierter galvanischer Trennung > ist das hier: https://www.analog.com/en/products/adm2587e.html OK, das scheint das äquivalente Produkt zum TI ISOW1432 zu sein. Schaue mir das mal an. https://www.ti.com/product/ISOW1432 > Die verbreitete Alternative besteht aus drei Optokopplern und einem > herkömmlichen RS485-Treiber wie dem MAX485. OK, 3 Optokoppler sowie galvanische Trennung.
Sebastian E. schrieb: > 1. Würde der ISOW7821 (half duplex) den µC so schützen, wenn man > versehentlich 230V AC an den A- oder B- Eingang anlegt? Sieht gut aber teuer aus. Ein MAX485 kommt dann an dessen isolierte Stromversorgung. Für RS485 tut es direkt auch ein LTM2881 von AD. > 2. Kann man beim MAX485 bei Anschluss einer galvanisch getrennter > Spannungsversorgung das Gleiche erreichen Nein, du brauchst noch Optokoppler. Und so machen das auch die Hersteller von RS485 Geräten: Ein kleiner 5V DC/DC Wandler stellt eine galvanisch getrennte Stromversorgung bereit, daran ein MAX485 und die 3 Leitungen SendeDaten, RichtungsSignal und EmpfangsDaten werden über Optokoppler isoliert. https://de.rs-online.com/web/p/dcdc-wandler/2233692 Da gehen natürlich auch ADUM1402. Leider erzeugen die ADUM eventuell Hf-Probleme beim EMV-Test, ebenso ISO7220/7221 von TI und TPT7710/7720/7730/6640 von 3Peak, SI8710/8711 von SiLabs, ISO6781 sind wohl besser. NVE IL510-516/610-616 sollen störungsfrei sein.
Hallo, > Ich möchte an meinem ESP32 über den seriellen Port einem Dritten Modbus > über eine RS485 Schnittstelle bereitstellen. Gut wäre es, wenn du weitere Parameter nennen würdest, wie max. Baudrate, Leitungslängen, gewünschter Schutz gegen EMP (Blitzschlag), sonstige Störeinflüsse usw. > Häufig wird dazu scheinbar der MAX485 eingesetzt. Für hohe Schutzwirkung ist galvanische Trennung zweckmäßig. Eine mögliche Beschaltung für industrielle Umgebung kannst du hier sehen: Beitrag "Re: RS485 common GND" Aber auch diese hat gewisse Einschränkungen. > Ich muss allerdings sicherstellen, dass der ESP32 keinen Schaden nehmen > kann, weil die Dritte Person am A/B-Eingang Unfug treibt. Dazu gehört > z.B., dass dort einfach mal 24V DC oder auch 230V AC angelegt wird (also > z.B. versehentlich eine Phase aus dem Wechselstromnetz). Also kompletter Schutz gegen so extreme Fehlbeschaltung ist nicht trivial. Man muß dabei verschiedene Aspekte berücksichtigen. So beinflussen z.B. Schutzbauelemente mit ihrer Kapazität die Dynamik der Signale. Man kann sich auch nicht gegen alle Störeinflüsse in gleicher Art und Weise schützen. > Mein Ansatz wäre hier, einen digitalen Isolator zu verwenden, der eine > galvanische Trennung integriert hat. Damit habe ich einerseits die > Spannungsversorgung der Schnittstelle von der Spannungsversorgung von > meinem µC isoliert, andererseits kann über die digitalen Ein- und > Ausgänge nichts Schädliches an den RX/TX-Port vom µC kommen. Den uC vor Zerstörung durch externe Signale zu schützen, ist eigentlich einfach. Man kann bei moderater Baudrate die digitalen Leitungen zwischen uC und Interfacetreiber ausreichend hochohmig auslegen und diese mit hinreichend leistungsfähigen Überspannungsschutz versehen. So müßte man bei einem Reihenwiderstand von 100 kOhm nur ca. 2,5 mA ableiten und der Widerstand müßte nur ca. 600mW vertragen. > Drei konkrete Fragen dazu: > 1. Würde der ISOW7821 (half duplex) den µC so schützen, wenn man > versehentlich 230V AC an den A- oder B- Eingang anlegt? Prinzipiell ja, wenn Luft- und Kriechstrecken garantieren, dass die Störspannung nicht auf die Schaltung des uC durchschlägt. > 2. Kann man beim MAX485 bei Anschluss einer galvanisch getrennter > Spannungsversorgung das Gleiche erreichen oder hätte man weiterhin das > Problem, dass die falsch angelegte Spannung über die DI/DO-Ausgänge auf > den µC übertragen würde? Modbus braucht keine Megabauds, oder? bandbreitenbegrenze Treiber mit galv. Trennung sind da einfacher in Verbindung mit DCDc-Wandler. Ich verweise mal auf besser geeignete ADM2481 oder ADM2483 > 3. Die Frage mag basic sein, aber ich bin ein Elektrotechniker: Was > heißt in all diesem Zusammenhang "Spannungsfestigkeit"? Das hat wohl > erst einmal nichts direkt mit galvanischer Trennung zu tun. Aber gibt es > dort eine Verbindung zwischen diesen Themen? Das Thema hat verschiedene Aspekte: - Festigkeit gegen dauerhaft anliegende Störungen, wie eben z.B. eine falsch aufgelegte Leitung. - Festigkeit gegen kurzzeitig auftetende Störungen, wie ESD oder EMP (durch Blitzschlag oder Störimpulse, die durch benachbarte Leitungen mit sehr hoher Leistung verursacht werden (z.B. ein Motor oder Heizung im MW-Bereich). Fazit: Den uC vor Beschädigkung über die RS485 zu schützen, geht noch recht einfach. Das Interface selber vor Zerstörung durch angelegte Netzspannung schützen ist ein sehr sportliches Unterfangen. Gruß Öletronika
Man sollte sich schon realistische Schadensszenarien vorgeben. Und Netz ist keins. Einfach so 24V ist auch keins. Beides laesst sich durch die Anschlusswahl definieren. Wenn der Anschluss des Modbus durch die genau gleichen Stecker im praktischen 3.81mm Rastermass wie Netz geschieht, .. ja dann ist eine Zerstoerung sicher. Die Benutzer sollen nicht mir Draehten anschliessen belastet werden, die Verbindungen werden gesteckt. Bedeutet der Benutzer, oder Betreuer, muss einmal aufpassen und den Bus, die 24V und das Netz richtig anschliessen und nachher gibt der Stecker die Verbindung vor.
U. M. schrieb: > Ich verweise mal auf besser geeignete ADM2481 oder ADM2483 Genau, die würden gut gehen, zusammen mit einem galvanisch getrennten DC/DC-Wandler. Oder alternativ der ISO1410 (etwas günstiger, scheint sonst das Gleiche zu können). U. M. schrieb: > So müßte man bei einem Reihenwiderstand von 100 kOhm nur ca. 2,5 mA > ableiten und der Widerstand müßte nur ca. 600mW vertragen. Hierbei redest Du von 230V AC, korrekt? Das könnte ich gegen N oder gegen PE ableiten. Leider sind die 2,5 mA zu wenig, dass bei Ableitung gegen PE der FI auslösen würde. Ich könnte den Widerstand kleiner machen, um den FI zum Auslösen zu bringen. Doch dann müsste ich sicherheitshalber eine Feinsicherung mit einbauen, um eine Überhitzung zu vermeiden. Und vielleicht hole ich mir dann Störungen über den PE rein. Noch eine weitere Idee?
Hallo Sebastian, ich benutze seit längerer Zeit den MAX22028F. Dieser Pegelwandler/Treiber hat mehrere Vorteile. - Der hat eine galvanische Trennung. - eine automatische Umschaltung zum senden und Empfangen. - und einem sicheren Pegel im Failsafe-Modus (Bestelloption F) https://www.analog.com/en/products/max22028f.html Viele Grüße Ingo
Hallo, > Sebastian E. schrieb: > U. M. schrieb: >> Ich verweise mal auf besser geeignete ADM2481 oder ADM2483 > > Genau, die würden gut gehen, zusammen mit einem galvanisch getrennten > DC/DC-Wandler. Oder alternativ der ISO1410 (etwas günstiger, scheint > sonst das Gleiche zu können). Günstiger als ADM2481 ADM2483 sind auch die kompatiblen ISO3082. https://www.digikey.de/de/products/detail/texas-instruments/ISO3082DWR/1898638 Diese setze ich seit einigen Jahren auch regelmäßig ein, zusammen mit kleinen 1-Watt DDCDC-Wandlern z.B. RO-0505 von Recom. > U. M. schrieb: >> So müßte man bei einem Reihenwiderstand von 100 kOhm nur ca. 2,5 mA >> ableiten und der Widerstand müßte nur ca. 600mW vertragen. > Hierbei redest Du von 230V AC, korrekt? Ob 230V AC oder auch DC ist am Ende egal. > Das könnte ich gegen N oder > gegen PE ableiten. Leider sind die 2,5 mA zu wenig, dass bei Ableitung > gegen PE der FI auslösen würde. Ich könnte den Widerstand kleiner > machen, um den FI zum Auslösen zu bringen. Das ist kein so sinnvolles Konzept. Eine Feinsicherung mit wenigen mA zur Auslösung zu bringen, wird nicht gut funktionieren. Mit höherem Strom steigt aber die Verlustleistung im strombegrenzenden Widerstand an und es braucht ein größere Bauform. Es gibt da sicher noch diverse Möglichkeiten, aber wie oben Purzel H. (hacky) schrieb: "Man sollte sich schon realistische Schadensszenarien vorgeben." Abgesehen davon bin ich auch der Meinung, dass das Risiko so grober Fehlbeschaltung durch Benutzer durch diverse Maßnahmen reduziert werden sollte. - gute Abtrennung von Signalbereichen zu Klemmen mit gefährlicher Spannung. - Gute Kennzeichnung von Leitungen, Klemmen, Steckverb. und ordentliche Doku - Verwendung unterschiedlicher bzw. codierter Steckverbinder Abgeshen davon sind Leitungen mit Netzspannung nicht von elktrotechn. Laien zu klemmen. Das dürfen nur Fachkräfte! Deine Fragestellung war ja auch zuerst nur darauf gerichtet, primär den uC zu schützen. In der Schaltung, die ich verlinkt hatte, sind Polyswitche am Eingang, die auch auf kleinere Ströme ausgelegt werden sollten (100mA-Typ). Damit kann man die Schutzbeschaltung zumindest bis über 30V DC recht sicher machen. > Doch dann müsste ich > sicherheitshalber eine Feinsicherung mit einbauen, um eine Überhitzung > zu vermeiden. Und vielleicht hole ich mir dann Störungen über den PE > rein. Noch eine weitere Idee? Man könnte auch vor den Eingang einen robusten Halbleiter setzen, der bei Überspannung sehr schnell den Störstrom gegen Masse ableitet. Ich halte das aber für Overengineering. Gruß Oeletronika
Galvanische trennung Mit usb-seriell dabei: https://de.aliexpress.com/item/1005005769860774.html Nur seriell: https://de.aliexpress.com/item/1005005378474040.html
Can/ Modbus wird häufig wegen solcher ängste mit galvanischer trennung gebaut. Man nimmt normalerweise optokoppler und einen kleinen getrennten Dc/DC. Ist aber häufig overkill. Moderne Transceiver kommen auch mit -+ einigen V potentialverschiebung aus. Wenn jemand L und N an den bus anlegt knallt es sowieso. Gegen fehlanschluss an Signaleingängen kann man diese hochohmig machen, es gibt Schutzdioden und PTC die wie in vielen Multimetern einen empfindlichen ADC vor überspannung schützen und dabei auch nicht selbst durchbrennen. An Busleitungen wie hier oder Ausgängen funktioniert das häufig nicht. Gegen fehlanschluss würda aber z.b. ein einfaches 2xUm Relais helfen was die datenleitungen vom Transceiver trennt und erdet. Wenn falsch angeschlossen knallt es, falls es richtig angeschlossen wurde fährt das gerät hoch und schaltet das relais ein. Im betrieb braucht es dann noch die übliche TVS diode und ggf. ein paar kleine serienwiderstände.
Hadmut F. schrieb: > Galvanische trennung Die beiden sind für den Einsatz mit RS485 ungeeignet, denn es fehlt die Steuerleitung zum Umschalten zwischen Sende- und Empfangsbetrieb, die der RS485-Transceiver braucht.
Die sind für die andere seite des rs485 transceivers gedacht ...
Hadmut F. schrieb: > Die sind für die andere seite des rs485 transceivers gedacht ... Wie stellst Du Dir das vor? Die UART (sei es in Form einer USB-Seriell-Bridge oder in einem µC) braucht drei Signalleitungen, um mit einem RS485-Transceiver reden zu können - RxD, TxD und Empfänger/Sender-Umschaltung.
Mal ganz ketzerisch gefragt: Die meisten dieser Lösungen sind teurer als ein ESP32, und gehen trotzdem kaputt, wenn jemand 230V anschließt. Lohnt der Aufwand überhaupt?
Beim Verwenden von Optokopplern ist zu beachten, dass ein stromloser RS485-Teilnehmer den Optokoppler nicht ansteuern kann. Der Optokoppler im Bild zieht TEnab -REnab laso nur nach High, wenn er aktiv durch RSB angesteuert wird. Schaltungen, bei denen der Optokoppler so verschaltet ist, dass dessen Transistor nach LOW zieht, machen die RS485-Kommunikation kaputt, wenn DIESER Teilnehmer einen Stromausfall hat.
:
Bearbeitet durch User
Das geschilderte Problem würde aber auch auftreten, wenn kein Optokoppler verwendet wird, denn bei Ausfall der Stromversorgung des µC oder was auch immer den RS485-Treiber ansteuert, ist logischerweise das Steuersignal auch auf Low-Pegel. Da das nicht der Fall ist, wird die im Falle eines Ausbleibens der Stromversorgung ebenfalls fehlende Stromversorgung des RS485-Treibers einen Anteil daran haben. Ich gehe glatt davon aus, daß es in diesem Fall keine parasitäre Speisung des RS485-Treibers durch die Pegel auf dem RS485-Bus gibt, denn dann träte genau das von Dir geschilderte Problem auf.
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.