1 UART Interface -> 2 Geräte

OP #3547340
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
#3547548
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.
OP #3548572
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
OP #3548672
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
#3548688
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren