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
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
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
> 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
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.