Hallo zusammen, ein Mikrocontroller mit einem UART soll mehrere RS485-Geräte auslesen. Es ist nicht möglich, alle RS485-Geräte auf einen Bus zu legen, da sich dabei einzelne Geräte aufhängen. Anscheinend kommen sie nicht mit den Protokollen der andern Geräte nicht klar. Es könnten mehrere Transceiver eingesetzt werden, die auf TTL-Seite zwischen Mikrocontroller und Transceiver gemuxt werden. Dies benötigt aber mehr Platz auf der Platine und auch mehrere DC-DC-Wandler (einzelne Kanäle sollen voneinander isoliert sein). Stattdessen würde ich gerne folgendes versuchen: Ein Transceiver (durch DC-DC Wandler galvanisch vom Mikrocontroller getrennt, alle Signale dahinter laufen über Opto-Koppler) bedient alle Kanäle. Dazu wird ein analoger Multiplexer verwendet, der Signale von +/-12V schaltet. So werden von jedem RS485-Kanal die Signale A, B und auch GND zum Transceiver geschaltet. Der Abschlusswiderstand (120 Ohm) befindet sich auf Seite des Busses ebenso wie die nicht gezeichneten Schutzdioden. Jetzt meine Frage: Der Multiplexer hat für die geschalteten Signale einen Widerstand von ca. 100 Ohm. Dadurch stimmt dann aber der gesamte Abschlusswiderstand (120 Ohm + Widerstand Mux) nicht mehr. Wie kann ich so einen Multiplexer aufbauen, dass die Anpassung korrekt ist? Bzw. wäre es besser, die Anpassung zwischen Multiplexer und Transceiver zu schalten? Vielen Dank schon mal. Gruß Markus
Was soll ein Mux ? RS485 ist ja genau deswegen Halbduplex, weil man verschiedene Sender und Empfaenger zusammenschliessen will. Es braucht keinen Mux, wenn sich alle Teilnehmer an das Protokoll halten. Aha, es gibt mehrere Master, obwohl es nur einen geben duerft, dh ein starres Singlemaster System wurde auf Multimaster "erweitert" ohne das es dies merken sollte... Dann nimm Relais.
Markus E. schrieb: > einzelne > Kanäle sollen voneinander isoliert sein Das kann kein Multiplexer. Du kannst aber Opto-MOS nehmen, z.B. ASSR-1218.
Das Problem ist eben genau das, dass sich nicht alle Teilnehmer an ein Protokoll halten bzw. tolerant gegenüber anderen Protokollen sind. Das habe ich leider nicht bedacht, dass mit dem Multiplexer die Isolation der Kanäle voneinander verloren geht. Die Opto-MOS schaue ich mir gerne mal an. Danke für den Tip.
Moin, das ist ein recht gefährliches Unterfangen, je nach uC. Da musst du das Verhalten des UART-Interface bzgl. RS485 genau kennen, ansonsten rennst du ev. in Timing-Schwierigkeiten, wenn du nicht zu einem genau definierten Zeitpunkt den Muxer umschaltest. Du kannst da natürlich über externe Interrupteingänge was frickeln. Genauer: manche UART-Implementierungen signalisieren: Daten sind raus (aber sie sind noch im FIFO). D.h. der uC-Master ist eigentlich noch im Transfer, und du schaltest dann schon bereits den Muxer um -> Bumm :-) Ansonsten ist das noch knackig, die Teilnehmer untereinander galvanisch zu trennen. Da brauchst du eigentlich fast zwingend für jeden Kanal DC/DC und Isolatoren sowieso, wenn die ganzen unterschiedlichen GNDs potentialfrei sein sollen. Eigentlich sollten die Teilnehmer jeweils die Trennung beinhalten. Klingt für mich nach hässlichem Workaround... Der Abschlusswiderstand als solcher wäre sonst nicht kritisch, würde ich sagen. 100 Ohm seriell hast du bei einer langen Leitung schnell mal beisammen..
Vielleicht kämen auch 485 Treiber mit galvanischer Trennung in Frage, z.B. TI ISO1176 oder was von Analog Devices. http://www.analog.com/en/products/interface-isolation/rs-232-rs-422-rs-485/isolated-rs-485.html Den MUX kann man sich sparen durch Enable der einzelnen Treiber.
Markus E. schrieb: > Das Problem ist eben genau das, dass sich nicht alle Teilnehmer an > ein > Protokoll halten bzw. tolerant gegenüber anderen Protokollen sind. > > Das habe ich leider nicht bedacht, dass mit dem Multiplexer die > Isolation der Kanäle voneinander verloren geht. > Die Opto-MOS schaue ich mir gerne mal an. Danke für den Tip. Brauchst du denn überhaupt eine richtige Trennung der Kanäle oder ist deine Intention nur, dass die von einander nicht so viel mitkriegen sollen, also mehr Verhinderung von crosstalk als galvanische Trennung? Ersteres ist mit dem Analog Multiplexer meist ein geringes Problem.
Die Kanäle müssen schon galvanisch getrennt sein. Ich werde mal einen Test-Aufbau mit ASSR-1218 machen, das sieht vielversprechend aus.
Ein Differenzsignal-System kann man nicht muxen. Die Trennung von GND lässt das nicht zu.
Cyborg schrieb: > Ein Differenzsignal-System kann man nicht muxen. > Die Trennung von GND lässt das nicht zu Das ist natürlich barer Unsinn - für den Empfänger müssen die Signale in einem bestimmten Spannungs-Bereich um GND des Empfängers liegen, näheres in der Norm bzw. im Datenblatt. Ein Multiplexer muss nur den gleichen Bereich abdecken wie der Empfänger. Dass RS485 ohne jeden GND-Bezug funktioniert ist ein Märchen, das auch durch ständige Wiederholung nicht wahr wird. Das ist völlig anders als bei Ethernet, wo auf beiden Seiten ein Transformator sitzt. Georg
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.