Dieses Problem ist Jahrzehnte alt, aber ich sehe auf dieser Website keine direkte Antwort darauf. Ich möchte folgendes:
Mit dieser Schaltung kann nur der Status der Taste im Inneren des Mikrocontrollers überprüft werden. Nichts Besonderes. Meine Fragen:
- Gibt es etwas Besseres als dieses einfache Design?
- Ist der Wert eines 100-Kilo-Ohm-Widerstands für unsere heutigen CMOS-Geräte wie dsPIC30FXXXX und nicht für eine Hochleistungsanwendung ausreichend?
Antworten:
Erstens haben viele Mikrocontroller und digitale Signalcontroller interne Pull-up-Widerstände. Hier ist ein Beispiel, ein Atmel ATMega164.
In der Regel gibt es ein Register, in dem die internen Klimmzüge ein- und ausgeschaltet werden können. Aufgrund von Abweichungen im Herstellungsprozess sind diese internen Klimmzüge in einem sehr großen Bereich erhältlich und keine gute Wahl, wenn Sie die Stromaufnahme in Anwendungen mit extrem geringem Stromverbrauch sehr genau kontrollieren müssen. Wenn es wichtig ist, die Anzahl der Komponenten niedrig zu halten, ist dies eine einfache Möglichkeit. Die Verwendung interner Klimmzüge für das Entprellen der Hardware wäre keine gute Idee, da es nicht möglich ist, ihren genauen Wert vorherzusagen.
Ob der 100 Wert ausreichend ist, hängt davon ab. Wenn es sich nur um einen Schalter handelt, der von einem Benutzer regelmäßig umgelegt wird, sind 100 eine gute Wahl, um den Stromverbrauch zu minimieren. Für Dinge, die schneller schalten werden, wie z. B. Drehgeber, würde ich den Prozess durchlaufenk Ωk Ω k Ω
Wenn also der maximale Senkenstrom pro GPIO-Pin 10 mA beträgt und bei 5 V arbeitet: 10 mA . Wenn Sie diesen R-Wert so klein wie möglich halten, werden die schärfsten Kanten und die höchsten Schaltfrequenzen berücksichtigt.R = V.ich= 5 V.10 m A.= 500 Ω
quelle
Einfacher geht es nicht.
Verwenden Sie einfach einen internen Pull-Up / Pull-Down-Widerstand in Ihrem Mikrocontroller.
100k sind ausreichend, aber interne Pullups könnten in einigen MCUs etwas niedriger sein, zum Beispiel in AVR atmega8 sind es 30-80kOhm für das Zurücksetzen des Pullups und 20-50kOhm für alle anderen E / A-Pins.
quelle
Besser kann nicht ohne bestimmte Kriterien beantwortet werden, an denen Sie messen können, die Sie nicht angegeben haben. In den meisten Fällen ist die angezeigte Topologie in Ordnung. Zwei Varianten könnten je nach Situation "besser" sein:
Viele Mikrocontroller haben interne Klimmzüge an einigen ihrer Pins. Diese sind für genau diese Art von Situation gedacht. Der Widerstand befindet sich dann im Mikro und Sie stellen ein bisschen irgendwo ein, um ihn zu aktivieren. Der einzige externe Teil, der benötigt wird, ist nur der Druckknopf selbst.
Eine weitere nützliche Variante, die Sie berücksichtigen sollten, ist die Ausführung mit geringem Stromverbrauch, bei der die Taste möglicherweise ein Schalter ist, der für längere Zeit geschlossen werden kann. In diesem Fall möchten Sie den langfristigen Durchschnittsstrom durch den Pullup-Widerstand minimieren. Sie machen es so groß wie möglich, aber es gibt Grenzen und Nachteile, wenn Sie es zu groß machen. Stattdessen schalten Sie den Pullup jeweils nur für einige µs ein, um eine Tastenmessung durchzuführen. Wenn Sie die Taste alle 1 ms überprüfen und der Pullup 10 µs lang eingeschaltet ist, wird der durchschnittliche Pullup-Strom um das 100-fache reduziert. Bei einem externen Widerstand verwenden Sie einen anderen Stift, um die Oberseite des Pullups anzusteuern. Mit einem internen Pullup aktivieren / deaktivieren Sie es bei Bedarf in der Firmware.
Ich habe dies hier bereits ausführlich beantwortet .
quelle
Besser als dieses einfache Design? Ja. Wenn Sie eine Kappe darauf setzen, haben Sie einen einfachen Hardware-entprellen Schalter.
Der Kondensator wäre eine übliche 0,1uf Keramikkappe. Der Widerstand wäre ein 10k. Diese Seite enthält alle Details zum Warum. Kurz gesagt, eine Entprellungsschaltung verhindert, dass der Mikrocontroller beim Drücken der Taste mehrere Drücke falsch registriert. Das Widerstands- / Kondensator-Setup glättet das mechanische Aufprallen der Taste, sodass ein stetiger Übergang erfolgt.
quelle
BEARBEITEN - Der Kommentar, den ich unten gemacht habe, sollte das, was Olin später über die Schaltung gesagt hatte, mit einem Kondensator fortsetzen, um angeblich eine Entprellung hinzuzufügen. Es tut mir leid, dass es an der falschen Stelle erscheint - vielleicht kann jemand das beheben, weil ich offensichtlich zu blind oder dumm bin, um zu sehen, wie ich es hätte tun sollen !!
Ich stimme Olin zu - es bietet keine gute Entprellung. Ich würde auch hinzufügen, dass ein Kurzschluss des Kondensators einen starken Stromstoß verursachen kann, der den Mikroprozessor zurücksetzen kann, wenn das PCB-Layout nicht wirklich gut ist. Einige Schalter benötigen einen Benetzungsstrom, um korrekt und zuverlässig zu arbeiten, und 100 k können für einige Schalter (insbesondere Membranschalter) zu hoch sein.
quelle