Forum: Mikrocontroller und Digitale Elektronik GPIO Schutzbeschaltung


von Marco T. (marcotp)


Lesenswert?

Ich habe eine STM32 MCU welche ich mit 3V3 betreibe. Diese wird von 
einem DC/DC Wandler 5-36V versorgt.

Ich möchte nun 4 Inputs erstellen welche von 3V-36V von der MCU als high 
erkannt werden. An die Eingänge werden z.B. die Ausgaben von 
Näherungssensoren (12V) verbunden.
* Reicht hier ein einfacher Resistor-Divider?
* Braucht es noch irgendeinen Schutz?
* Gibt es fertige Arrays die sowas machen?

Desweiteren benötige ich 4 Outputs welche wenn sie eingeschaltet sind 
den Strom (5-36V) auf Masse durchschalten.
* Was nimmt man hier für ICs? BJTs, MOSFETs?
* Kann mir jemand einen konkreten IC für meine Anwendung empfehlen?

von Wolfgang (Gast)


Lesenswert?

Marco T. schrieb:
> Reicht hier ein einfacher Resistor-Divider?

Genauso könntest du fragen, ob ein klassischer Spannungsteiler reicht. 
Widerstände sind lineare Bauelemente, so dass das Teilerverhältnis 
unabhängig von der Eingangsspannung ist. Wie willst du den auf deinen 
Bereich auslegen?

von Stefan F. (Gast)


Lesenswert?

Marco T. schrieb:
> Ich möchte nun 4 Inputs erstellen welche von 3V-36V von der MCU als high
> erkannt werden. An die Eingänge werden z.B. die Ausgaben von
> Näherungssensoren (12V) verbunden.
> * Reicht hier ein einfacher Resistor-Divider?

Das kommt auf deine Stromversorgung an. Wenn der Mikrocontroller keine 
Stromversorgung hat (ausgeschaltet) darf auch keine Spannung an seinen 
Eingängen anliegen. Bei Spannungsteilern wäre diese Bedingung nicht 
erfüllt, es fließt dann ein Strom durch die ESD Schutzdioden, die den 
Mikrocontroller unter Umständen parasitär versorgen. Dann bekommst du 
Probleme beim Einschalten der Stromversorgung (startet nicht richtig).

Deswegen empfehle ich am Eingang Optokoppler oder NPN Transistoren. 
Optokoppler bieten den Vorteil der Potentialtrennung.

> * Braucht es noch irgendeinen Schutz?

Kommt drauf an, vor was du schützen willst. Man kann es beliebig simpel 
oder über-komplex machen. Es gibt aber keine Universalschaltung die 
wenig kostet und keine Nachteile hat.

> * Gibt es fertige Arrays die sowas machen?

Es gibt mehrfach-Optokoppler.

> Desweiteren benötige ich 4 Outputs welche wenn sie eingeschaltet sind
> den Strom (5-36V) auf Masse durchschalten.

> * Was nimmt man hier für ICs? BJTs, MOSFETs?

Kommt auf deine Anforderungen an. IC's können nicht so viel Strom 
schalten, wie lose Transistoren. Ich würde es schon auf ein paar hundert 
mA auslegen, damit man ohne besondere Aufwände größere Relais und 
Signal-Leuchten anschließen kann.

> * Kann mir jemand einen konkreten IC für meine Anwendung empfehlen?

Meine Empfehlungen in 
http://stefanfrings.de/mikrocontroller_buch/Einstieg%20in%20die%20Elektronik%20mit%20Mikrocontrollern%20-%20Band%202.pdf 
Kapitel 2.2 und 3.4 helfen dir vielleicht dabei.

von Andreas H. (ahz)


Lesenswert?

Marco T. schrieb:
> Desweiteren benötige ich 4 Outputs welche wenn sie eingeschaltet sind
> den Strom (5-36V) auf Masse durchschalten.

Welcher Strom soll den da nach GND geschaltet werden? 5-36V ist ein 
Spannungsbereich.

/regards

von Dirk (Gast)


Lesenswert?

>Ich möchte nun 4 Inputs erstellen welche von 3V-36V von der MCU als high
>erkannt werden. An die Eingänge werden z.B. die Ausgaben von
>Näherungssensoren (12V) verbunden.
>* Reicht hier ein einfacher Resistor-Divider?

Wenn du 4 AD Eingänge frei hast und das Signal etwas belastet werden 
darf, dann könntest Du einen Spannungsteiler aufbauen.

von Wolfgang (Gast)


Lesenswert?

Marco T. schrieb:
> Ich möchte nun 4 Inputs erstellen welche von 3V-36V von der MCU als high
> erkannt werden.

Und welcher Spannungsbereich soll als low erkannt werden?

von Marco T. (marcotp)


Lesenswert?

Floating oder GND soll als low erkannt werden.

von Paul (Gast)


Lesenswert?

Marco T. schrieb:
> Floating oder GND soll als low erkannt werden.

Man lässt kein Digitalpin in der Luft hängen. Mach einen Pulldown dran 
oder aktiviere ihn in Software.

VG Paul

von Schorsch X. (bastelschorsch)


Lesenswert?

Bei Spannungen >9 <60 V ist der ISO1211 bzw. ISO1212 gut geeignet. 
Eingänge mit Strombegrenzung und galvanische Trennung. Versorgung aus 
dem Eingangssignal. Ansonsten Spannungsteiler + Diode. Der untere 
Widerstand gint low level, wenn offen.

Für die Ausgänge gibt es viele Möglichkeiten. Sollen diese 
kurzschlussfest sein ?

: Bearbeitet durch User
von Carsten-Peter C. (carsten-p)


Angehängte Dateien:

Lesenswert?

Hallo,
für den Eingangsschutz eines Lasers habe ich mal diese Schaltung 
genommen.X1 ist der Eingang und X2 der Ausgang.Wenn kein Pullup 
vorhanden ist, musst Du den Emitter mit einem Widerstand gegen die 3V3 
des MCU ziehen.
Gruß Carsten

von Marco T. (marcotp)


Angehängte Dateien:

Lesenswert?

Erstmal vielen Dank für eure Inputs.
Ich habe mich für einen Optokoppler entschieden, wohlwissend dass ich 
die Trennung der Masse nicht benötige.
Jetzt bleiben noch ein paar Fragen übrig:
* Bei den Eingängen habe ich in der MCU die Möglichkeit PullDown 
Widerstände zu aktivieren (between 30K and 50K). Dann könnte ich die 
R24, R27, R42 und R45 weglassen. Richtig?
* Bei den Eingängen habe ich einen Widerstand von 562 Ohm genommen 
sodass dieser ab 4-5 Volt als High erkannt wird. Würde das für den 
verwendeten Koppler passen?
* Bei den Ausängen bin ich etwas ratlos mit dem Widerstandswert (R22, 
R25, R28, R43). Wenn ich den wie eine LED berechne (Voltage Drop = 1.2, 
Forward current = 50mA, Supply Voltage = 3.3V würde ich auf einen Wert 
von 47R kommen. Kann das sein?

von Carsten-Peter C. (carsten-p)


Lesenswert?

Hallo,
schaue Dir das Datenblatt an und wähle Deinen Strom für beide 
Richtungen.
http://www.datasheetcatalog.net/de/
Suche dort den TLP291
Ich nutze gerne 1 bis 5 mA. Ganz grob gesehen liefert der OK den 
gleichen Ausgangsstrom, wie sein Eingangsstrom. Die 30 bis 50K sind da 
sehr hoch. 4,7 oder 10K würde ich nehmen. Nur bei höheren Taktraten 
brauchst Du auch höhere Ströme.
Gruß Carsten

von Stefan F. (Gast)


Lesenswert?

Marco T. schrieb:
> Floating oder GND soll als low erkannt werden.

Und 3V ist High.
Mache dir auch Gedanken um den Bereich zwischen 0V und 3V. Durch deine 
Schaltung mit dem Optokoppler bekommst du eine Schaltschwelle von 
ungefähr 1,3 Volt. Passt das?

Hast du bemerkt dass der Optokoppler "Not recommended for new design" 
ist? Lege dir genug Vorrat auf Lager.

Marco T. schrieb:
> Bei den Eingängen habe ich in der MCU die Möglichkeit PullDown
> Widerstände zu aktivieren (between 30K and 50K). Dann könnte ich die
> R24, R27, R42 und R45 weglassen. Richtig?

Ja aber...

50kΩ sind recht hochohmig. Hochohmige Eingänge reagieren empfindlich auf 
Radiowellen. Deswegen würde ich da lieber niederohmige Widerstände 
verwenden. 10kΩ sind OK. Radiowellen kann man auch mit Kondensatoren 
abblocken.

> Bei den Eingängen habe ich einen Widerstand von 562 Ohm genommen
> sodass dieser ab 4-5 Volt als High erkannt wird.

Wie hast du das ausgerechnet?
3,3V / 10kΩ = 0,33mA
Unter der Annahme dass der Optokoppler mindestens 50% 
Übertragungsverhältnis hat brauchst du 0,66mA am Eingang.
1,25V + (0,66mA * 562Ω) = 1,6V  nicht 4-5 V

Dann wolltest du bis 36V hoch gehen. Da fließen dann

(36V - 1,25V) / 562 = 62mA

Ein bisschen viel oder?

62mA * 34,75V = 2 Watt

Hoppla, da brauchst du aber fette Widerstände und eine gute Luftkühlung. 
Nimm lieber hochohmigere Widerstände. Da kannst du locker 1kΩ nehmen. 
Aber das müssten dann immer noch besonders belastbare Widerstände sein.

Eventuell macht es Sinn, den Strom bei hohen Spannungen zu senken, indem 
du Konstantstromquellen verwendest. Die gibt es als kompakte Bauteile 
mit nur 2 Pins.


> Bei den Ausängen bin ich etwas ratlos mit dem Widerstandswert (R22,
> R25, R28, R43). Wenn ich den wie eine LED berechne (Voltage Drop = 1.2,
> Forward current = 50mA, Supply Voltage = 3.3V würde ich auf einen Wert
> von 47R kommen. Kann das sein?

Betreibe sie nicht mit dem maximal zulässigen Strom. So viel kann der 
STM32 sowieso nicht liefern, ohne kaputt zu gehen.

Wie viel Strom braucht denn deine Last? Wenn du z.B. 2mA brauchst und 
der Optokoppler im schlechtesten Fall incl. Reserve für verschleiß ein 
Übertragungsverhältnis von 50% hat, dann musst du seine LED mit 2mA 
ansteuern.

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.