12-V-Eingang an 3,3-V-GPIO, TVS-Pulldown oder Schottky-Pullup?

12

Ich baue meine eigene SPS, die permanente Eingänge von bis zu 30 V DC in einen STM32F mit 3,3 V Eingängen aufnehmen muss.

Der geschaltete Eingang muss mit 8-30 V arbeiten, aber in 90% der Fälle wird die Eingangsspannung auf 12 V oder 24 V festgelegt. Die Eingänge werden immer nur Schalter wie Endschalter sein, sodass ich mich nicht um das Erkennen kümmern muss Eingaben von weniger als 8 V oder Eingaben von Sensoren usw., ich mache mir auch keine Sorgen um die Geschwindigkeit, da die Schalter realistisch gesehen alle 1 s schneller sind. Ich muss nur sicherstellen, dass mein Mikrocontroller geschützt ist.

Ich möchte eine universelle Schaltung, die ich in mehreren Produkten / Projekten ähnlicher Art verwenden kann, damit die Anzahl der Komponenten, die Kosten und der Platzbedarf auf der Leiterplatte so gering wie möglich sind, damit ich eigentlich keine Optokoppler verwenden möchte.

Zwei Elektronikingenieure haben Folgendes empfohlen, aber ich bin mir nicht sicher, wie es am besten ist:

Geben Sie hier eine Bildbeschreibung ein

Soll ich die obere oder die untere verwenden? Warum auch immer?

Terry Gould
quelle
5
Normalerweise sage ich das nicht, aber das klingt nach einem guten Ort für einen Optokoppler.
Matt Young
@MattYoung könnten Sie Ihren Kommentar aktualisieren, um zu sagen, warum ein Optokoppler benötigt würde?
Richard Chambers
1
Die Schaltung , nach der ich in dieser Frage frage, ist eine Eingangsschaltung einer SPS einer großen Marke.
Ron Beyer

Antworten:

17

Dies ist eigentlich ein uraltes Problem mit SPSen und nicht annähernd so einfach wie Ihre beabsichtigten Lösungen.

Das größte Problem, das Sie haben, ist, dass Sie auch mit einer Vielzahl von möglichen Logikspannungen umgehen können müssen. Die tatsächlichen Logikpegel können viel höher sein als die 3,3-V-Schiene, die Sie intern verwenden. Einige Sensoren und Geräte haben logische Schwellenwerte über 5V. Wenn Sie also einfach eine Abschaltschaltung verwenden, wie Sie angegeben haben, wird der niedrige Pegel von solchen Sensoren nicht erkannt.

Die Eingangsstufe von SPS muss wesentlich flexibler sein.

Selbst wenn der Logikpegel des niedrigen Pegels akzeptabel ist, leiden diese Schaltungen unter unterschiedlichen Problemen.

Zener / TVS-Begrenzung.

Bildbeschreibung hier eingeben

Diese Schaltung hat den Vorteil, dass für eine bekannte Eingangsspannung der Zenerdimensioniert werden kann, damit die Spannung niemals die Schienenspannung überschreitet. Normalerweise würden Sie einen Zener mit einer kleineren Sperrspannung als die Schiene wählen, die jedoch höher ist als die logische Hochpegelschwelle.

Der Zener verbringt jedoch einen Großteil seines Lebens in umgekehrter Richtung, so dass Sie eine Strafe in Form einer umgekehrten Erholungszeit zahlen, wenn das Eingangssignal abfällt, was Ihr Signal um ein Vielfaches verzögert.

VichH

Over-Rail-Begrenzungsdiode

Bildbeschreibung hier eingeben

Die Verwendung der Diode bis zur Schiene hat das Problem, dass die Ausgangsspannung immer noch Vcc überschreitet, sei es nur ein wenig. Dies kann sich jedoch nachteilig auf die Eingabe auswirken. Ferner bedeutet in diesem Fall die Rückwärtswiederherstellungszeit, dass für schnelle Eingangsflanken eine hohe Spannung sehr kurz durchkommt.

So

VÖL

Alternativen


Optokopplung.

Eine übliche Methode für SPS ist die Verwendung von Optokopplern.

schematisch

simulieren Sie diese Schaltung - Schaltplan erstellt mit CircuitLab

Diese Methode bietet Ihnen den zusätzlichen Vorteil der Isolierung und Erdungstrennung. Das Problem dabei ist, dass Sie eine Art Signalkonditionierung zwischen dem Sensor und dem Eingang benötigen, um sicherzustellen, dass die LED an der richtigen Schwelle leuchtet und dass die richtige Strommenge durch die LED geleitet wird. Diese Konditionierung könnte der oben gezeigte einfache Widerstand oder eine komplexe Schaltung sein, die einen Komparator irgendeiner Art enthält.

Die Geschwindigkeit des Optokopplers ist ebenfalls ein begrenzender Faktor. Diese Methode wird jedoch häufig verwendet, da sie Ihnen vollständige Flexibilität bietet.

Analoge Eingangskonditionierung

Eine andere Methode besteht darin, das Signal in analoger Form zu akzeptieren, es mit einer Variablenreferenz mit Hysterese zu vergleichen und auf diese Weise den Logikpegel zu erzeugen.

schematisch

simulieren Sie diese Schaltung

Offensichtlich müssen die Komponenten, einschließlich des Komparators, ausgewählt werden, um die maximalen Eingangsspannungen aufzunehmen. Die gezeigte Schaltung ist ziemlich einfach, sie kann mit Filtern, Reglern, ESD-Schutz usw. viel komplexer werden.

Kombination

Aus Isolationsgründen könnten Sie das oben Genannte kombinieren und den Komparator einen Konstantstromtreiber an die LED eines Optokopplers anschließen lassen.

Wenn ich ein Produkt entwickeln würde, würde ich all das auf einem kleinen Einsteckmodul zusammenbauen, das in Kartensteckplätze auf einer "Hauptplatine" gesteckt werden könnte, wie sie für Karten in PCs verwendet werden. Auf diese Weise können Sie sie leicht ersetzen, wenn Sie frittiert werden. Mit dieser Methode können Sie auch andere Eingangstypen zur Verfügung stellen, z. B. einen Glasfasereingang.

Trevor_G
quelle
2
Wäre ein BJT oder ein FET nicht eine gute, sichere und kostengünstige Möglichkeit, dies zu tun? OK, das Signal wäre invertiert, aber die Software würde das beheben. Echte Frage, nicht zu versuchen, klug zu sein.
DiBosco
VÖL
awjlogan
Vielen Dank für Ihre sehr detaillierte Antwort. Ich habe gerade meine Frage aktualisiert, um einige der von Ihnen genannten Probleme zu beantworten. Die Eingangsspannung beträgt 8-30 V mit einer maximalen Frequenz von 1 s
Terry Gould
@ TerryGould cool, dann habe ich dir schon so ziemlich alles gezeigt, was du wissen musst :)
Trevor_G
Würde sich viel ändern, wenn der Eingang 5V tolerant wäre? Viele STM32F-Geräte haben ein absolutes Maximum von 5,3V. Auch Vih ist 0,7 * Vdd, also 2,3 V für eine 3,3 V-Schiene.
Jan Dorniak
5

100k ist viel zu hoch. Es würde von fast jedem Relais- oder Schaltvorgang in der Nähe ausgelöst. Nicht wirklich zuverlässig für eine SPS, wenn Sie mich fragen.

Es gibt tatsächlich Normen und Vorschriften für SPS . Da Sie möchten, dass sich alle SPS-Anbieter in Installationen ähnlich verhalten, wäre es schön, wenn verschiedene Modelle problemlos miteinander verbunden werden könnten.

Zum Beispiel hält der Eingang es nur einen auf , wenn es mindestens ~ 2 mA ist versinkt und es ist über 10V. (IEC 61131-2) iec 61131-2

Bei Passiven ist dies nicht möglich, weshalb es Teile wie SN65HVS880 gibt.

In meiner vorherigen Antwort habe ich ein schematisches Beispiel gegeben, wie Sie versuchen können, diesem Verhalten mit passiven Elementen * nahe zu kommen.

Ein einfacher 100K und ein BAT54S sind nicht zuverlässig, das kann ich Ihnen aus Erfahrung sagen.

sps eingabebeispiel
vorherige Antwort

* separater schmitt auslöser nicht erforderlich

Jeroen3
quelle
2

Beides ist akzeptabel. Sie müssen sicherstellen, dass der Widerstand richtig dimensioniert ist, damit der Eingangsstrom nicht dazu führt, dass die Eingangsspannung unter V_IH fällt. Bei CMOS ist dies jedoch trivial, da der Eingangsstrom so klein ist (100k sind mit ziemlicher Sicherheit in Ordnung).

Die einzige Einschränkung bei der zweiten ist, dass Sie sicherstellen müssen, dass die Gesamtlast von 3,3 V niemals weniger als 30 V / 100 k beträgt (mal so viele Eingänge Sie haben), da sonst die 3,3-V-Schiene möglicherweise auf a angehoben wird Spannung, die die angeschlossenen Geräte beschädigen könnte. Wenn Sie das Mikro in den Ruhemodus versetzen, wird es möglicherweise so wenig zeichnen.

Die andere Einschränkung ist, dass in beiden Fällen der 100k-Widerstand mit der Eingangskapazität als Tiefpassfilter wirkt, der die Eingänge verlangsamt. Bei einer Eingangskapazität von 10 pF haben sie eine maximale Umschaltrate von ca. 100 kHz und eine Verzögerung von ca. 2 Mikrosekunden.

τεκ
quelle
Funktioniert auch nicht, wenn VÖLdes angeschlossenen Sensors> 1,5V oder so.
Trevor_G
"Funktioniert auch nicht, wenn VOL des angeschlossenen Sensors> 1,5 V oder so ist." - Fügen Sie einen Widerstand von GPIO zu Masse hinzu, um einen Spannungsteiler zu bilden. Problem gelöst!
Bruce Abbott