Benutzer-Werkzeuge

Webseiten-Werkzeuge


pfw:topicofbouncing

**Dies ist eine alte Version des Dokuments!**

Prellen

Im Internet findest du viele Abhandlungen darüber. Als Einstieg dienten mir die folgenden Webseiten.

https://www.mikrocontroller.net/topic/201479
https://www.mikrocontroller.net/articles/Entprellung
https://praktische-elektronik.dr-k.de/Praktikum/Digital/Dynamik/Le-Entprellter-Taster-Reset.html
https://de.wikipedia.org/wiki/Prellen

(Alle folgenden Abbildungen wurden vom Autor selbst erzeugt.)

Prellen erzeugt auch hochfrequente Schwinungen

Hier geht es um sehr kleine Lasten und kurze Leitungen. Wie z.B. ein Taster direkt an einer MCU oder ein Bedienfeld aus mehreren Tastern oder ein Keyboard. Also Spannungen im 5V Bereich und Ströme um die 1mA. Dennoch hat das schon Leitungsinduktivität und -kapazitäten, so etwa bei 1µH und 200pF bei 1m Kabellänge. Das gibt tatsächlich schon Schwingungen an der Umschaltflanke um 10MHz. Sowas zu wissen kann bei der Fehlersuche helfen.

Nach der fallende Flanke ist HF zwischen den Prellpegeln.

Prellen des logischen Pegels

Prellen tritt durch die Elastizität der Kontakte und die Federkraft auf. Typische Prellzeiten liegen im Bereich von 100 µs bis 10 ms (KI). Hier im Test waren zwei kleine Kippschalter, ein blauer und ein silbriger.

Die alten Kippschalter

Schaltung für den Test am Logicanalyser (L)

+vcc ---R---+---S_S---GND
            |
            L

Prellt ca. 200 µs.

Prellt ca. 120 µs.

Die verschiedenen Schaltertypen hatten deutliche Unterschiede beim öffnen und schließen der Schalter. Es waren alte Schalter, lagen seit über zehn Jahren in einer Schachtel.

Folgen für die Software

In digitale Schaltungen und Programmen, die schnell genug sind um die Pegelwechsel zu erkennen, führt das zu unerwünschten Ereignissen.

  • Bei einem Zähler könnte ein einzelner Tastendruck mehrere Zählschritte auslösen.
  • Bei einer Tastatur könnte ein einzelner Tastendruck als mehrere Drücke registriert werden.
code beispiel

Entprellen (folgt)

Entprellen mittels Hardware, wie RC-Glieder oder ein RS-Flip-Flop will ich hier nicht behandeln. Darüber findest du viel im Internet.

Entprellen per Software kennt einige gängigen Methoden

Flanken-Interrupt

Schmitt-Trigger sind in den I/O-Ports einer MCU schon integriert, zumindest beim MSP430 war es so. CLARIS? nutzt das ja bereits.

Das braucht immer auch die anschließende Verzögerung der erneuten Pin-Abfrage

getaktete Abfrage mit Zeitstempel am Zustand
Pegelwechsel mitzählen bis ein stabiler Zustand ereicht ist.
Methode "Schieberegister"

Beim ablesen des digitalen Inputs am Port wird der Bit-Wert in ein Register geschoben. Macht man 16x die Abfrage, gibt es entweder eine 0000 oder eine FFFF im Register, beides „gültige“ Rückgabewerte. Oder es resultiert was dazwischen und ist dann die Ausnahme.

pfw/topicofbouncing.1750083033.txt.gz · Zuletzt geändert: 2025-06-16 16:10 von mka