Forum: Mikrocontroller und Digitale Elektronik Schutz von unversorgten Schaltungsteilen


von Dominik (Gast)


Lesenswert?

Hallo zusammen!

Bei der Auslegung von Schaltungen stolpere regelmäßig auf das Problem, 
dass GPIOs oder andere Eingange von allen möglichen Chips (zuletzt ein 
Raspbery Pi 4 CM) laut Datenblatt im unversorgten Zustand keine Spannung 
vertragen.

Nun passiert es in meinen Projekten öfters mal, dass Teile miteinander 
kommunizieren, die unterschiedliche Spannungsversorgungen haben. Zuletzt 
war das konkret das Raspberry 4 CM mit einem Chip von TI (siehe 
[hier](https://www.ti.com/product/TMS320F28377S)), die über UART 
kommunizieren. Laut Datenblatt darf beim Raspi im unversorgten Zustand 
nirgens Spannung anliegen. Bei unterschiedlichen Spannungsversorgungen 
ist ja nicht sichergestellt, dass eine davon mal nicht an. Selbst wenn 
sie am gleichen Rail hängen, haben sie auch unterschiedliche Zeiten, die 
die Spannungsversorgungen zum für ihren Startup brauchen. (Sequencing 
ist keine Option, da die Schaltungsteile im Notfall auch ohne einander 
funktionieren sollen)

Darum meine Frage: Wie geht ihr dieses Problem in der Praxis an? (Bzw 
geht ihr es überhaupt an :D )

Wenn man ganz penibel ist, müsste man ja beim jedem Signal einen 
Tristate-Buffer schalten, der die Spannung unversorgt aushält. Den 
Enable-Pin des Buffers an die Versorgung des zu schützenden Teils 
gehängt. Aber selbst dann ist nur schwer aus dem Datenblatt des 
jeweiligen Tristate Buffers zu lesen, ob der Ausgang im unversorgten 
Zustand auch hochohmig ist. Dazu ist das nicht gerade eine 
wirtschaftliche Lösung.

Im konkreten Fall des Raspis und dem UART befindet sich ja an dem zu 
schützenden GPIO eine Push/Pull Ausgangsstufe. Wenn man an der Spannung 
anlegt, fließt über die Bodydiode des "oberen Mosfets" Strom Richtung 
der eigentlichen Versorgung. Dieser Mosfet ist nach meinem Verständnis 
auch der Teil, der abrauchen würde. Ein entsprechender Serienwiderstand 
zur Strombegrenzung könnte somit auch eine - zugegebenermaßen relativ 
wilde und unschöne - Lösung sein.

Vll gibt es ja auch andere Methoden, wie man dieses Problem angeht. 
Freue mich schon auf eure Erfahrungen!

Dominik

von Gebhard R. (Firma: Raich Gerätebau & Entwicklung) (geb)


Lesenswert?

Dominik schrieb:
> Ein entsprechender Serienwiderstand
> zur Strombegrenzung könnte somit auch eine - zugegebenermaßen relativ
> wilde und unschöne - Lösung sein.

Sehe ich nicht so, der Widerstand soll das Signal nicht wesentlich 
beeinflussen, aber die Schutzwirkung haben. Macht man öfters.

Grüsse

von Flip B. (frickelfreak)


Lesenswert?

in software lösen, quell io pin erst auf ausgang schalten, wenn vom 
spannungsregler pg indiziert wird.

von 123 (Gast)


Lesenswert?

Was macht den dein TI wenn der TX zu stark belastet wird? geht der auch 
über den jordan? oder begrenzt der bereits auf x mA. bzw wie viel mA 
verträgt das CM an so einem pin.

von Dominik (Gast)


Lesenswert?

Gebhard R. schrieb:
> Sehe ich nicht so
Gebhard R. schrieb:
> Macht man öfters.

Gut zu hören.

Flip B. schrieb:
> in software lösen, quell io pin erst auf ausgang schalten, wenn vom
> spannungsregler pg indiziert wird.

Das ist auch eine gute Idee!

von Michael W. (Gast)


Lesenswert?

Dominik schrieb:
> Das ist auch eine gute Idee!
Das sollte eigentlich der Normalzustand sein, das so zu programmieren. 
Auch im fail safe Fall werden die Ausgänge und Eingänge 
schutzgeschaltet.

Dann gibt es noch eine Überwachung in Hardware, welche die Spannung 
checkt und empfindliche Bauteile gfs vom Bus abkoppelt, um sie und den 
Bus zu schützen. Das kann man / muss man auch mit den Bausteinen für 
Reset-Sequenzen verknüpfen.

von MaWin (Gast)


Lesenswert?

Dominik schrieb:
> Wie geht ihr dieses Problem in der Praxis an?

Richtig: open collector Ausgänge (oder eben ein nachgeschalteter BC547) 
und den pull up auf Empfängerseite.

Bei bidirektionaler Kommunikation den pull up nur freigeben, wenn  beide 
Seiten ihre Betriebsspannung haben.

Gepfuscht: 1k Ohm Serienwiderstand begrenzt den Strom über die 
Eingangsschutzdioden auf 4.5mA.

Professionell: Pegelwandler mit 2 Versorgungsspannungen, wie TXB0108 
oder IDT74FCT16244.

von Dominik (Gast)


Lesenswert?

123 schrieb:
> Was macht den dein TI wenn der TX zu stark belastet wird?

Der kann pro Pin bis 20mA (wenn ich das richtig im Kopf hab). Der Raspi 
kann 8mA pro Pin.

Danke fürs aufmerksam machen - dass die Quelle nicht überlastet wird 
muss man natürlich auch beachten. Muss sagen, dass hatte ich gerade 
vergessen.

von Dominik (Gast)


Lesenswert?

MaWin schrieb:
> Richtig: open collector Ausgänge (oder eben ein nachgeschalteter BC547)
> und den pull up auf Empfängerseite.
>
> Bei bidirektionaler Kommunikation den pull up nur freigeben, wenn  beide
> Seiten ihre Betriebsspannung haben.
>
> Gepfuscht: 1k Ohm Serienwiderstand begrenzt den Strom über die
> Eingangsschutzdioden auf 4.5mA.
>
> Professionell: Pegelwandler mit 2 Versorgungsspannungen, wie TXB0108
> oder IDT74FCT16244.

Ideal, danke!
Ob der Gegenpart versorgt ist oder nicht, kann man ja dann auch mit 
einem BC547 + Pullup feststellen, ohne dass man direkt eine Spannung vom 
Gegenpart direkt auf die CPU führt.

von Frank K. (fchk)


Lesenswert?

Es gibt Bausteine wie 74LVC2G241, die direkt dafür ausgelegt sind:
"This device is fully specified for partial power-down applications 
using IOFF. The IOFF circuitry disables the output, preventing a 
damaging backflow current through the device when it is powered down."

Andere Möglichkeit: Dual-Supply Levelshifter der 74LVC?T(2)45 Serie (bis 
5.5V) und der 74AVC?(2)45 Serie (bis 3.3V). Auch die sind dafür 
ausdrücklich ausgelegt, dass eine Seite stromlos sein darf.

Ich setze solche Bausteine gerne ein. Einen SOT23-5 oder MSOP08 
welchselt man einfacher als einen TQFP144, wenn etwas verkehrt läuft.

fchk

von Andreas M. (amesser)


Lesenswert?

P-Kanal Mosfet mit niedriger VGSth. Gate an Versorgungspannung vom Ziel, 
Signalquelle an Source, Ziel an Drain. Evt. noch einen Pullup ans Drain. 
Gibt einen leichten Spannungsabfall, der stört aber meist nicht.

Gibt auch fertig als Array ohne Body-Diode: 
https://www.ti.com/product/LSF0108
In der App Note dazu steht wie das Teil intern aufgebaut ist: 
https://www.ti.com/lit/pdf/slva675. Wenn man Vref_B genügend groß wählt, 
dann entfällt bei dem auch der Spannungsabfall

von MaWin (Gast)


Lesenswert?

Andreas M. schrieb:
> P-Kanal Mosfet mit niedriger VGSth..

... UND ohne interne Diode von S nach D, also quasi nicht beschaffbar.

von (prx) A. K. (prx)


Lesenswert?

Lösung aus der Bastelkiste: Pullup-R am Eingang, wenn nicht schon dort 
drin, und Schottky-Diode in Serie.

: Bearbeitet durch User
von PaLi (Gast)


Lesenswert?

Für Bussysteme verwende ich immer bauteile die eine saubere Trennung 
sorgen und HOTSWAP geignet sind.
Da wird system A von System B auch noch gaalvanisch getrennt und ev. 
auftretende Spikes bei Zuschalten der vorher Stromlosen teilen,
macht auch keine Abstürze.
Als Beispiel:
Für I²C Bus den ADuM1250 oder ADuM1251 oder ISO1540
Für RS232 den ISO7242

Das erspart viel ärger ;-) auch falls die busse über Stecker verbunden 
sind, können diese während dem Betrieb ein und ausgesteckt werden 
"HotSwap" eben

von (prx) A. K. (prx)


Lesenswert?

In der Antike hatte man bei Bussystemen TTLs verwendet. Denen ist das 
egal. In dieser Rolle überlebten TTLs auch noch, als sonst längst 
74HC(T) üblich waren.

von Andreas M. (amesser)


Lesenswert?

MaWin schrieb:
> Andreas M. schrieb:
>> P-Kanal Mosfet mit niedriger VGSth..
>
> ... UND ohne interne Diode von S nach D, also quasi nicht beschaffbar.

Du hast Recht, ich habe mich vertan, sollte N-Kanal und D an die Quelle 
heißen. Wie bei einem Levelshifter. Die Body Diode stört nur für den 
Fall das die Quelle nicht versorgt und das Ziel versorgt ist. Wenn man 
den Pullup groß genug wählt oder ganz weg lässt ist das vielleicht gar 
kein Problem. Man könnte auch zwei Mosfets Rücken an Rücken verschalten 
und die Gates an die jeweilige Versorgungsspannung. Dann müsste es auch 
bidirektional trennen.

von Janvi (Gast)


Lesenswert?

Flip B. schrieb:
>> in software lösen, quell io pin erst auf ausgang schalten, wenn vom
>> spannungsregler pg indiziert wird.

>Das ist auch eine gute Idee!

das Problem habe ich auch mit einem Analogausgang in einem Design. Wenn 
die Platine aus der Fertigung kommt bis dass sie geflasht ist, gibt es 
praktisch einen Kurzschluss wo ein OP dahinter heiss wird. Ist halt in 
Software gelöst. Passieren tut aber trotzdem nix.

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.