Forum: Mikrocontroller und Digitale Elektronik UART hin und her schalten / routen


von Markus (Gast)


Lesenswert?

Hallo zusammen,

für eine Testanwendung würde ich gerne mehrere UARTS von 
unterschiedlichen Modulen der Reihe nach mit einem Prüfadapter bzw. 
einem ATmega328p verbinden.
Sowohl RX als auch TX.

Also quasi:
1) Atmega verbindet sich zu Modul 1 und fragt Daten ab
2) Atmega verbindet sich zu Modul 2 und fragt Daten ab
3) Atmega verbindet sich zu Modul 3 und fragt Daten ab
...


Nun frage ich mich, wie man diesen UART Umschalter am sinnvollsten 
realisiert. Der Controller hat genügend Pins frei, so dass er jeden 
Testkanal mit einem eigenen I/O aktivieren oder deaktivieren könnte.

Aber wie sollte man das Signal routen?
Vielleicht per AND Gatter in Kombination mit einem Inverter?

Oder evtl. mittels 74*4066?

Freu mich sehr über Vorschläge.

LG, Markus

von K. S. (the_yrr)


Lesenswert?

Markus schrieb:
> Freu mich sehr über Vorschläge.

(De)Multiplexer oder Soft UART wenns für die Geschwindigkeit reicht?

: Bearbeitet durch User
von Theor (Gast)


Lesenswert?

Hüstel. Genau genommen "Demultiplexer". :-)

Viel falsch oder extrem ineffizient machen kann man in dem Fall eines 
Bastel-Hobby-Gerätes nicht. Falls  Du weißt, wie es mit AND-Gattern 
geht, würde ich das so machen. 4066 ist auch gut. Software UART ist auch 
gut.

von Dunno.. (Gast)


Lesenswert?

Prüfadapter schreit doch eigentlich nach Relais, alleine schon um die 
Prüflinge galvanisch getrennt zu halten.

Wenn man nen sinnvolles Protokoll hat kommt man mit den erkannten Bits 
aufgrund relaisprellen gut klar.

von Theor (Gast)


Lesenswert?

Hm. OK. "Testanwendung" und "Prüfadapter" könnte auch was 
professionelles oder akademisches sein. Gibts mehr Infos?

von Markus (Gast)


Lesenswert?

Hallo zusammen und Danke schon mal für die Beiträge.

Theor schrieb:
> Hm. OK. "Testanwendung" und "Prüfadapter" könnte auch was
> professionelles oder akademisches sein. Gibts mehr Infos?

Gern ;)

Also die Situation ist so, dass ich vor ein paar Jahren mal bei einer 
Firma gearbeitet habe, die nach dem Ableben des ehemaligen 
Geschäftsführers inzwischen insolvent ist.
Viele der ehemaligen Kunden kommen nun aber mit ihren Reparaturen auf 
mich zu und ich bin dabei, mir entsprechende Gerätschaften zu bauen um 
bspw. Tests automatisch über Nacht laufen zu lassen. Spart Zeit, denn 
eigentlich bin ich ja in einem anderen Job und das ganze läuft momentan 
(noch) so nebenher.

Wenn wir "professionell" und "hobby-bastel" sprechen, dann würde ich das 
irgendwo dazwischen einordnen. Könnte ggf. mal mehr werden.

Aktuell tendiere ich zu der Variante mit Logikgattern, weil massenhaft 
vorhanden. Der 4066 hat außerdem einen ROn von größer 100 Ohm. Bin nicht 
sicher, ob das problematisch sein könnte...

Beispielhaft für eine zwei TX Leitungen mit Logikgattern:
1
                   GND
2
                    |  
3
                  [10K]
4
                    |
5
                    |          +-------+
6
Enable-UART1 ------------------| HCT08 |----+
7
UART1-TX ->[Inverter (HCT14)]->|       |    |
8
                               +-------+    |
9
                                            |
10
                                            |
11
                   GND                      +--> Inverter (HCT14)-> uC 
12
                    |                       |
13
                  [10K]                     |
14
                    |                       |
15
                    |          +-------+    |
16
Enable-UART2 ------------------| HCT08 |----+
17
UART2-TX ->[Inverter (HCT14)]->|       |
18
                               +-------+ 
19
20
21
Enable-UART 1 = 1
22
Enable-UART 2 = 0
23
=> UART1 wird zum Controller geroutet
24
25
Enable-UART 1 = 0
26
Enable-UART 2 = 1
27
=> UART2 wird zum Controller geroutet

Meint ihr, das könnte man so machen?

vielen Dank und einen schönen Feierabend,

M.

von Au weia (Gast)


Lesenswert?

Markus schrieb:
> Meint ihr, das könnte man so machen?

Nein, die Ausgänge der Gatter arbeiten gegeneinander.

Ist sozusagen ein Buskonflikt.

von georg (Gast)


Lesenswert?

Markus schrieb:
> Meint ihr, das könnte man so machen?

Nein, man kann die Gatterausgänge (08) nicht einfach zusammenschalten. 
Das ergibt Kurzschlüsse.

Georg

von Au weia (Gast)


Lesenswert?

Markus schrieb:
> ber wie sollte man das Signal routen?

Wenn 8 Kanäle reichen verwende einen 1 aus 8 Selektor / Multiplexer
namens 74HCT138 oder ähnliches.

von Au weia (Gast)


Lesenswert?

Au weia schrieb:
> Wenn 8 Kanäle reichen verwende einen 1 aus 8 Selektor / Multiplexer
> namens 74HCT138 oder ähnliches.

Das Pendant zu diesem Output Multiplexer ist der Input Multiplexer
namens 74HCT151.

von Frank K. (fchk)


Lesenswert?

Muss das unbedingt ein AVR sein?

Hol Dir das hier für 20$.

http://www.ti.com/tool/EK-TM4C1294XL

Da sind 8 Hardware-UARTs drin, dazu 10 I2C und noch einiges mehr. Da 
brauchst Du einfach nicht umschalten - zumindest bis zu 8 Geräten.

fchk

von chris (Gast)


Lesenswert?

Weiß nicht ob RS485 was wäre.
Alle Teilnehmer sind gemeinsam am BUS aber wie du es möchtest 
zuschaltbar

von Wilhelm M. (wimalopaan)


Lesenswert?

Half-Duplex (TX mit Diode) und alle Module parallel mit einem Protokoll, 
was Kollisionen erkennen kann (wenn nötig).

von Ludger Winter (Gast)


Lesenswert?

Was willst du denn genau abfragen? Was sprich dagegen das mit einem PC 
zu machen?

USB UART Adapter kostet keine 2$ das Stück.

Die Teile an einen Raspberry hin, dann hast direkt Netzwerk und alles 
dran, die Kosten des Setups dürften bei weniger als 50€ liegen.

https://en.wikibooks.org/wiki/Serial_Programming/termios

Kannst auch mit boost serial oder Python machen, insgesamt in meinen 
Augen deutlich bequemer als da mit einem µC und irgendwelchen 
Multiplexern zu arbeiten, selbst mit einem ausgemusterten PC/Laptop ist 
das ein Kinderspiel.

von Achim H. (pluto25)


Lesenswert?

Markus schrieb:

> Beispielhaft für eine zwei TX Leitungen mit Logikgattern:

Mit NAND Gattern würde es gehen.

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.