mikrocontroller.net

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


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Markus (Gast)


Bewertung
0 lesenswert
nicht 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)


Bewertung
1 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


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

von Markus (Gast)


Bewertung
0 lesenswert
nicht 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:
                   GND
                    |  
                  [10K]
                    |
                    |          +-------+
Enable-UART1 ------------------| HCT08 |----+
UART1-TX ->[Inverter (HCT14)]->|       |    |
                               +-------+    |
                                            |
                                            |
                   GND                      +--> Inverter (HCT14)-> uC 
                    |                       |
                  [10K]                     |
                    |                       |
                    |          +-------+    |
Enable-UART2 ------------------| HCT08 |----+
UART2-TX ->[Inverter (HCT14)]->|       |
                               +-------+ 


Enable-UART 1 = 1
Enable-UART 2 = 0
=> UART1 wird zum Controller geroutet

Enable-UART 1 = 0
Enable-UART 2 = 1
=> 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
1 lesenswert
nicht 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)


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

von Ludger Winter (Gast)


Bewertung
0 lesenswert
nicht 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 A. H. (pluto25)


Bewertung
0 lesenswert
nicht lesenswert
Markus schrieb:

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

Mit NAND Gattern würde es gehen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.