Forum: Mikrocontroller und Digitale Elektronik UART digital umschalten


von Leo H. (Gast)


Lesenswert?

Moin,

gibt es eine Möglichkeit, UART-Signale ohne Jumper umzuschalten?
Es geht um 5V TTL Signale, 115200 Baud, nur Rx und Tx.

Auf der Platine habe ich zwei "Quellen": FT232R und MAX232
Dazu gehören zwei "Ziele", z.B. Atmega 1 und Atmega 2.

Damit möchte ich erreichen, das die Platine entweder über USB oder RS232 
an einen PC angeschlossen werden kann. Stromversorgung erfolgt per 
Netzteil.

Bis jetzt gibt es zwei Jumper-Blöcke, mit denen man eine "Route" 
einstellt.
Es reicht aus, wenn nur eine Schnittstelle mit einem Atmega verbunden 
werden kan.

Den Jumper-Block möchte ich jetzt gerne entfernen.
Gibt es dazu ein fertiges IC? Ansteuern möchte ich das IC z.B. über 2 5V 
TLL-Signale, z.B. so (S1 und S2 stehen für die beiden Signale):
1
S1  S2  Verbindung
2
0  0  MAX232 <-> Atmega 1
3
0  1  MAX232 <-> Atmega 2
4
1  0  USB <-> Atmega 1
5
1  1  USB <-> Atmega 2

Gefunden habe ich bis jetzt nur ein Logik-IC 74HC257, das aber nur für 
eine "Richtung" funktioniert.

Auf der Platine ist (wie immer) auch nicht viel Platz, die Umschaltung 
sollte mit 1 bis maximal 2 ICs aufgebaut werden.
"Hinter" den ICs sollte natürlich auch ein sauberer Pegel ankommen.

Wäre super, wenn da jemand was kennt. Danke!

von Helmut L. (helmi1)


Lesenswert?

Du brauchst einen Multiplexer 74HC157

von HFE (Gast)


Lesenswert?

"Analogschalter" 4066 und Co.

von Sam .. (sam1994)


Lesenswert?

oder 4fach AND

von HFE (Gast)


Lesenswert?

Samuel K. schrieb:
> 4fach AND

Reicht nicht! Bitte skizzieren!

von Sam .. (sam1994)


Lesenswert?

IN1-A
    N-OUT1
CS1-D

IN2-A
    N-OUT1
CS2-D

Das ist ein Umschalter. Das ganze 2x, dann ist man bei 4x AND.

von HFE (Gast)


Lesenswert?

Samuel K. schrieb:
> Das ist ein Umschalter.

Nein, die Ausgänge werden am AVR (RxD) parallel geschaltet. Da muss noch 
ein Gatter mehr her.

von Sam .. (sam1994)


Lesenswert?

Entweder man baut 2 dioden + pulldown ein, oder opencollector (74x09)

von HFE (Gast)


Lesenswert?

Immer noch Kurzschluss der Ausgänge am AVR (RxD). Durch CS wird ein AND 
nicht hochohmig. Der Ausgang ist high oder low. Nenne bitte das Bauteil, 
das dir vorschwebt.

von HFE (Gast)


Lesenswert?

Samuel K. schrieb:
> ntweder man baut 2 dioden + pulldown ein, oder opencollector (74x09)

Aha, also doch noch ein paar Bauteile ;-)

Aber OC geht natürlich auch nicht, in dem gelöschten Beitrag war ein 
pull down. Hast es selber schon gemerkt. ;-)

von Sam .. (sam1994)


Lesenswert?

HFE schrieb:
> Aber OC geht natürlich auch nicht, in dem gelöschten Beitrag war ein
> pull down. Hast es selber schon gemerkt. ;-)

kleiner Denkfehler, hab mich korrigiert.


Ja, OC mit AND geht ja echt nicht. Neuer Versuch:

Ich nehme statt dem AND ein OR (OC), nur leider gibt es das nicht.

Ein einfacher Widerstand reicht aber um einen Kurzschluss zu verhindern, 
gleiches gilt für die AND-Variante.

TXD1-|
     O-10k-|
CS1--R     |
           |-RxD
TXD2-|     |
     O-----|
CS2--R

von HFE (Gast)


Lesenswert?

Samuel K. schrieb:
> Ein einfacher Widerstand reicht aber um einen Kurzschluss zu verhindern,
> gleiches gilt für die AND-Variante.

???

Das untere Gatter (AND) treibt low, wie kann dann das obere ein high 
erzeugen?

Mit 4 x AND, NAND, OR, NOR geht das nicht.

von Sam .. (sam1994)


Lesenswert?

Achso, ist schon ein bisschen spät. Sagen wir 2 Widerstände.

AND wäre mit High active, OR low active. NAND und NOR wäre invertiert 
(spart man sich den Max232).

von HFE (Gast)


Lesenswert?

Samuel K. schrieb:
> Sagen wir 2 Widerstände.
>
> AND wäre mit High active, OR low active. NAND und NOR wäre invertiert.

Hast recht, ist schon spät. Und ich brauche ein Bild von deiner 
Schaltung, sonst kann ich dir nicht folgen.

von Carsten S. (dg3ycs)


Lesenswert?

Wie oben schon genannt: Multiplexer!

Für RS232 würden ja unidirektionale reichen. Für USB müssten es ja 
bidirektionale sein die auch mit den differentiellen USB Pegeln klar 
kommen.

Ich setze als Multiplexer eigentlich immer die CD4051,52,53 ein, je nach 
Schaltungsart. Die funktionieren auch bidirektional und können 
Analogsignale verarbeiten. Wenn man die mit symetrischer 
Betriebsspannung versorgt sogar negative Spannungen. Einzig kritischer 
Parameter könnte die Frequenz sein.
Da man aber ein Videobild problemlos damit umschalten kann denke ich das 
die USB Frequenzen in FullSpeed auf auch gehen, LowSpeed auf jeden Fall. 
Probiert habe ich das aber noch nie. Da sind mir immer "sinnvollere" 
Lösungen eingefallen ;-)

Gehen die USB und RS232 Signale denn überhaupt auf die selben I/Os und 
Buchsenkontakte oder ist das Getrennt? Wenn das eh getrennte Anschlüsse 
und bei den µC getrennte IOs sind, dann reicht es ja auch einfach aus 
den jeweils nicht vorgesehenen µC die jeweiligen IOs auf hochohmig 
(tristate) schalten zu lassen...

Alternativ bliebe noch die Verwendung von Reed-RElais!

Wobei, egal ob ReedRelais oder Multiplexer: Wenn du wirklich für RS232 
und USB dieselben Anschlüsse benutzt und das so wie oben umschalten 
willst, dann musst du im Prinzip einen "Kreuzschienenverteiler" 
aufbauen...

Schreibe mal ein paar mehr technische Details deiner Anschlussbelegung.

Gruß
Carsten

von Leo H. (Gast)


Lesenswert?

Moin,

danke für die Antworten. Mit einzelnen Logikgattern wird das wohl 
schwer, mit 1 IC unmöglich. Multiplexer sehen schon interessanter aus.

Carsten Sch. schrieb:
> Schreibe mal ein paar mehr technische Details deiner Anschlussbelegung.

Gerne, auch wenn das wahrscheinlich viel Text wird.

Auf der Platine sind zwei Schnittstellen geplant, 1x USB-Buchse und 1x 
D-Sub 9 Buchse.
Hinter jeder Buchse sitzt ein passender Wandler, also FT232R und MAX232.

So habe ich zwei Möglichkeiten, die Platine mit dem PC zu verbinden.
Für USB und RS232 gibt es getrennte Buchsen mit Standard-Belegung.

Hinter jedem Wandler steht dann eine TTL-UART zur Verfügung. Die beiden 
Schnittstellen sollen jetzt erstmal zu einer PC-Verbindung 
zusammengefasst werden.
Hintergrund: Die Platine soll wahlweise über USB (z.B. Laptop) oder 
RS232 (z.B. Werkstatt-PC) angeschlossen werden können.

Es muss nur eine Schnittstelle verwendbar sein, wenn eine USB-Verbindung 
besteht kann der RS232-Anschluss funktionslos sein und umgekehrt.
(Vergleichbar mit einem RS232-Gerät, an das man bei Bedarf einen 
USB-RS232-Adapter ansteckt. Nur soll das alles mit auf die Platine.)

Die "PC-Verbindung" soll jetzt noch wahlweise auf Atmega 1 oder Atmega 2 
geschaltet werden können.

Umschaltet werden nur die TTL-UART Signale, also zwischen den Atmegas 
und den Wandlern FT232 / MAX232.

Vergleichbar ist die Funktionalität auch mit zwei hintereinander 
geschalteten Umschaltern:
Schalter 1 wählt zwischen USB oder RS232 Verbindung, Schalter 2 schaltet 
die gewählte Verbindung zum Atmega 1 oder Atmega 2 durch.

>"Kreuzschienenverteiler"

Das wäre die Krönung, aber eigentlich unnötig.
Meinen Wunsch würde ich eher als Patchfeld mit genau einem Patchkabel 
beschreiben, wobei es verboten ist "interne" Verbindungen zu patchen.

Oder mal als Liste, folgende Verbindungen sollen herstellbar sein (nur 
eine Verbindung zur gleichen Zeit):
- USB-UART <-> Atmega 1
- USB-UART <-> Atmega 2
- RS232-UART <-> Atmega 1
- RS232-UART <-> Atmega 2

Folgende Verbindungen sollen nicht möglich sein bzw. sind verboten:
- USB-UART <-> RS232-UART
- Atmega 1 <-> Atemga 2

>Multiplexer CD4051

Wie verhalten sich die Bausteine bei TTL-Signalen?
Lt. Datenblatt haben die Teile 60 Ohm im eingeschalteten Zustand...

Schöne wäre ein Multiplexer wie der 74HC257 bzw. 74HC157, nur eben 
"rückwärts".

von Leo H. (Gast)


Lesenswert?

Auch interessant:
TS5A3357 http://www.ti.com/lit/gpn/TS5A3357
FSA3357 http://www.fairchildsemi.com/ds/FS/FSA3357.pdf

Kennt die jemand?

von Carsten S. (dg3ycs)


Lesenswert?

Leo-andres H. schrieb:
>
> Auf der Platine sind zwei Schnittstellen geplant, 1x USB-Buchse und 1x
> D-Sub 9 Buchse.
> Hinter jeder Buchse sitzt ein passender Wandler, also FT232R und MAX232.
> ...
> Es muss nur eine Schnittstelle verwendbar sein, wenn eine USB-Verbindung
> besteht kann der RS232-Anschluss funktionslos sein und umgekehrt.
> (Vergleichbar mit einem RS232-Gerät, an das man bei Bedarf einen
> USB-RS232-Adapter ansteckt. Nur soll das alles mit auf die Platine.)
>
> Die "PC-Verbindung" soll jetzt noch wahlweise auf Atmega 1 oder Atmega 2
> geschaltet werden können.
>
> Umschaltet werden nur die TTL-UART Signale, also zwischen den Atmegas
> und den Wandlern FT232 / MAX232.
>

AH-JA, jetzt verstehe ich. ICh bin bis jetzt davon ausgegangen das du 
tatsächlich USB bis zum µC führst... Die Zeit der Wandler ist ja 
eigentlich vorbei. Gute µC mit USB intern kosten ja teilweise weniger 
als der Wandler einzeln...
Aber das ist hier ja nicht Thema.

Ja, das ist recht einfach. Wenn die beiden Schnittstellenbausteine einen 
ChipSelect hätten, dann könnte man ganz ohne Umschalter auskommen. 
Mindestens brauchen wird man einen wenn die µC miteinander kommunizieren 
und dafür gesorgt ist das immer nur einer Die Leitung treibt.
Mit zwei Umschaltern braucht man sich da keine GEdanken machen.
Vom Funktionsprinzip reicht ja unidirektional.
Die 74xx157/257 würde also funktionieren, muss man etwas ausgeklügelt 
beschalten. ISt aber zu spät als das ich das jetzt noch auf die Reihe 
bekomme. Wenn man wollte könnte man das ja sogar mit einer HAndvoll 
Transistoren erledigen...

Die CD4053/52 machen es da aber deutlich leichter als alles andere.

>>Multiplexer CD4051
>
> Wie verhalten sich die Bausteine bei TTL-Signalen?
> Lt. Datenblatt haben die Teile 60 Ohm im eingeschalteten Zustand...

TTL bei 5V Betriebsspannung problemlos. Da brauchst du dir keine 
GEdanken machen. Die Ausgangsspannung ist ja = (Eingangsspannung - 
Spannungsabfall) eine feste Schwelle gibt es nicht wo man bei der 
Mischverwendung von TTL und CMOS4000er Serie manchmal ja genau schauen 
muss.

Ob die 60 Ohm jetzt richtig sind kann ich nicht genau sagen. Aber wir 
reden hier von Eingangsströmen im µA bereich, Im Worst Case 0,x mA

Selbst wenn ich jetzt - um wirklich viel Sicherheit zu haben- 1mA 
Eingangsstrom des Schnittstellenbausteins annehme, was bei diesen 
Bausteinen nur Vorkommen kann wenn der einen schon größeren Defekt hat, 
dann würde das einen Spannugnsabfall von 60mV am Multiplexer bedeuten. 
Wenn da also 4,8V reingehen kommen an der anderen Seite 4,74V raus. Das 
ist allemal im sicheren Bereich.
Tatsächlich liegen die Eingangsströme sicher so bei <100µA, teilweise, 
je nach tatsächlich verwendeten Baustein sogar nur 10µA. Also eher so 
6mV Spannungsabfall...

Daher: Nimm die CD4052 oder 4053, für 5V UART ist das kein Problem.
Die Bausteine sind Billig und überall gut zu bekommen. Diese Bausteine 
sind neben dem Schieberegister 4094 selbst in neueren GEräten noch 
häufig verwendete Standartlogikbausteine. Wohl überhaupt die am meisten 
verwendeten aus den Standartreihen. Alternativ würde aber auch noch die 
als ausdrüclich TTL kompatible Version die 74HC4052/53 zur Verfügung 
stehen...

Allerdings wird du mindestens zwei Bausteine brauchen, da selbst bei den 
"Dual-" oder "Quattro-" Multiplexern die internen Schaltungen ja 
miteinander Verknüpft sind. Bei den Dual kann also nicht der 1. nach A 
schalten und der zweite nach B. Das funktioniert leider nicht. (Sonst 
würde der 4x2 Ja ausreichen...)

GRuß
Carsten

von Helmut L. (helmi1)


Angehängte Dateien:

Lesenswert?

Leo-andres H. schrieb:
> Oder mal als Liste, folgende Verbindungen sollen herstellbar sein (nur
> eine Verbindung zur gleichen Zeit):
> - USB-UART <-> Atmega 1
> - USB-UART <-> Atmega 2
> - RS232-UART <-> Atmega 1
> - RS232-UART <-> Atmega 2

Wenn man diese Beziehung ein bisschen aufweicht geht das alles mit einem 
74HC157 zu machen.

Diese kleine Aenderung sieht folgend aus: Wenn der Atmega1 mit USB 
verbunden ist kann der Atmega2 mit RS232 verbunden sein und umgekehrt.

Damit kann jeder Atmega mit RS232 oder USB verbunden werden.
Das nicht verbunden kann man Softwaretechnisch durch abschalten des 
Uarts hinbekommen.

von Sam .. (sam1994)


Lesenswert?

HFE schrieb:
> Und ich brauche ein Bild von deiner
> Schaltung, sonst kann ich dir nicht folgen.

Stimmt auch nicht, es geht nur mit 2 Dioden + Pulldown oder OC OR. 
Entschuldige für die Verwirrung.

von Ulrich (Gast)


Lesenswert?

Es sollte auch mit einem 4053 noch gehen, wenn man zulässt dass das TX 
signal immer parallel an RS232 und USB geht. Das eine Signal geht dann 
halt an einen unbenutzen Port.

Beim 4053 hat man 3 getrennte Elektronische Umschalter:
2 davon Schalten zwischen den beiden ATMega um, und der Dritte ist für 
die Quelle (RX) vom USB oder RS232.

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.