Taster entprellen, Dimensionierung der Teile

Gast #4261958
Lesenswert?

Hi,
ich würde gerne die Taster an meinem Raspberry Pi mittels der hier 
vorgeschlagenen Schaltung entprellen: 
http://www.mikrocontroller.net/articles/Datei:RC_debouncer.png

Leider bin ich mir bei der Dimensionierung der Widerstände und des 
Kondensators etwas unsicher. Da die Betriebsspannung der GPIOs 3,3V ist, 
habe ich mal mit den angegebenen Formeln rumgerechnet. Allerdings ergibt 
das keinen Sinn. Unter der Annahme eines 100nF Kondensators und 10ms 
Prellzeit müsste R2 etwas 200KOhm sein, was mir schon sehr viel 
vorkommt. Der Knaller ist dann aber, dass R1+R2 deutlich kleiner ist, 
als R2, was heißt, R1 muss ein negativer Widerstand sein?! Lol... Was 
mache ich falsch? Oder hat vielleicht schon einer die Schaltung an den 
Pi gehängt und kann mir sagen, was gute Werte sind?

Danke
Gast #4261996
Lesenswert?

R1 muss so klein sein, daß der Taster seinen Mindeststrom laut 
Datenblatt bekommt, z.B. 1mA, also 3k3.

R2 ist mit 220k schon ok, obwohl ich glaube dass du simpel RC gerechnet 
hast und nicht korrekterweise die RC-Zeit zur Überwindung der minimalen 
Hysterese von ca. 0.33V, also 1/10 VCC, übrigens ist R2 unabhängig von 
der Betriebsspannung.

R1 sollte deutlich kleiner als R2 sein, damit Entprellung beim loslassen 
sich nicht gewaltig von der Entprellung beim Drücken unterscheidet.

Insgesamt stellt sich die Frage, warum bzw. ob man Taster überhaupt mit 
extra Hardware entprellen muss, wenn man sie von einem Prozessor 
auswerten lässt. Das kann auch Software tun.
Gast #4262113
Lesenswert?

Ich will einfach nicht mittels Software entprellen, da man dann immer 
Wartezeiten hat. Vor allem bei zB Drehgebern ist das eher schlecht, aber 
auch bei Tastern mag ich es nicht. Warum sollte ich das nicht auslagern 
dürfen? Und warum hinterfragt ihr meine Absichten, anstatt einfach meine 
Frage zu beantworten? Ist die Formel kaputt oder hab ich was falsch 
gemacht?
#4262115
Lesenswert?

Andreas schrieb:
> Ich will einfach nicht mittels Software entprellen, da man dann
> immer Wartezeiten hat.
Nicht wenn man eine vernüntige SW-Entprellung hat.
> Und warum hinterfragt ihr meine Absichten,
> anstatt einfach meine Frage zu beantworten?
Du wärst nicht der Erste der ein Problem viel zu kompliziert lösen will.
> Ist die Formel kaputt oder
> hab ich was falsch gemacht?
Welche Werte hast du in die Formeln eingesetzt?
Gast #4262118
Lesenswert?

Andreas schrieb:
> Ich will einfach nicht mittels Software entprellen, da man dann immer
> Wartezeiten hat. Vor allem bei zB Drehgebern ist das eher schlecht, aber
> auch bei Tastern mag ich es nicht.

Da hast du aber etwas grob falsch verstanden bzw. implementiert.

Software-Entprellung reagiert schneller als deine Hardwarelösung.
Gast #4262176
Lesenswert?

Hallo Andreas,

bevor das hier noch untergeht - ein Taster, der NUR 10ms prellt, ist ja 
schon fast ein prellfreier Taster. Die Taster, die ich kenne (und auch 
im Einsatz habe) prellen gerne mal bis zu 150ms. Und genau das ist der 
Grund, wieso ich hauptsächlich eine softwareseitige Entprellung 
verwende. Die kann doch bei Tastern auf beispielsweise 250ms eingestellt 
sein - oder drückst Du 5x in der Sekunde auf den Taster (OK - für 
Dauerfeuer beim Joystick wäre das in Betracht zu ziehen, aber den gibt 
es ja heutzutage nicht mehr). Einfach ein Timerinterrupt mit 250ms 
auslösen, Tasterpegel einlesen - mit dem letzten Tasterpegel vergleichen 
- reagieren. Das braucht doch keine 20 Zyklen in der Auswertung.

Gruß
TK
Gast #4262187
Lesenswert?

TK schrieb:
> Die Taster, die ich kenne (und auch
> im Einsatz habe) prellen gerne mal bis zu 150ms.

was sind das für Taster? Das ist ja schon fast die Zeit die der Mensch 
beim schnellen Tasten erreichen kann.

Also normal würde ich das auf jeden Fall nicht ansehen.
#4262309
Lesenswert?

Andreas schrieb:
> Ich will einfach nicht mittels Software entprellen, da man dann immer
> Wartezeiten hat.

Die Wartezeiten kommen durch das Multitasking des OS und nicht durch das 
Entprellen.
Für SW-Entprellung reichen 10ms völlig aus, das merkt keiner.
Die Tasten an den meisten Geräten im Haushalt muß man mindestens 300ms 
drücken.
Und durch Windows-PCs sind viele Benutzer schon auf 500ms konditioniert.
#4262325
Lesenswert?

Andreas schrieb:
> Der Knaller ist dann aber, dass R1+R2 deutlich kleiner ist,
> als R2, was heißt, R1 muss ein negativer Widerstand sein?!

Wie kommst Du darauf?
Die Flanken sind eben leicht unsymmetrisch, das stört doch nicht.
Wichtig ist aber, daß noch ein Schmitt-Trigger folgt, sonst kann es im 
Umschaltpunkt durch Welligkeit der VCC zu Mehrfachauslösungen kommen.
#4262343
Lesenswert?

Peter II schrieb:
> was willst du damit sagen? alle mir bekannten Windows-Systeme brauchen
> keine 500ms um auf einen Taste zu reagieren.

Die Zeit, die der Nutzer abwartet, eh er genervt auf die Tasten hämmert, 
weil keine sichtbare Reaktion erfolgt.
Die Gedenkzeiten liegen heutzutage aber selten an der 4-Kern CPU, 
sondern z.B. am Netzwerk oder den tausenden von Hintergrundtasks.

Philips-Geräte (TV, Rekorder) sind aber mit Abstand am langsamsten.
Gast #4262536
Lesenswert?

An alle, die nach mir geantwortet und dazu noch Fragen haben:
Ich habe die 150ms bei Standard-Kurzhubtaster (Apem,Schurter) mit einem 
Oszi gemessen (Anordnung: VCC -> PullUp 4k7 oder 10k -> Mittelabgriff 
auf Port -> Taster -> GND. Wenn möglich kommt noch ein 100nF parallel 
zum Taster, war aber bei den Messungen nicht vorhanden). Daher benutze 
ich bei Anwendungen, die es erlauben, eine Entprellzeit von 200ms UND 
habe dann erst nach 400ms (1. Vergleich) einen Pegel, den ich weiter 
nutze (das gilt jetzt nur für Taster). Bei einem Drehencoder kommt das 
natürlich nicht in Frage. Und wenn es bei Tastern schneller gehen muss, 
dan reagiert man halt auf die erste, erkannte Flanke und setzt dann für 
eine Totzeit aus.

Gruß
TK
Gast #4262567
Lesenswert?

TK schrieb:
> Bei einem Drehencoder kommt das
> natürlich nicht in Frage

Richtig. Auch bei meinen Tastern kann ich gut und gerne mal 100ms 
warten, bis der aufhört zu prellen. Deshalb vielleicht einfach nochmal 
kurz n Blick auf Schaltung und Formel:
http://www.mikrocontroller.net/articles/Entprellung#Einfacher_Taster

R2 = -0,1s / (10^(-7)F * ln(2V/3,3V))
   ~= 200kOhm

R1 = -0,1s / (10^(-7)F * ln(1 - 2V/3,3V)) - 200kOhm
      ~= 600kOhm

Mir kommt das einfach unrealistisch vor. Oben wurde auch noch gesagt, R1 
sollte deutlich kleiner sein, als R2
Gast #4263431
Lesenswert?

Hallo Andreas,
1) Rechne noch mal nach. Da ist ein Kommafehler drin.
2) Die Formel stimmt nur für VCC=5V und nicht für 3V3
3) Du mußt ins Datenblatt des Herstellers des zu verwendenen ICs 
reinschauen!
Ich habe mal das DB von NXP angehängt. Da ist erst mal auf S4 zu lesen, 
dass die VCC zwar von 2.0V..6.0V gehen darf, aber Du benötigst auf S8 
die Hysterese. Und siehe da: die ist abh. von der VCC und noch viel 
schlimmer - auch von der Temperatur. Nehmen wir nur mal die typ. Werte 
für VCC=4.5V(5V) heraus mit V_T+ = 2.38V und V_T- mit 1.4V. Damit ergibt 
sich dann die folgende Formel:
Drücken des Tasters (=Entladen von C nur über R2 bis UNTERE 
Schaltschwelle erreicht ist)
R2 = -0.1s / (100e-9F x ln(V_T-/4.5V)) = 856k
Offener Taster (=Laden von C über R1+R2 bis OBERE Schaltschwelle 
erreicht ist)
R1 = -0.1s / (100e-9F x ln(1-V_T+/4.5V)) - R2 = 472k

Und jetzt spielen wir mal etwas mit den Umschaltpegeln bei min/max Temp.
Also nehmen wir mal die min. Hysteresewerte mit V_T+=1.7V und V_T-=0.9V.
Damit ergibt sich R2 = 621k / R1 = 1M4
bei max. Hystereswerte mit V_T+=3.15 und V_T-=2.0V ergibt sich:
R2 = 1M2, R1 = -369k (geht natürlich nicht => Entprelldauer von 100ms 
kann damit nicht erreicht werden (wird also überschritten) => Wahl von 
R1>0 ergibt eine Entprelldauer von t = -ln(1-V_T+/4.5V)x(R1+R2)x100e-9F 
>= 145ms

Jetzt stellen wir mal die Widerstände über alle Bereiche gegenüber:
621k < R2 < 1M2
1M4 > R1 > (0) / R1 muss im gedrückten Zustand für eine Strombegrenzung 
durch den Taster sorgen.
Fazit: Such dir eine Kombination R1 und R2 für eine Spannung und eine 
Temperatur heraus. Dann mußt Du immer den ausgewählten IC-Hersteller 
einsetzen. Ändert sich nur ein Parameter, dann stimmen die Berechnungen 
schon nicht mehr.

Daher ist zu überlegen, ob eine Software-Entprellung nicht doch Vorteile 
bietet. Die ist nämlich unabh. von Schaltpegeln, Temperaturen und 
Versorgungsspannung.

Gruß
TK
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren