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.
microcontroller
voltage
input
pins
Christian
quelle
quelle
Antworten:
Verwenden Sie eine Schaltung wie diese:
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.
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.
quelle
Ich würde eine Widerstandsteilerlösung wie unten gezeigt versuchen.
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.
quelle
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.
quelle
Wenn die Signalpegel GND und 12 V (oder> 5 V) sind, ist dies der einfachste und 100% sicherste Weg:
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.
quelle
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.
quelle
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:
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
quelle
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.
quelle
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.
quelle
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.
quelle
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.
quelle