Forum: Mikrocontroller und Digitale Elektronik UART routen?


von Stani (Gast)


Lesenswert?

Hey Ho,

gesucht wird eine Möglichkeit, eine UART Verbindung zwischen 
verschiedenen Teilnehmern hin und her zu schalten.

Auf einer Platine gibt es einen uC, zwei Funkmodule und eine RS/232 
Schnitstelle.

Folgendes will erreichen:

1) Beim Hochfahren des uC soll der RS/232 Eingang (über Max3232) 
zunächst mal mit dem Controller verbunden sein. Ein Bootloader wartet 
hier dann eine Zeit X auf Kommandos...
Was auch immer vom Funkmodul reinkommt, muss ignoriert werden und es 
darf zu diesem Zeitpunkt auch nichts gesendet werden.

RS/232 RX => uC-RX
RS/232 TX <= uC-TX
Funk-RX => X
Funk-TX => X


2) Im weiteren Betrieb des uC sollen RX+TX zunächst mit Funkmodul A 
verbunden werden. Es wird dann in einen Konfigurationsmodus gesetzt und 
bestimmte Parameter konfiguriert. Die RS/232 Schnittstelle muss hierbei 
komplett abgehängt werden... beide Richtungen.

RS/232 RX => X
RS/232 TX => X
uC-TX => Funk-RX
uc-RX <= Funk-TX

3) Das gleiche nochmal, nur mit Funkmodul B


4) Der eigentliche Betriebsmodus:
Über einen Schalter kann eingestellt werden, welches Funkmodul verwendet 
werden soll. Dann wird der RS/232 Eingang mit dem gewählten Funkmodul 
verbunden. Desweiteren soll das, was am RS/232 Eingang reinkommt, auch 
noch zum uC verzweigt werden, so dass dieser zum Zweck der Ansteuerung 
einiger Status-LEDs mitlauschen kann.

 - RS/232 RX => Funk TX + uC-RX (zum mithören)
 - RS/232 TX <= Funk RX

Wie könnte man diese ganze Umschalterei denn mal am einfachsten machen?
Mit einem Schwung Logikgatter und zwei Extra Pins von uC und dann jede 
Konstellation mit AND's abbilden?

Oder kennt jemand vielleicht ein IC, mit dem z.B. per I2C so ein Routing 
vornehmen könnte?

Die Datenrate ist 38.400 baud, Pegel ist 3.3V...

Wenn jemand dazu eine Idee hat, würde ich mich sehr freuen.

Danke :D

von HildeK (Gast)


Lesenswert?

Schau dir mal den CD4052 bzw. 74HC4052 an. Dual 1:4 analog Mux/Demux.

von Wolfgang L. (smarty9797)


Lesenswert?

Moin,

der CD4053B sollte Dein Freund sein. Er hat einen Inhibit-Eingang, damit 
könntest Du die Schnittstelle komplett auftrennen. Minimalpegel ist 3V, 
sollte also mit Deinen 3,3V funktionieren.

https://www.mikrocontroller.net/part/CD4053

Gern geschehen!

von Stani (Gast)


Lesenswert?

Whoohooo!

Geil - das sieht sehr passend aus.
Vielen Dank!!!

von spess53 (Gast)


Lesenswert?

Hi

>Geil - das sieht sehr passend aus.
>Vielen Dank!!!

Es gibt auch Controller mit mehreren U(S)ARTs. Dann würde sich alles auf 
die Software verlagern.

MfG Spess

von Peter D. (peda)


Lesenswert?

Beim 74HC4052 mußt Du die nicht aktiven TXD mit einem Pullup auf High 
ziehen, sonst floaten sie.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

In die eine Richtung (TX auf 4 RXe aufteilen) gehts auch sehr schoen mit 
einem halben 74XX139. In die andere Richtung dann leider nicht mehr so 
schoen; da muessten dann z.B. noch ein paar NAND Gatter nutzlos 
rumoxidieren.

Gruss
WK

von äxl (Gast)


Lesenswert?

der Pegelwandler MAX3375 (zB) hat auch einen Enable Eingang. Damit hab 
ich sowas mal gemacht. War ganz praktisch. Pegelwandlung war eh' 
erforderlich in dem Design.

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.