Forum: Mikrocontroller und Digitale Elektronik Mikrocontroller UART, RXD-Pin bei ausgeschalter Versorgungsspannung schützen


von Alexander H. (ill_son)


Lesenswert?

Hallo,

Ich habe folgene Frage:

Ich habe eine Eletronik mit uC. Dessen UART wird über ein 
USB-Seriell-Kabel, in dem der FTDI bereits enthalten ist, mit dem 
Rechner verbunden. Nun möchte ich den RXD-Pin dagegen schützen, dass er 
als "alternativer Versorgungspin" beansprucht wird, wenn VCC 
ausgeschaltet, das Kabel jedoch gesteckt ist.
Wie mache ich das am einfachsten/besten? Ich dachte an eine Diode in 
Längsrichtung. Gibts es CMOS-Schalter, die am Eingang Spannungen 
erlauben, wenn die Versorgungsspannung fehlt? Die Datenrate ist nicht 
hoch, momentan 9600, später vielleicht 19200 Baud.


Grüße, Alex

von meckerziege (Gast)


Lesenswert?

Widerstand in Serie kann schon reichen, ein paar mA tun dem Chip nix.
Alternativ vollständig entkoppelt per optokoppler oder ADUM. Teurer, 
aber hat auch ihre Vorteile!

von Alexander H. (ill_son)


Lesenswert?

Hi,

danke für deine Antwort. Serienwiderstand 1k ist schon drin. Der reicht 
aber nicht, weil ich die Elektronik per Selbsthalteschalte zuschalte und 
jedes mal, wenn die UART gesteckt wird, läuft die Eletronik los, weil 
sie trotzdem über den Pin Strom zieht. Aber Optolkoppler oder ADUM (was 
auch immer das ist) schaue ich mir mal an.

von Stefan F. (Gast)


Lesenswert?

Dann mache das so:
1
                       2,2k Ohm
2
                   +---[===]---o VCC
3
                   |
4
Signal o----|<|----+-----------o RxD µC

von R. M. (rmax)


Lesenswert?

Pullup am Controller und Diode Richtung FTDI.

[Edit]Stefan war schneller, aus dem Bauch raus würde ich den Pullup aber 
größer machen, sagen wir 4k7 oder 10k.[/Edit]

: Bearbeitet durch User
von A. S. (Gast)


Lesenswert?

Sind denn die Versorgungen von 232 und µC entkoppelt? Sonst könnte das 
aufstarten doch auch über VCC laufen.

Eventuelle post doch deine Selbsthalteschaltung, vielleicht kann man die 
auch ein wenig modifizieren, dass sie bei gewolltem Abschalten eine 
kleine Last (z.b. 100 Ohm) zuschaltet.

von Alexander H. (ill_son)


Lesenswert?

Danke für die Antowrten. Auf die Schnelle werde ich mal Stefans Lösung 
testen, die kann ich fix zusammenbasteln um erstmal weiterzukommen. 
Einen Eingang hat nämlich schon dicke Backen gemacht. Am Ende werde ich 
wohl die saubere Lösung per Isolator-IC realisieren.

Ich hätte mal noch eine andere Frage. Wenn ich am USB-Seriell-Kabel RXD 
und TXD messe, wenn es nicht mit der Elektronik verbunden ist, aber im 
PC steckt, haben beide Leitungen einen High-Pegel, nicht nur TXD, wie 
ich das erwartet hätte. Wieso? RxD ist doch der Eingang. Müsste ich am 
Ende beide Pins des uC schützen?

Grüße, Alex

von Brathähnchen (Gast)


Lesenswert?

Aus der Little-Logic-Reihe 
(http://www.ti.com/lit/sg/scyt129f/scyt129f.pdf) haben viele das 
"Ioff"-Feature:
Ioff protection circuitry ensures that no excessive current is drawn 
from or to an input, output, or combined I/O that is biased to a 
specified voltage while the device is powered down. (aus 
http://www.ti.com/lit/an/scea026/scea026.pdf)
Am einfachsten wäre dann ein Buffer wie z.B. 1G34 
(http://www.ti.com/lit/sg/scyt129f/scyt129f.pdf)

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Alexander H. schrieb:
> Wieso?

Dein Messgerät misst sehr hochohmig. Belaste mal die Pins während Deiner 
mit einem 10- oder 20 kΩ-Widerstand gegen Masse.

von Stefan E. (sternst)


Lesenswert?

Alexander H. schrieb:
> Ich hätte mal noch eine andere Frage. Wenn ich am USB-Seriell-Kabel RXD
> und TXD messe, wenn es nicht mit der Elektronik verbunden ist, aber im
> PC steckt, haben beide Leitungen einen High-Pegel, nicht nur TXD, wie
> ich das erwartet hätte. Wieso? RxD ist doch der Eingang.

Da wird einfach ein Pull-Up dranhängen, sonst würde der PC ja laufend 
Müll empfangen, wenn kein Gerät angeschlossen ist.

von A. S. (Gast)


Lesenswert?

Alexander H. schrieb:
> Einen Eingang hat nämlich schon dicke Backen gemacht. Am Ende werde ich
> wohl die saubere Lösung per Isolator-IC realisieren.

Warum postest Du Dein Problem nicht hier? Mit 99.9 wird weder ein 
Isolator-IC notwendig sein, noch ein Eingang dicke Backen machen.

Ich glaube, RS232 ist so mit der meist überschätzte 
Kommunikationsstandard. Ohne Max232-Vodoo nicht beherrschbar.

Gür Rx macht ein MAX wenig Sinn, und selbst Tx geht oft ohne.

Nicht falsch verstehen: Die MAX sind idiotensicher. Aber bevor man es 
noch komplizierter macht, dann lieber einfacher.

von Alexander H. (ill_son)


Lesenswert?

Brathähnchen schrieb:
> Aus der Little-Logic-Reihe...

Danke, das sieht nach der einfachsten und günstigsten "offiziellen" 
Lösung aus.

Achim S. schrieb:
> Warum postest Du Dein Problem nicht hier? Mit 99.9 wird weder ein
> Isolator-IC notwendig sein, noch ein Eingang dicke Backen machen.
>
> Ich glaube, RS232 ist so mit der meist überschätzte
> Kommunikationsstandard. Ohne Max232-Vodoo nicht beherrschbar.
>
> Gür Rx macht ein MAX wenig Sinn, und selbst Tx geht oft ohne.
>
> Nicht falsch verstehen: Die MAX sind idiotensicher. Aber bevor man es
> noch komplizierter macht, dann lieber einfacher.

Ich verstehe deinen Post nicht so richtig.

Grüße, Alex

von A. S. (Gast)


Lesenswert?

Alexander H. schrieb:
> Ich verstehe deinen Post nicht so richtig.

Du hast eine Schaltung, die macht Probleme. Du zeigst uns aber weder 
diese Schaltung, noch kannst Du das Problem schildern.

Wenn das RX Dein Problem ist, dann kannst Du Rx auch einfach am MAX 
vorbei auf einen (Bipolar-NPN-) Transistor führen. Mit 2 Dioden und 3 
Widerständen hättest Du eine perfekte Eingangsschaltung, die ganz sicher 
keine Rückwirkung auf irgendein VCC hat.

Vermutlich geht es noch einfacher, wenn Du uns zumindest die relevanten 
Teile Deiner Schaltung zeigst.

Wenn ein Eingang "Dicke Backen" gemacht hat, ist gar ein simpler Fehler 
sehr wahrscheinlich.

von Sascha W. (sascha-w)


Lesenswert?

@Achim,

er hat einen μC und einen USB-RS232-TTL Umsetzer.
Einen MAX 232 gibt's da nicht.

Sascha

von A. S. (Gast)


Lesenswert?

Oh, sorry. Dann ist die Diodenschaltung (stefanus und max) mehr als 
ausreichend und das Problem keines mehr.

von Bastian W. (jackfrost)


Lesenswert?

Hi,

ich hatte das gleiche Problem bei meiner Steuerung für die 
Pferdefütterung eines Kollegen. Ich hab da für RX und TX einfach 
SN74LVC1T45DBV genommen. Wenn eine oder beide Vccs fehlen/fehlt, dann 
ist der Ausgang Tristate. Mit einem Pullup hast du dann auch den 
richtigen Pegel.

https://www.mikrocontroller.net/attachment/315896/Ausgabe_Schematic.png

Gruß JackFrost

von Manfred (Gast)


Lesenswert?

Alexander H. schrieb:
> Aber Optolkoppler oder ADUM (was
> auch immer das ist) schaue ich mir mal an.

Einen Optolkoppler kenne ich auch nicht, aber den ADUM-Koppler als 
Trennung einer seriellen Schnittstelle habe ich hier benutzt: 
Beitrag "Re: Arduino ProMini galvanisch getrennt"

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.