Hallo, ich möchte gerne drei AVR mittels UART verbinden. Jeder AVR hat seine eigene Versorung über eine Batterie. Der Steuer AVR wird mit 3,3V, die Empfänger mit 5V betrieben. Die Masse ist bei allen die selbe. Den Steuer AVR mit 5V zu betreiben ist nicht möglich. An die UART Schnittstelle des Steuer AVR werden beide Empfänger UART angeschlossen. Die UART Verbindung funktioniert wunderbar, solange die Batterie an jedem der Empfänger funktioniert. Sobald eine Batterie leer ist, bzw. nicht angeschlossen, bricht der Pegel des UART Signals auf etwa 1,2 V ein und wird bei dem funktionieren Empfänger nicht mehr erkannt. Wie kann ich dieses Problem lösen? Ist es möglich das Signal hoch zu ziehen? Einen Ausfall einer Empfänger Batterie kann ich erkennen. Vielen Dank Georg
Verstehe die Aufgabenstellung nicht so ganz. Der uC ohne Stromversorgung kann doch eh keine Daten verarbeiten, der braucht dann auch keinen gültigen Pegel am UART-Eingang mehr, der ist doch tot. Ein Schaltplan wäre hilfreich für die Definition der Aufgabenstellung.
Na er sagt er hat 2 Empfänger A und B. Wenn bei A die Batt zusammenbricht, empfängt auch B (volle Batterie) nichts mehr. So habe ich das verstanden.
> Wie kann ich dieses Problem lösen? Indem du die Leitung die gerade nicht gebraucht wird, abtrennst. > Ist es möglich das Signal hoch zu ziehen? Wenn du das machst dann laeuft dein Microcontroller ohne Strom wieder weil er sich ueber seine Schutzdioden versorgt. Olaf
Daniel R. schrieb: > Na er sagt er hat 2 Empfänger A und B. > > Wenn bei A die Batt zusammenbricht, empfängt auch B (volle Batterie) > nichts mehr. > > So habe ich das verstanden. Genau darum geht es. Olaf schrieb: > Indem du die Leitung die gerade nicht gebraucht wird, abtrennst. Wie mache ich das am besten? Das Signal mittels Transistorschalter durchschalten?
> Wie mache ich das am besten? Das Signal mittels Transistorschalter > durchschalten? Ich wuerde an den Empfangseingaengen eine Diode und einen Pullup an ihre jeweils eigene Betriebspannung machen. Dann kann man von aussen nur noch aktiv runterziehen. Ich hoffe das geht noch, da in dem anderen Thread jemanden drei Dioden und ein Widerstand zu kompliziert waren. Aber vielleicht hat Maxim das ja schon als Muster in einem Gehäuse. :-) Ich wuerde mir aber dann mal die Flanken an den Eingaengen anschauen ob sie noch okay aussehen. Da sie dann nicht mehr aktiv hochgezogen werden koennten die etwas schlapper werden. Haengt natuerlich vom Widerstand und der Baudrate ab. Olaf
Olaf schrieb: >> Wie mache ich das am besten? Das Signal mittels Transistorschalter >> durchschalten? > > Ich wuerde an den Empfangseingaengen eine Diode und einen Pullup an ihre > jeweils eigene Betriebspannung machen. Dann kann man von aussen nur noch > aktiv runterziehen. Die Frage ist an dieser Stelle: Was macht der Eingangspin vom µC, dessen Batterie gerade am sterben ist mit der Signalleitung. +--------- | +-------------------| RxD Controller A | | ------------+ | +-------------- | | +---------| RxD Controller B | Das ist doch die Situation. Und die Frage lautet. Wenn A der Saft ausgeht, was veranstaltet dann sein RxD Pin mit der Leitung. Ich gestehe: Ich weiß es nicht. Wie wäre es mit je einem Optokoppler vor den RxD Pins? Damit wäre die Signalleitung erst mal komplett von den µC entkoppelt. Oder verbraucht das schon zuviel Strom?
NPN Transistor in Emitterschaltung sollte auf funktionieren: Tx -------------------+--------------------------RX | |RC | | | | | / ----- |/ I/O-------|RB |---| ----- |\> | | | --- Allerdings brauchst du das für jeden Empfänger. Ein- und Ausschalten je nachdem ob die Batterie an ist.
> Und die Frage lautet. Wenn A der Saft > ausgeht, was veranstaltet dann sein RxD Pin mit der Leitung. Ich > gestehe: Ich weiß es nicht. Wieso? Das ist doch klar. Seine eigene Betriebspannung sinkt. Sagen wir mal der Prozessor laeuft dann mit 2-3V. Dann liegt an seinem RxD Pin eine Spannung von 5V an und die ist ueber seiner eigenen Betriebspannung. Dann fliesst ein Strom ueber die Schutzdioden am Eingang zur Versorung des Prozessors. Wenn der Strom gross genug ist dann geht der Eingang kaputt. Ist er so klein das der Prozessor das aushaelt kann es sogar sein das er sich aus der Leitung selber mit Strom versorgt und munter weiter laeuft. Ausserdem kommt natuerlich irgendwann der Punkt wo der Prozessor Unsinn macht weil die Spannung zu niedrig sein koennte damit er noch sein normales Programm ausfuehrt. Dann stuerzt er ab. Dann waere es sogar denkbar das ein fehlerhaftes Programm die RxD Leitung auf Ausgang schaltet und dann irgendwas da ausgibt. Auch da hilft meine Diodenloesung. Olaf
Ich würde - wie von Karl Heinz vorgeschlagen - versuchen, das mit Optokopplern zu lösen (z.B CNY 17). Das ist die übliche und sicherste Methode. Wenn dann doch irgendetwas dagegen spricht (wenig Platz auf der Platine...), kannst du ja immernoch stattdessen Dioden verwenden. Grüße
Hallo, danke schonmal. Optokoppler kommen nicht in Frage, Gründe sind der fehlende Platz und der Stromverbrauch. Ich werde es mit den Dioden testen.
Olaf schrieb: > Ich wuerde an den Empfangseingaengen eine Diode und einen Pullup an ihre > jeweils eigene Betriebspannung machen. meinst du das so? 5V | R pullup 0..3,3V | UART ---|< Diode--*------RxD Empfang Das funktioniert doch nicht, da die Diode immer im Durchlassrichtung geschalten ist, folglich der RxD immer auf 5V gepullt wird. Oder habe ich dich missverstanden?
Doch, das funktioniert schon. Wenn der UART-Ausgang auf High liegt, fließt ein Strom von +5V über den R, die Diode und die Schutzdiode des Senders nach +3.3V. Die Spannung am RxD dürfte also bei ungefähr 3.3V+0.7V (Schutzdiode) +0.7V (Diode) = 4.7V liegen. Wenn TxD auf Low liegt, fließt ein Strom von +5V über den R und die Diode in den TxD-Pin (und weiter nach GND). Die Spannung an RxD dürfte also bei ungefähr 0.7V (Diode) liegen. Wenn jetzt die 5V-Batteriespannung niedriger wird, sinkt nur die RxD-Spannung bei High. Wenn sie auf Null liegt, kann trotzdem von TxD kein Strom in den RxD-Pin (und über dessen Schutzdiode weiter nach +5V) fließen, weil die Diode diesen Strom sperrt. MfG, Heiko
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.