Forum: Mikrocontroller und Digitale Elektronik Zwischen UART Quellen umschalten


von aerodude (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

bei mir ergibt sich folgende Situation:

Mein Mikrocontroller (ATmega8) ist per UART mit einem GPS und einem XBEE 
Funkmodem verbunden. Das Ganze ist für ein Amateur-Raketen Projekt, 
dabei soll eine an einem Fallschirm hängende Kapsel autonom gesteuert 
werden.

Hauptsächlich, und das funktioniert auch schon soweit, hängt das GPS am 
RX, und das XBEE am TX des Megas.
Jetzt wäre es ganz nett, wenn ich trotzdem die Möglichkeit hätte, auch 
vom XBEE Daten zu empfangen, so dass ich noch Konfigurationen 
(Ziel-Koordinaten, etc.) eingeben kann, ohne dass ich Kabel an die 
Platine anschließen muss.

Nun würde ich für diesen Fall gerne zwischen den beiden Quellen 
umschalten können. Leider ist mein Wissen, und mein Bestand begrenzt, 
aber im Anhang habe ich mal eine Möglichkeit skizziert. Die RX Leitung 
wird über R1 High gehalten, und kann über N-Fets Low gezogen werden. 
Wenn Input1 High und Input2 Low liegen ist TX1 aktiv, für TX2 umgekehrt. 
Nun würde ich gerne Rückmeldung erhalten, ob ich da grobe Fehler begehe, 
oder ob das so funktioniert.

Vielleicht sehe ich ja auch nur den Wald den vor Bäumen nicht, und es 
geht alles noch einfacher. Software UART wäre evtl. auch eine 
Möglichkeit, möchte ich aber vermeiden.

Was meine Hauptfrage bezüglich der Schaltung ist, ist ob die Mosfet`s es 
ertragen wenn eine negative Drain-Source Spannung anliegt, oder ob ich 
das über Dioden absichern muss. Außerdem muss da evtl. noch eine 
Handvoll Widerstände drübergestreut werden?

Hier ist das Datenblatt der Fets die ich vorhanden hätte, aber da habe 
ich zu der Frage nichts gefunden.
http://www.diodes.com.tw/datasheets/ZVN3306F.pdf

Vielen Dank,
Jan

von Ralf (Gast)


Lesenswert?

Die Frage ist ob du umschalten musst, oder ob du z.B. einfach eins der 
Module deaktivieren kannst. Wenn z.B. sichergestellt ist, dass beide 
Module nicht gleichzeitig senden, kannst du auch einfach mit zwei Dioden 
arbeiten.

Ich persönlich würde wenn umschaltbar gefordert ist eher die Lösung mit 
Logikgattern bevorzugen. Und wenn die Module mit einer relativ niedrigen 
Baudraten senden, würde ich sogar soweit gehen, dass ich einen zweiten 
UART in Software nachbilde :)

Ralf

von aerodude (Gast)


Angehängte Dateien:

Lesenswert?

Danke Ralf,

mir ist auch schon aufgefallen, dass meine Schaltung so gar nicht 
funktionieren kann, da die Mosfets so invertieren würden.

Zu deinen Vorschlägen: Das GPS kann ich im Betrieb nicht deaktivieren. 
Das sendet je nach Wahl 1 bis 5 mal pro Sekunde einen NMEA String. Am 
XBEE kann ich mir natürlich aussuchen, wann ich sende. Theoretisch 
könnte der ATmega dann dem PC mitteilen wenn das GPS fertig ist, und 
dann der PC seine Daten senden. Das erscheint mir aber unzuverlässig, 
weil ich da nicht präzise vorhersagen kann, wann die Transmission 
tatsächlich stattfindet.

Ein weiterer Punkt: Sowohl GPS als auch XBEE senden 3.3V Level, der 
ATmega läuft aber auf 5V. Wenn ich da noch eine Diode zwischenschalte, 
könnte es evtl. Probleme geben.

Baudrate ist übrigens 115200.

Anbei ist eine erweiterte Skizze (wird schon aufwändiger als 
ursprünglich gehofft), die Fets sind ein anderer Typ, von denen ich auch 
noch welche habe. In deren Datenblatt 
(http://www.nxp.com/documents/data_sheet/BSN20.pdf) steht immerhin etwas 
zu meinem Thema drin, und zwar als "source-drain (diode forward) 
voltage" (1.5V @180mA). Ich Unwissender hatte zuvor nur nach "negative 
drain-source voltage" gesucht...
Dies lässt mich in der Annahme, dass der Fet "rückwarts" beschaltet auch 
Strom durchlässt, daher die zusätzlichen Dioden. Die mindern zwar die 
Gate-Drain Spannung, aber nach meinem Verständnis sollte das noch 
reichen um durchzusteuern.

Da es ja reicht, wenn ich das GPS daran hindern kann dazwischen zu 
funken, kann ich auch auf D2 verzichten und INPUT2 permanent LOW legen, 
denke ich.

Mit Logikgattern habe ich bisher nicht gearbeitet, ein paar Stichworte 
wären nett, dann kann ich besser suchen. Außerdem geht es mir ein wenig 
um Platinenplatz, die paar fets und Widerstände kann ich locker in SMD 
noch unter die Lochrasterplatine löten, einen DIL chip weniger.

Über weitere Tipps würde ich mich freuen,
Jan

von Ralf (Gast)


Lesenswert?

> Wenn ich da noch eine Diode zwischenschalte, könnte es evtl. Probleme
> geben.
Nö. An den jeweiligen TX die Kathode, die Anoden werden beide mit RX 
verbunden und der RX bekommt einen Pull-Up nach 5V. Der interne Pull-Up 
wird wahrscheinlich schon reichen, aber bei der hohen Baudrate ist ein 
externer sicher hilfreich.
Hier kann man dann allerdings nur schwer eine Steuerung implementieren.

Wenn man dann noch deinen Wunsch nach "platzsparend" einrechnet, wäre 
die Single-Chip-Lösung folgende:
http://www.nxp.com/documents/data_sheet/74LVC2G125.pdf

Die beiden Eingänge des Chips legst du jeweils an die Sender. Die 
Ausgänge werden zusammengeschaltet und auf den Empfänger gelegt. Die 
Enable-Eingänge steuern low-aktiv den jeweiligen Treiber durch, 
andernfalls ist der Ausgang hochohmig -> WICHTIG: Niemals beide Treiber 
aktivieren, ansonsten riskierst du einen Kurzschluss (evtl. Widerstände 
an die Ausgänge, bevor sie zusammengeschaltet werden).

Keine Gewähr für Funktion :)

Ralf

von aerodude (Gast)


Angehängte Dateien:

Lesenswert?

So,
Klausuren sind vorbei, jetzt geht's hier weiter. Nochmals Dank an Ralf, 
aber den Chip kann ich bei den üblichen Verdächtigen nicht finden. Es 
sollte aber auch mit Vorhandenem zu lösen sein.
Weitere Recherche hat immer noch keine vergleichbare Lösung gebracht, 
aber wohl jemanden der das Umgekehrte vorhatte, und zwar einen Ausgang 
auf zwei Empfänger umzuleiten. Da wurde diskrete Logik vorgeschlagen, 
also hab ich mal meine Schrottkiste nach so was durchforstet und bin 
auch fündig geworden. Da sind meine Kenntnisse allerdings rein 
theoretisch, und auch schon arg eingestaubt, aber mit Hilfe dieses 
Simulators
http://www.d-project.com/simcir/simcir.html
habe ich doch eine Schaltung gefunden, bei der ich mit 4 NAND auskomme 
(siehe Anhang). Wenn SELECT auf LOW liegt, folgt der Ausgang dem GPS 
signal, anderfalls folgt er dem XBEE signal.
Dafür hätte ich einen 74HC132 "Quad 2-input NAND Schmitt trigger" zur 
Hand und da das Ganze im Simulator so schön funktioniert, werde ich das 
wohl auch ausprobieren.

von Wolfgang (Gast)


Lesenswert?

Hallo,

wie gings denn weiter? Habe nämlich dasselbe Problem!

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.