Forum: Mikrocontroller und Digitale Elektronik 1 UART Interface -> 2 Geräte


von Athlon N. (athlon)


Lesenswert?

Hallo!
Ich habe gerade ein kleines Problem.

Ich möchte mit einem UART Interface (A) 2 Geräte (B & C) ansprechen, 
allerdings nicht gleichzeitig.

Das Senden von A nach B bzw. C habe ich bereits gelöst.
Problematischer ist, das A Daten von B bzw. C empfangen soll.

Dazu habe ich mal folgende Schaltung aufgebaut:
1
             _R_      
2
    B_TX ---|___|-o---->|---o------ A_RX
3
                  |         |
4
             _R_  |         |
5
    C_TX ---|___|-)--o->|---‘
6
                  |  |
7
           Pin3 --‘  | 
8
                     |
9
           Pin4 -----‘
Soll B an A senden:
Pin 3 -> hochohmig
Pin 4 -> niederohmig

Pegel sind 3.3V/0V bei 9600 baud.
R = 820 Ohm um den Strom auf 4mA zu begrenzen
Als Dioden hab ich jetzt mal 1N4148 Kleinsignaldioden eingesetzt. Die 
verursachen aber bei diesem Strom einen Spannungsabfall von 750mV.

Nun hab ich das Problem, dass bei A nur mehr die Pegel 2.5V/1.5V 
ankommen.

Komischerweise fällt der Pegel nicht mehr auf 0V herab. Woran liegt das? 
Würde es was nützen, Dioden mit niedrigerer Durchlassspannung (Schottky 
Dioden) zu verwenden?
Oder habt ihr bessere Vorschläge, dieses Vorhaben mit Dioden und 
Widerständen umzusetzen?

Eine Gatterschaltung möchte ich vermeiden, weil ich die Bauteile erst 
bestellen müsste.

Lg

: Bearbeitet durch User
von Stefan P. (form)


Lesenswert?

Ich nehme für sowas immer ein UND Gatter. Am besten noch PullUps 
spendieren, falls ein Gerät mal nicht verbunden ist.

von Max H. (hartl192)


Lesenswert?

Athlon N/a schrieb:
> Komischerweise fällt der Pegel nicht mehr auf 0V herab. Woran liegt das?
Du hast nichts, was die Leitung auf Masse zieht --> Pulldown einbauen. 
Bedenke aber, dass dieser mit R einen Spannungsteiler bildet. Also hast 
du noch weniger high Pegel, ist also keine so gute Idee...

Die oben erwähnten AND könntest du as je 2 Transistoren aufbauen.

von Athlon N. (athlon)


Lesenswert?

Ich danke euch. Ja das mit dem Pulldown hab ich schon versucht. Ein 100k 
Widerstand hat aber auch nicht wirklich eine Besserung gebracht.

Ich werde dann wohl ein AND Gatter kaufen und damit das Umschalten 
übernehmen, denn für eine vollständige Transistorlösung hab ich auch zu 
wenige auf Lager und außerdem würde die Schaltung unnötig groß werden.

Bezüglich Strombegrenzung. Das Gatter CD74HC08E hat einen maximalen 
In-/Outputstrom von ca. 20mA pro Pin.

Als MC kommt ein MSP430 zum Einsatz. Dieser verträgt 6mA 
In-/Outputstrom.

Muss ich zwischen TX und AND Eingang Widerstände einbauen, oder wird der 
Strom schon durch den TX Ausgang begrenzt?

Zwischen AND Ausgang und RX brauch ich wohl keine Widerstände, weil die 
als Input konfigurierten Ports hochohmig sind oder?

Zwischen Steuerpins und AND Eingang sind Widerstände notwendig. Wie groß 
dimensioniert man sowas üblicherweise? Reicht es, wenn noch 100µA 
fließen, oder kann der Strom noch weiter reduziert werden?

Sind diese AND Gatter eigentlich vor Reverse Current geschützt? Kann 
dazu leider nichts im Datenblatt finden:
http://www.produktinfo.conrad.com/datenblaetter/150000-174999/164208-da-01-en-CMOS_IC_CD74HC08E_DIP14_TID.pdf

@Stefan.P Pull Ups meinst jeweils vor RX oder? Wieso sollte an RX ein 
high Pegel anliegen?

Lg

von Max H. (hartl192)


Lesenswert?

Ich weiß etwas Besseres als AND Gatter: 2 Buffer mit tristate Ausgang 
oder einen Multiplexer wie den 47HC405x.

von Athlon N. (athlon)


Lesenswert?

Die Lösung mit der Tristate Logik gefällt mir sehr gut. Danke!

Somit kann ich mir vermutlich auch einige Widerstände sparen.

Der Buffer verträgt einen maximalen In-/Outputstrom von ca. 20mA pro 
Pin.

Als MC kommt ein MSP430 zum Einsatz. Dieser verträgt 6mA
In-/Outputstrom.

Brauch ich zwischen Buffer Ausgang und RX einen Widerstand, oder ist der 
als RX konfigurierte Port wie als Input Port zu sehen und hochohmig?

Zwischen TX bzw. Steuerports und Buffer Eingang brauche hier wohl keine 
Widerstände, weil die Buffer Eingänge nur an den MOS Gates angeschlossen 
sind.

@Stefan.P Pull Ups meinst jeweils vor RX oder? Wieso sollte an RX ein
high Pegel anliegen?

Lg

von Max H. (hartl192)


Lesenswert?

Athlon N/a schrieb:
> Brauch ich zwischen Buffer Ausgang und RX einen Widerstand, oder ist der
> als RX konfigurierte Port wie als Input Port zu sehen und hochohmig?
Ich kenne deinen µC nicht, aber normalerweise ist der RX Pin ein Input.

Athlon N/a schrieb:
> Zwischen TX bzw. Steuerports und Buffer Eingang brauche hier wohl keine
> Widerstände, weil die Buffer Eingänge nur an den MOS Gates angeschlossen
> sind.
Kein Widerstand nötig.

Athlon N/a schrieb:
> Wieso sollte an RX ein
> high Pegel anliegen?
Weil der Ruhepegel von UART '1' ist.

Mit den tristate Gattern brauchst du den Pullup immer noch, außer du 
kannst garantieren, dass immer genau ein Buffer auf Ausgang geschalten 
ist.

: Bearbeitet durch User
von Athlon N. (athlon)


Lesenswert?

Danke, hat funktioniert! :)

Lg

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.