Forum: Mikrocontroller und Digitale Elektronik Wie mehrere Geräte mit UART an einen Controller anbinden?


von Telco (Gast)


Lesenswert?

hallo leute,


wie kann ich 3 Geräte, per Rx und Tx an einen Controller anbinden?
Es handelt sich um einen Atmega8 und 3 externe Geräte, die nicht 
gleichzeitig senden. Dabei soll der ATmega der "Sammelpunkt" sein und 
ausschließlich Daten Empfangen. Liege ich da mit einem XX485 richtig? 
Oder brauche ich eine Art Multiplexer?
Vielen Dank schon mal für eure hilfe.
Gruß Telco

von Morin (Gast)


Lesenswert?

Lösungsidee (setzt voraus, dass die Geräte wirklich nicht gleichzeitig 
senden, ansonsten kommen Mülldaten an):

Wenn du die drei Geräte dazu bringen kannst, auf Tx statt einem 
"starken" 1-Pegel nur hochohmig zu schalten, dann müsste es reichen, 
alle drei Geräte-Tx mit dem uC-Rx zu verbinden; Pullup im uC aktivieren. 
Ansonsten je Gerät eine Diode (leitend in Richtung Gerät->uC), um den 
1-Pegel abzublocken, auf uC-Seite verbinden und Pullup im uC.

Geräte-Rx und uC-Tx werden ja nicht gebraucht (da der uC nichts senden 
soll).

von Telco (Gast)


Lesenswert?

Vielen Dank für die Antwort... Werde mir deine Lösung mal durch den Kopf 
gehen lassen, das Hochohmig schalten ist wofür? Könnte ich da nicht ein 
tristate (Treiber)Baustein verwenden?
Gibt es denn keine Lösung, wo ich einfach ein IC verwenden kann? sowas 
wie der RS485 zb? Ich möchte einfach 3Geräte mit Uart auf einen 
Controller "multiplexen"... Es wird weder gleichzeitig gesendet, noch 
müssen alle Uarts gleichzeitig am Controller angeschlossen. Kann ich da 
sowas wie ein 3 bzw 6 zu 1 MultiplexerIC verwenden?

Danke und Gruß
Telco

von Karl H. (kbuchegg)


Lesenswert?

> das Hochohmig schalten ist wofür?

Wenn mehrere Ausgänge quasi kurzgeschlossen werden, dann ist das für die 
Ausgänge nicht so toll. Einer versucht den Ausgang auf +5V zu ziehen, 
während alle anderen versuchen die Ausgangsspannung auf GND zu halten.
Das dieses Seilziehen auf Dauer nicht gut gehen kann, dürfte klar sein.

> Kann ich da sowas wie ein 3 bzw 6 zu 1 MultiplexerIC verwenden?

Wozu?
Einfach in jede Leitung eine Diode schalten, wie oben schon beschrieben. 
Damit werden die einzelnen Ausgänge voneinander entkoppelt und gut ists.

von Aha (Gast)


Lesenswert?

RS422 ist eine moegliche Loesung.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Das kannst Du mit einer einzigen Leitung machen. Alle RX-Anschlüsse 
werden an diese Leitung geschaltet, alle TX-Anschlüsse werden mit einer 
schnellen Diode (1N4148), Kathode zum Controller, ebenfalls an diese 
Leitung geschaltet. Statt der internen PullUp-Widerstände würde ich 
einen definierten 4k7 Widerstand extern von der Leitung nach Vcc 
anschließen. Vorteil: Du brauchst keine weiteren Bauteile, alle 
Controller können nacheinander mit allen Controller kommunizieren. 
Nachteil: Jeder Controller empfängt auch seine eigenen Daten und muß 
diese verwerfen.

von Morin (Gast)


Lesenswert?

> Nachteil: Jeder Controller empfängt auch seine eigenen Daten und muß
> diese verwerfen.

Soweit ich verstanden habe, sollen die Daten nur in eine Richtung 
fließen, d.h. mann könnte den Tx des Mega unbeschaltet lassen und die Rx 
der Endgeräte permanent "hochziehen" (oder von innen heraus ignorieren, 
je nachdem ob das möglich ist).

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Das Bidirektionale Feature der 1-Leitungs-Version ist vielleicht nicht 
nachgefragt gewesen, aber schön zu haben. Damit ist man in jedem Fall 
später flexibel.

von Torsten K. (ibk)


Lesenswert?

Hallo Telco,

schau mal hier auf meiner Seite 
http://www.ibkirchen.de/zipliste/wissen/rs232mul.html
Das müsste genau passen. Mit dieser Anwendung arbeite ich schon ziemlich 
lange und auch mit noch mehr Endgeräten (bis 32 hab ich im Einsatz)

Gruß
Torsten

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

@Torsten: Wenn Du jetzt aus den 2 Leitungen eine machst, hast Du 
Multimaster/Multislave-Betrieb und meinen Lösungsansatz :-)

von Sven S. (stepp64) Benutzerseite


Lesenswert?

@Torsten: "Daher ist dieser hier mit einem Wert von 10kW eingezeichnet."

Zieht ganz schön Strom deine Schaltung: 10kW, das ist schon was ;-)

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Ist wahrscheinlich ein Copy/Paste Fehler, siehe Quelltext.

von Torsten K. (ibk)


Lesenswert?

@travel Rec.
Stimmt :-)

@sven:
Ja - nicht jeder Browser / Betriebssystem kann wohl den 
SYMBOL-Zeichensatz darstellen!?!
Das "W" ist dann ein OHM. Ich werde mal sehen, was ich ändern kann. Bei 
mir steht auf jeden Fall ein OHM da.

Gruß
Torsten

von Sven S. (stepp64) Benutzerseite


Lesenswert?

Hey stimmt. Ist mir ja noch nie aufgefallen. Der IE7 zeigt es richtig 
an. Mein Firefox 3.0.5 zeigt ein W und Opera.... auch ein W.

Am besten ist wohl, man schreibt OHM dahin. Dann klappts mit jedem 
Browser.

Sven

Hab gerade noch mal nachgelesen:

Der FONT-Tag (und andere) ist als deprecated eingestuft, das heißt, sie 
sollen in Zukunft aus dem HTML-Standard entfernt werden. (Siehe 
http://de.selfhtml.org/html/text/schrift.htm ).

Firefox und Opera scheinen sich schon daran zu halten. IE scheinbar noch 
nicht. Daher die unterschiedlichen Anzeigen.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Oder ein Bild eines kleinen Omega einfügen ;-)

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
Noch kein Account? Hier anmelden.