12V Eingang am Mikrocontroller Pin


8

Ich versuche Impulse / Sek. Zu zählen. an einem Mikrocontroller-Pin im Bereich von ~ 5 bis 100 Hz. Der µC kann mit 5 V Eingang betrieben werden, daher muss ich den Spannungspegel sicher senken.

Ein einfacher Widerstand in den Sinn kommt, noch dass die Blätter jeder Stöße offen direkt an den uC Pin - meh .

Ich bin auf diese Antwort gestoßen, aber die Frage bleibt, ob diese Schaltung zu "schnellen" 100-Hz-Änderungen fähig ist.

Gibt es eine bewährte und zuverlässige Möglichkeit (möglicherweise über einen IC?), 5- V- oder 3,3-V-Pins mit "verschmutzten" 12-V-Eingängen zu verbinden? Ich habe die 12V und 5V zur Verfügung, um jeden "fertigen" IC anzusteuern.


2
Widerstandsteiler + Zener / Klemmdioden?
Wesley Lee

2
Ist dies wirklich eine Frage, die mit einer einfachen Google-Suche nicht beantwortet werden kann?
Ale..chenski

16
Es kann beantwortet werden, aber ich hätte sehr gerne eine qualitativ hochwertige Antwort, bevor ich meine Ausrüstung durch meine eigene Dummheit zerstöre. Lassen Sie uns auf "Seelenfrieden" setzen?
Christian

8
@AliChen stackexchange soll ein kanonisches Repository für Fragen und Antworten sein. Selbst einfache Fragen können gut sein, wenn sie nützliche Antworten sammeln.
Wayne Conrad

2
100Hz ist nicht schnell.
user253751

Antworten:


13

Verwenden Sie eine Schaltung wie diese:

schematisch

simulieren Sie diese Schaltung - Schema erstellt mit CircuitLab

R1 und R2 bestimmen den Spannungsbereich und führen die anfängliche Division durch. Diese Widerstände müssen leistungsfähig sein. Typisch ist MELF 0,4W. Alle anderen können Chipwiderstände / Kondensatoren sein.

R3 verhindert, dass Überspannungen den Schmitt-Trigger beschädigen. R4 und R5 sind optional, um schwebende Signale zu vermeiden.
Bei Bedarf kann mit der Kombination R3 / R4 auch der Schwellenwert eingestellt werden.

C1 und C2 bestimmen die Höchstgeschwindigkeit. Die Kombination R3 / C2 kann langsam filtern. C1 filtert Transienten.

Ein separater Schmitt-Trigger wird verwendet, da Sie sie sehr klein und billig bekommen können. Und es verhindert, dass ein schwaches Signal über lange Spuren geleitet wird. Während es auch ein Opferteil bei großen Spannungsspitzen ist.

Ich habe diese Schaltung basierend auf dem entworfen, was ich in SPS gesehen habe. Die obige Schaltung ist für 24V. Stellen Sie die Widerstände auf 12 V gemäß IEC61131-2 ein.

iec 61131-2
Das Konzept des Standards besteht darin, sicherzustellen, dass der Eingang eine minimale Strommenge aufnehmen muss, bevor er als '1' betrachtet wird. Die drei Typen geben an, wie viel und werden basierend auf Umgebungsgeräuschen angewendet. Dies verhindert, dass Störungen es oder nahegelegene Relais berühren. Der Nachteil ist, dass R1 / 2 eine anständige Nennleistung und einen geringen Widerstand aufweisen muss.


Beeindruckend. Eine sehr gründliche Antwort auf eine zunächst einfache Frage. Vielen Dank.
Christian

Ich bin wirklich neugierig auf R4 und R5 - wann werden sie jemals etwas Nützliches tun? R2 + R3> R4 sowieso. Ist es für den Fall, dass eine der "Hochleistungs" -Komponenten ausfällt?
Pipe

@pipe R3 und R4 können dabei helfen, den Schwellenwert zu konfigurieren und gleichzeitig einen hochohmigen Pfad zur Logik bereitzustellen. R5 ist die meiste Zeit überflüssig, aber in dem Design, in dem dies verwendet wurde, konnte das mcu-Pulldown nicht verwendet werden. Wenn der Puffer aus irgendeinem Grund ausfallen würde, würde der mcu-Eingang kein 50-Hz-Brummen anzeigen. (Hinweis: zuverlässig wurde angefordert)
Jeroen3

17

Ich würde eine Widerstandsteilerlösung wie unten gezeigt versuchen.

Geben Sie hier die Bildbeschreibung ein

Wählen Sie das Widerstandsverhältnis so, dass die geteilte Spannung auf dem für die MCU geeigneten Pegel liegt, wenn der Eingang seine Nennspannung hat. Die Zenerdiodenspannung wird ausgewählt, um den MCU-Eingang zu klemmen, wenn der Eingang über den maximalen Eingang hinausgeht. Der Zener schützt auch die MCU, wenn der Eingang negativ wird.

Diese Lösung eignet sich hervorragend für den von Ihnen angegebenen relativ niedrigen Frequenzbereich.


1
Warum wählen Sie Zener als 4v7? Wäre 5v2 (5v1?) Eine bessere Lösung?
R. Joshi

7
@ R.Joshi: Wenn der 5-V-Mikrocontroller mit einer 10% igen toleranten Versorgung (4,5-5,5 V VDD) betrieben wird, kann das Anlegen von 5,2 V an den Pin mehr als das typische VDD + 0,3 V absolute max. Logic High wird bei 2V für TTL und 2/3 * VDD für CMOS erkannt, daher gibt es dort keine Probleme mit einem 4V7-Zener.
Hans

2
Ich wünschte wirklich, ich könnte zwei Antworten als "ausgewählt" markieren. Ihr Weg ist der tägliche Weg, doch Jeroens Antwort ist nur ein bisschen ausführlicher. Vielen Dank, dass Sie sich die Zeit genommen haben, um zu antworten.
Christian

8

Ich würde einen Widerstandsteiler verwenden und dann die uC mit einem 5,1-V-Zener schützen

Wenn Sie den Zener zwischen Pin und Masse parallel zu beispielsweise einem 10k-Pulldown-Widerstand schalten, speisen Sie dann Ihr spannungsgeteiltes Signal ein. Der Zener ist mehr als schnell genug und billig / einfach.

Ich mache das oft und teile das Signal vor dem Zenerbit mit einem Topf.

Eine andere Option ist wie verbunden, wenn Sie wirklich besorgt sind, dass ein Opto verwendet werden könnte, wenn es kein Sicherheitsproblem ist, würde ich mit dem oben genannten gehen oder den Stift normalerweise hoch von 5 V Vcc haben und ihn mit einem Fet (von oben auf meinem Kopf) nach unten ziehen 2N7000 sollte funktionieren) - aber es ist weniger einfach als die Zener-Option.


7

Wenn die Signalpegel GND und 12 V (oder> 5 V) sind, ist dies der einfachste und 100% sicherste Weg:

schematisch

simulieren Sie diese Schaltung - Schema erstellt mit CircuitLab

Ob es wirklich Ihren Zweck erfüllt, hängt von der tatsächlichen Impedanz des 12-V-Signals ab (sollte weit unter R1 liegen) und davon, was Sie unter "schmutzig" verstehen.

Wie @MichaelKaras richtig hervorhebt, kann der niedrige Pegel am µC-Eingang bis zum niedrigen Pegel des 12-V-Signals plus Vf der Diode (bis zu etwa 0,7 V) verschoben werden. Sie sollten überprüfen, ob dies in Ihrem Fall ein Problem ist oder nicht. Wenn dies der Fall ist, können Sie weiterhin versuchen, eine Schottky-Diode mit einer Vf von etwa 0,35 V zu verwenden.


Bei den meisten µCs kann man sogar den Widerstand fallen lassen und den internen Pullup für diesen Pin aktivieren.
Janka

Die hier vorgeschlagene Diodenlösung ist nicht immer die beste oder optimale Lösung. Die der MCU anliegende Eingangsspannung mit niedrigem Pegel wird durch einen Durchlassspannungsabfall der Diode plus der Ausgangsspannung mit niedrigem Pegel, die das 0- bis 12-V-Signal erzeugt, über GND liegen. Dies kann insbesondere dann ein Problem sein, wenn die Signale Rauschen tragen können und der MCU-Eingang mit Spannungspegeln vom Typ TTL für V IL spezifiziert ist. Oft kann diese Spezifikation nur 0,8 V betragen. Wenn diese Lösung verwendet wird, achten Sie auf eine Diode mit niedrigem Durchlassspannungsabfall wie eine BAT54.
Michael Karas

@MichaelKaras Sie haben Recht mit der Verschiebung des niedrigen Pegels durch die Vf der Diode; Dies muss berücksichtigt werden. Für 5V µC scheint mir V [IL] von 0,8V außergewöhnlich niedrig zu sein. Ich finde im Allgemeinen eine Spezifikation von 0,3 Vcc (~ 1,5 V).
JimmyB

Wenn Ihre MCU eine CMOS-Typspezifikation für V <sub> IL </ sub> hat, funktioniert dies möglicherweise in Ordnung. Ich entwerfe immer noch gerne so, dass es auch dann funktioniert, wenn die Spezifikation viel niedriger ist, nur um so viel operative Marge wie möglich zu erzielen. Selbst der Unterschied bei der Angabe einer Low-Drop-Diode ist ein guter Schritt in diese Richtung, wenn Sie sich für diese Art von Schaltung entscheiden. Ihre Schaltung eignet sich nicht besonders für Fälle, in denen der 12-V-Eingang möglicherweise negative Abweichungen aufweist.
Michael Karas

Genau. Margin-Design ist eine gute Sache. Und negative Spannungen am 12-V-Signal können in der Tat die Schaltung zerstören.
JimmyB

5

Ich würde einen Optokoppler verwenden, 100 Hz liegen leicht im Bereich eines anständigen. 4n25 fällt mir als gemeinsame Teilenummer ein, und ich weiß, dass dies viel besser als 100 Hz ist.


Das Problem bei der Verwendung eines Optokopplers zur Lösung dieses Problems besteht darin, dass davon ausgegangen wird, dass Sie Strom aus dem 12-V-Signal ziehen können. Sie könnten das 12-V-Signal puffern, dies würde jedoch eine zusätzliche Versorgung erfordern.
Jason Morgan

Ich bin mir sicher, dass Sie ein Opto erhalten können, das bei fast dem gleichen Strom wie ein Mikroeingang effektiv ist. Ab 12 V wird das Aufleuchten einer kleinen LED nicht viel belastet.
John U

1
Eine digitale Eingangsleckage liegt typischerweise zwischen 10 nA und 1 uA (temperatur- und prozessabhängig). Ich bin noch nie auf einen Optokoppler gestoßen, der mit 1uA arbeitet. Ein typischer Optokoppler, der als stromsparend vermarktet wird, z. B. Broadcom ACPL-x6xL, benötigt 1,6 mA. Das ist zwischen 1600 und 160000 mal so viel Strom. Aber dann, wie ich in meiner Antwort feststelle, hängt es von den Anforderungen ab, was funktionieren wird, damit ich eine Optolösung nicht ablehne.
Jason Morgan


2

Die ausgewählte Methode hängt teilweise davon ab, was das Eingangssignal tut, wie es sich verhält und wie sich dies auf die Eingangsschaltung und den Code auswirkt, der es liest.

zB Ist es immer 12V? Hat es Spitzen oder Geräusche? Wie viel Strom kann es fahren? Kann Strom hineingetrieben werden? Wird die Entnahme von Strom etwas anderes beeinflussen? Ist es sicherheitskritisch? ....

Aus diesem Grund kann es keine universelle Antwort auf diese Frage geben, da die „richtige“ Lösung davon abhängt, was der Rest des Systems tut. Die gewählte Lösung, die die Anforderungen erfüllt, weist unterschiedliche Kosten und Komplexität auf.

Das heißt, da es noch niemand vorgeschlagen hat, werde ich mich für einen FET-Eingang entscheiden.

Ein JFET oder MOSFET kann verwendet werden und kann entweder ein gemeinsamer Source- oder ein gemeinsamer Drain-Modus sein. Zum Beispiel gemeinsamer Abfluss:

schematisch

simulieren Sie diese Schaltung - Schema erstellt mit CircuitLab

Der Vorteil des Common-Drain-Modus besteht darin, dass der Eingang sowohl an einen analogen (z. B. ADC) als auch an einen digitalen Pin angeschlossen werden kann. Wenn das Signal wirklich digital ist, würde ich den Schmitt-Trigger am CPU-Eingang (falls vorhanden) aktivieren oder einen externen Schmitt-Puffer zum Eingangspin der CPU hinzufügen.

Vorteile

  • Sehr hohe Eingangsimpedanz
  • Teilweise isolierter Eingang (kann je nach FET-Auswahl +/- 30 V aushalten)
  • Analog möglich
  • Minimale Auswirkung auf das externe Signal

1

schematisch

simulieren Sie diese Schaltung - Schema erstellt mit CircuitLab

Abbildung 1. Optisch isolierte Schnittstelle. Verwenden Sie internes Pull-up für GPIO.

Ein Optokoppler löst mehrere Probleme.

  • Vollständige elektrische Trennung zwischen dem 12-V-Stromkreis und der 5-V-Logik.
  • Behandelt verschmutztes 12-V-Signal ohne Risiko.
  • Einfachheit.

1

schematisch

simulieren Sie diese Schaltung - Schema erstellt mit CircuitLab

R1, R2 und C1 bilden einen Spannungsteiler mit einem 1-kHz-Tiefpassfilter. Jedes unerwünschte Hochfrequenzsignal, das auf den 12 V übertragen wird, kann weggefiltert werden. Die Berechnung für die Filterfrequenz beträgt 1 / (2 pi R2 C1). Hinweis: Die Basis benötigt mindestens 0,7 V, um ordnungsgemäß zu funktionieren. Seien Sie vorsichtig, wenn Sie den Widerstand einstellen.

BJT wird verwendet, weil es im Vergleich zu Mosfet sehr häufig ist. Falls die 12 V noch aktiv sind, aber die 5 V für Ihre uC nicht verfügbar sind, leitet der BJT keinen Strom in den Pin und verursacht Schäden.

Verwenden Sie für die uC-Programmierung einen High-Low-Trigger, um Ihren Puls zu zählen. Da diese Schaltung den Impuls umkehrt.


-2

Im Allgemeinen sind MCU-Eingänge bereits mit Klemmdioden geschützt, solange Sie einen Widerstand mit einem optimierten Wert (hoch genug für die Klemmen und niedrig genug für die Abtastung) und eine gute Bypass-Kapazität zwischen VDD und VSS haben, haben Sie keine sich darüber Sorgen machen. Ein Widerstand reicht also aus.

edit: Dank des Kommentars von PeterJ möchte ich es etwas näher erläutern. Die geringste Leistung, die die MCU verbraucht (vorausgesetzt, sie schläft nicht), die Bypass-Kapazität, der Widerstandswert; Wenn all dies am Kompromisspunkt ist - was leicht der sehr allgemeine Fall ist, wenn nur ein Widerstand von etwa 10 kOhm verwendet wird -, ist der einzige Widerstand für die einfache Anwendung des OP in Ordnung.


4
Ein Problem, das ich vor vielen Jahren dabei festgestellt habe, ist, dass Vcc, obwohl es möglicherweise nichts beschädigt, intern etwas nach oben driften kann (bis die Diode leitet) und je nach Mikrocontroller Dinge wie ADC-Messwerte ausgeben kann.
PeterJ

@PeterJ Es funktioniert gut, wenn Sie garantieren können, dass mindestens so viel Strom aus der Versorgung entnommen wird. Fügen Sie im schlimmsten Fall einen Blindwiderstand hinzu…
CL.

Obwohl "böse", habe ich dies bei vielen billigen Konsumgütern gesehen. Ich habe einmal einen Wecker repariert, bei dem das Netz über einen 10M-Widerstand als Zeitreferenz in einen digitalen Eingang eingespeist wurde. Es überrascht nicht, dass der Chip tot war.
Jason Morgan

-5

Sie können sich für einen Spannungsregler LM7805 / LM7803 für 5 V bzw. 3,3 V entscheiden. Ich gehe davon aus, dass der uC von einer strombedürftigen Last, falls vorhanden, isoliert ist.


1
Es ist kreativ. Sie werden jedoch mit hoher Geschwindigkeit außerhalb der Spezifikation arbeiten. Wenn es alles war, was Sie herumliegen hatten, vielleicht.
Jeroen3
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.