Hallo alle zusammen, ist das folgendes möglich zu realisieren? µC (RxD /TxD) signale gehen an RS232 und RS485 Transceiver "gleichzeitig". Im Anhang befindet sich das grobe Blockdigramm zum Thema! Danke für eure Informationen! Gruß Anton
TxD sollte kein Problem sein, weil da ein Ausgang 2 Eingänge ansteuert. Aber umgekehrt geht nicht, weil hier die beiden RxD Ausgänge sich gegenseit ansteuern. Wenn der eine High is und der andere Low kann u.U. ein hoher Strom fließen - je nach Ausgangs-Port-Aufbau. PS: Was du tun könntest wäre evtl. ein OR-Logik-IC vor den RxD-Eingang am Controller schließen. Dann könnte es zwar zu kaputten Daten kommen, wenn beide empfangen, aber elektrisch sollte es keine Probleme geben.
:
Bearbeitet durch User
Robin R. schrieb: > PS: Was du tun könntest wäre evtl. ein OR-Logik-IC vor den RxD-Eingang > am Controller schließen. Dicht daneben ist auch vorbei. UART braucht AND, also Pullup + Diode an jedem Ausgang. Bei hohen Baudraten >115200 nimmt man dann besser einen 74xx AND Baustein.
:
Bearbeitet durch User
Danke für eure Antworten. @jim kannst du bitte evtl. das zeichnen wie es am besten beschaltet werden soll bzw. was du meinst?
Du kannst das ja immer nur wechselweise betreiben. Dafür gibts fertige Lösungen, zB: https://www.exar.com/content/document.ashx?id=21451 Da legst Du die 2 Inputs und 2 Outputs vom Transceiver auf einen SubD-9 und kannst dann mit zwei Pins umschalten, ob Du RS232, RS422/RS485-FD oder RS485-HD haben willst. fchk PS: bei einzelnen Transceivern brauchst Du einen 74LVC1G08 im SOT23-5. Das ist dort die optimale Lösung. Die RXD von den Transceivern an die Eingänge des Gatters, der Ausgang des Gatters an RXD vom Controller. Oder Du nimmst einen HC125 und einen HC126 und schaltest TXD und RXD wechselseitig. Der HC125 schaltet bei G=0 durch, der HC126 bei G=1. Das hat den Vorteil, dass der inaktive Ausgang wirklich ruhig ist, was für EMV deutlich besser ist - vor allem, wenn da ein Kabel dranhängt.
Jim M. schrieb: > Robin R. schrieb: >> PS: Was du tun könntest wäre evtl. ein OR-Logik-IC vor den RxD-Eingang >> am Controller schließen. > > Dicht daneben ist auch vorbei. UART braucht AND, also Pullup + Diode an > jedem Ausgang. Warum ist ein Pull-Up erforderlich, geben die Transceiver-Bausteine keine definierten Pegel aus?
Robin R. schrieb: > Warum ist ein Pull-Up erforderlich, geben die Transceiver-Bausteine > keine definierten Pegel aus? Doch, aber der geht durch die Diode flöten.
Frank K. schrieb: > Die RXD von den Transceivern an die > Eingänge des Gatters, der Ausgang des Gatters an RXD vom Controller. Dann muss er aber sicher sein, dass immer nur auf einer Leitung was ankommt, dass also 232 und 485 nur alternativ benutzt werden, aber auch dann könnten Störungen auftreten. Besser ist es, den unbenutzten RxD ganz abzutrennen. Georg anton schrieb: > µC (RxD /TxD) signale gehen an RS232 und RS485 Transceiver > "gleichzeitig". Das ist sehr ungenau und missverständlich ausgedrückt, s.o. Georg
Hm, was mir spontan dabei einfällt ist, ob Du tatsächlich die beiden Schnittstellen gleichzeitig bedienen willst - da gibt es natürlich Kollisionen auf der Rx Seite (vom uC aus gesehen). Also können die beiden PHYs gegenseitig ausschliessend sein, ausser natürlich der Partner auf RS232 Seite ist ein "erweiterter Busknoten," filtert also an Hand des Protokolls auf Grund seiner Geräteadresse die für ihn bestimmten Pakete aus. In dem Fall ist es aber schwer zu glauben, dass dieser Slave nicht auch schon mit im RS485 Bus hängen würde... Da Du in deiner Zeichnung aber schon 5-Draht RS485 (also peer to peer) ansetzt, scheint es kein Busfähgiges Protokoll zu sein, und damit ist der tatsächliche gleichzeitige Betrieb kollisionsfrei nicht denkbar.
Tx sollte kein Problem sein. Es wird halt immer aus beiden Rohren gefeuert. Um Rx auswerten zu können, ist zu beachten, dass Nix auch etwas ist. Der jeweils "ungenutzte" Ausgang hat ja trotzdem einen Pegel. Da aber sowohl Low, als auch High zulässig sind, ist unbenutzt auch ein Signal.
Hi, ich möchte auch nicht gleichzeitig benutzen sondern eine davon benutzen. Mit dieser Beschaltung ginge es nicht. Außerdem DE & \RE von RS485 Transceiver sind von einem µC-Pin aus angesteuert!
Etwas durchsichtiger wird das Ganze, wenn Du den beteiligten Kandidaten Namen gibst. Z.B. MAX232 oder so. Muss aber nicht sein. Manche Treiber haben sogar "echte" Enables oder 3-State Anschlüsse.
die folgenden komponenten werden verwendet: für RS232: ADM3251 für RS485: ADM2587
anton schrieb: > Hi, > > ich möchte auch nicht gleichzeitig benutzen sondern eine davon benutzen. > Mit dieser Beschaltung ginge es nicht. > > Außerdem DE & \RE von RS485 Transceiver sind von einem µC-Pin aus > angesteuert! Sorry wenn ich mich unklar ausdrücke - es geht NICHT um die Physik, sondern um die Logik! Angenommen Du schickt ein Steuerbyte vom Master an beide Busse, das bedeutet "Sende mir etwas." Wenn jetzt Slaves von beiden Schnittstellen etwas annähernd gleichzeitig antworten, muss es ja zwangsläufig Kollisionen geben. Also wenn ich Dich richtig verstehe, willst Du über dasselbe Protokoll auf beiden Bussen senden, wobei Du aber softwaremässig auswählen willst, über welche Schnittstelle jeweils die Kommunikation geht? Wie gesagt musst Du dazu ein Protokoll fahren, das es den Slaves erlaubt, auf ihre Adresse zu filtern. Wie willst Du sonst verhindern, dass der peer auf der RS232 Schnittstelle antwortet, wenn der Master eine Antwort auf dem RS485 Bus erwartest? Umgekehrt geht es, klar, über die Steuerleitungen, aber brauchst Du nicht sonst noch eine externe Logik, die Rx auf der RS232 Seite abstellt, wenn Du auf dem RS485 Bus kommunizieren willst? M.M. nach wäre es fast einfacher, Alles über den RS485 Bus abzuwickeln und die Konvertierungslogik an dem einen Slave einzubauen, der RS232 kann. Die Serialisierung wäre eh erforderlich (also keinen Zeitverlust), und der RS485 Bus ist physikalisch praktischer (wesentlich längere Leitungen und bessere Störsicherheit).
Robin R. schrieb: > Warum ist ein Pull-Up erforderlich, geben die Transceiver-Bausteine > keine definierten Pegel aus? Ja, aber nicht wenn eine Diode dazwischen hängt. Jim M. hat auch nachher eine Lösung mit AND vorgeschlagen. Mit OR könnte es keinen Startbit bzw. keine Nullbits geben.
anton schrieb: > Außerdem DE & \RE von RS485 Transceiver sind von einem µC-Pin aus > angesteuert Ja aber: für RxD von der RS232-Seite nützt das garnichts, und wenn du den Empfänger von RS485 abschaltest, schaltest du den Treiber ein - keine gute Idee, wenn du eigentlich über RS232 kommunizieren willst. Problemlos wäre nur eine vollständige Umschaltung von TxD und RxD. 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.