Tasten mit Hardware entprellen

OP #2872040
Lesenswert?

Gast #2872095
Lesenswert?

Den Elko würde ich nicht gerade nehmen, sondern einen einfachen 
Folienkondensator, bzw. sowas in der Art, was man für 
Abblockkondensatoren in digitalen Schaltungen an ICs nimmt.

Das hier sollte reichen:

http://www.mikrocontroller.net/articles/Entprellung#Einfacher_Taster

0,1µF gehen meistens auch ganz gut, so sehe ich es immer wieder oft. 
Evtl. muß man dann noch mal ein wenig mit den Widerständen rechnen, aber 
das steht ja alles im Artikel.

Einen Kondensator für 100V brauchst du garantiert nicht.
Gast #2872177
Lesenswert?

Marc Herrmann schrieb:
> Also solch einen:
> 
http://www.reichelt.de/Wima-MKS-2/MKS-2-5-1-0-/3/index.html?;ACTION=3;LA=2;ARTICLE=12347;GROUPID=3153;artnr=MKS-2-5+1%2C0%C2%B5;SID=13UHm1RH8AAAIAAB9U02cf40155578aff6fbf37e137a43c139e30

Schon besser. Aber in der Größenordnung 100nF bis 1µF. Die Simulation 
von Ottmar sieht doch prächtig aus.

Elkos machen im Zweifelsfall nur Probleme. Besser was einfacheres.
#2872369
Lesenswert?

Wenns nur ums Basteln geht, bau Dir doch zum Entprellen einen 
Schmitt-Trigger mit Röhren, z.B. ECC83.

Wenn ich einen MC nehme, dann um soviel wie möglich Schaltung durch 
Programm zu ersetzen. Das Basteln verschiebt sich also zum Großteil von 
der Platine in den Editor.


Peter
(Firma: TravelRec.) Persönliche Seite #2872623
Lesenswert?

Marc Herrmann schrieb:
> ich möchte meine Tasten an meinem STM32VL per Hardware entprellen.

6, setzen! Da kann ich Peter nur zustimmen. Entprellung geschieht in 
Software und nirgends sonst. Ein Schmitt-Trigger, Kondensator und 
Widerstände kosten Geld, ein paar Zeilen Code kosten nichts. Zumal man 
auf Softwareebene alle Flexibilität hat. Was ist, wenn der Tastendrücker 
(Anwender) meint, dass Tastenpulse zu langsam erkannt oder verschluckt 
werden?? Wird dann umgelötet? Na Mahlzeit!
Gast #2873030
Lesenswert?

Wilhelm Ferkes schrieb:
> Hardwareentprellung mit R und C und Schmitt-Trigger-Input gibt es oft
> beim Reset-Taster von Demo-Boards.

Das hat mit entprellen aber auch garnichts zu tun. Das ist ein 
Resetcontroler für Arme und soll bei einem Powerup den Reset solange 
verzögern, bis sich die Spannung stabilisiert hat und der Oszillator 
sicher schwingt. Daran wird dann als wired or der Taster angeschlossen. 
Die Verzögerung durch den Kondensator bräuchte man aber auch, wenn 
garkein Taster eingebaut wäre.

Bei modernen Prozessoren ist das aber meist eingebaut zusammen mit Brown 
out detection und man braucht weder einen extra Resetcontroler Chip (mit 
solchen Chips hat übrigens Maxim mal angefangen) noch einen Kondensator.

MfG Klaus
#2873122
Lesenswert?

Es ist mir natürlich vollkommen egal, wie jemand entprellt.
Ich finds bloß schade um die Zeit, die man mit provisorischen Lösungen 
vergeudet.
Wenn man länger programmiert, wird man irgendwann doch auf eine 
ordentliche Lösung umsteigen. Und sich dann ärgern, es nicht schon 
früher gemacht zu haben.

Das Entprellen ist ja nur ein kleiner Teil der Funktion. Es geht 
hauptsächlich darum, der Applikation die verschiedenen Drückereignisse 
bequem zur Verfügung zu stellen.

Anfänger stricken gerne die Tastenfunktionen irgendwie in die 
Applikation mit ein. Und damit haben sie jedesmal das gleiche Problem, 
wieder und immer wieder. Und wenn die Applikation mal schneller oder 
langsamer läuft, verändert sich auch das Verhalten.


Peter
#2873150
Lesenswert?

Die Version mit Kondensator und Schmitt-Trigger ist Mist. Jetzt 
funktionierts, aber was wenn der Schalter nach 3 Jahren durch Alterung 
langsam die doppelte Prellzeit bekommt, dann funktionierts vieleicht 
noch, oder auch nicht.
Wenn Hardware Entprellung dann so

Electronics'nStuff schrieb:
> Ich habe auch schon diese Variante angewendet:
>
> http://www.mikrocontroller.net/articles/Entprellun...

Das ist eine wirklich funktionierende Version.

HWEntpreller schrieb:
> Wir benutzen die Hardware Entprellung immer dann wenn das Signal auf
> eine externe (vom Kunden entwickelte / beschaffte Schaltung) geht. Ist
> aber immer die Variante mit dem Flip-Flop.

Genau da machts allen Sinn der Welt.
Gast #2873170
Lesenswert?

Hannes Lux schrieb:
> Wenn man seine Entprellung erstmal verstanden hat, denkt man nicht mehr
> über Hardware-Entprellung nach.

Werdet ihr es denn niemals leid, immer die selben Kamellen zu kauen? Der 
eine (Karl-Heinz B.) missioniert alles und jeden, dass er Routinen wie 
diese eben nicht verstehen muss - du hältst das Verstehen einer solchen 
Routine für überaus wichtig und tust so, als wäre es hochkompliziert 
(dabei ist es low-level vom feinsten...).
Langsam glaube ich, das Lesen in diesem Forum ist nur noch reine 
Zeitverschwendung. Freizeitmissionare und Besserwisser ohne Ende...
(Firma: matzetronics) #2873188
Lesenswert?

Udo Schmitt schrieb:
>> Wir benutzen die Hardware Entprellung immer dann wenn das Signal auf
>> eine externe (vom Kunden entwickelte / beschaffte Schaltung) geht. Ist
>> aber immer die Variante mit dem Flip-Flop.
>
> Genau da machts allen Sinn der Welt.

Oh, hat auch dann Sinn, wenn sich die Kunden im Wollpullover dem Taster 
nähern und dann nette ESDs in den MC jagen. Deswegen entkoppele ich für 
Kundenschaltungen immer die Taster von der direkten MC Verbindung, 
meistens nehme ich die Monoflop-Lösung.
Gast #2873189
Lesenswert?

Das gute alte Monoflop hat meiner Meinung nach immer noch nicht 
ausgedient, wenn man Tasten das Prellen abgewöhnen will.
Die Herren mit den unbeschränkten Ressourcen lassen gerne folgendes 
unter den Tisch fallen: Die meisten, softwaremäßigen Lösungen benötigen 
einen Timer und nicht nur dass, der sollte auch in einem sinnvollen 
Bereich werkeln.
Natürlich ist das bei den vielen hundert, zur Verfügung stehenden 
Timern, kein Problem;-)
Natürlich ist, wenn ein Timer übrig ist, eine Softwarelösung 
Ressourcenschonender:-)
Gast #2873206
Lesenswert?

amateur schrieb:
> Die meisten, softwaremäßigen Lösungen benötigen einen Timer

Aber nicht exclusiv, der kann schon noch mehr erledigen wie Delays, Uhr, 
... Hat man eigentlich sowieso immer schon am Laufen.

amateur schrieb:
> Das gute alte Monoflop hat meiner Meinung nach immer noch nicht
> ausgedient,

Als ich noch Gatterlogik entwickelt habe, wurde man für die Verwendung 
von Monos gefeuert

MfG Klaus
#2873222
Lesenswert?

amateur schrieb:

> unter den Tisch fallen: Die meisten, softwaremäßigen Lösungen benötigen
> einen Timer und nicht nur dass, der sollte auch in einem sinnvollen
> Bereich werkeln.
> Natürlich ist das bei den vielen hundert, zur Verfügung stehenden
> Timern, kein Problem;-)

Du weisst aber schon, dass es nicht verboten ist, in einer ISR durchaus 
mehrere Sachen zu machen?

Gerade wenn es um Resourcen geht, ist die PeDa Lösung unschlagbar.
#2873230
Lesenswert?

Edson schrieb:
> Hannes Lux schrieb:
>> Wenn man seine Entprellung erstmal verstanden hat, denkt man nicht mehr
>> über Hardware-Entprellung nach.
>
> Werdet ihr es denn niemals leid, immer die selben Kamellen zu kauen?

Nö.

> Der
> eine (Karl-Heinz B.) missioniert alles und jeden, dass er Routinen wie
> diese eben nicht verstehen muss - du hältst das Verstehen einer solchen
> Routine für überaus wichtig

Da haben wir eben verschiedene Prioritäten.
In einem sind wir uns aber einig: Eine ordentliche Softwareentprellung 
schlägt jede Hardware um Längen und ist auch noch simpler.

Zum Thema verstehen:
Ich seh das eben pragmatischer. Du benutzt ja auch auf einem PC ohne 
Bedenken die Netzwerk-Sockets, ohne im Detail zu verstehen, was da 
eigentlich in den einzelnen Software-Schichten abgeht. Ich seh das mehr 
von der Seite: Wenn das Argument lautet - Ich benutz es nicht, weil ich 
nicht im Detail verstehe wie das arbeitet - dann ist es mir immer noch 
lieber er versteht es nicht und benutzt es trotzdem, behandelt den ISR 
Teil also wie eine Black-Box, als wie wenn er sich anderen Lösungen 
zuwendet, die nicht ordentlich funktionieren.


Und das es da draussen genug Pseudo-Entprellungen gibt, die eben nicht 
ordentlich funktionieren, erlebt jeder von uns jeden Tag.
Gast #2873231
Lesenswert?

Immer diese Lösung.. das ist ne Schaltung abgezeichnet in Software. 
Klar, ist das 'ne gute Idee deswegen muss man die nicht alle 15 Posts 
erwähnen, zumal ein Anfänger die eh nicht versteht und niemand benutzt 
gerne Code, den er nicht versteht.

Ich finde Hardware Entprellung keine schlechte Sache, funktioniert 
extrem zuverlässig und man belästigt den Controller nicht. Ob jetzt 
Hardware oder Software ist eher 'ne Glaubensfrage als ein wirklich gut 
diskutierbares Thema.
Gast #2873256
Lesenswert?

> und so sieht die Entprellung, simuliert mit LTSpice aus...

Cool, mit prellendem Shcalter Simulationsmodell.

> Die Version mit Kondensator und Schmitt-Trigger ist Mist. Jetzt
> funktionierts, aber was wenn der Schalter nach 3 Jahren durch Alterung
> langsam die doppelte Prellzeit bekommt, dann funktionierts vieleicht
> noch, oder auch nicht

Schwachsinn.

Auch Softwareentprellung funktioniert nicht mehr, wen Schalter langsamer 
prellen als beim Design vorgesehen wurden.

Sie tun das aber nicht.

Wenn beim Schalter im Datenblatt steht: Prellzeit 10msec. Dann 
überschreitet er die auch nicht wenn er alt ist, und wenn er sie 
überschreitet ist er definitionsgemäß kaputt.

Denn eine zu lange Prellzeit kann man definitionsgemäß nicht von 
schneller Bedienung unterscheiden.
Gast #2873308
Lesenswert?

Karl Heinz Buchegger schrieb:
> In einem sind wir uns aber einig: Eine ordentliche Softwareentprellung
> schlägt jede Hardware um Längen und ist auch noch simpler.

Da sind wir uns alle einig. Wenn aber konkret nach einer HW-Lösung 
gefragt wird, halte ich den (redundanten) Verweis auf einen 
Code-Schnippsel halt nicht für die angemessene Antwort. Auch wenn er 
noch so richtig ist.
#2873488
Lesenswert?

Electronics'nStuff schrieb:
> Karl Heinz Buchegger schrieb:
>> Eine ordentliche Softwareentprellung schlägt jede Hardware um Längen
>
> Was genau belegt diese Tatsache?

Wenn Du es nicht weißt, dann hast Du es auch noch nicht probiert.
Es verkürzt erheblich die Entwicklungszeit.

Man legt fest, welche Funktion welcher Taste man an welcher Stelle 
braucht (z.B. kurzer Druck, auto Repeat usw.) und schreibt einfach den 
entsprechenden Aufruf hin.


Peter
Gast #2873496
Lesenswert?

Peter Dannegger schrieb:
> Es verkürzt erheblich die Entwicklungszeit.

Das bezweifel ich. Ein Copy & Paste in einer Schaltung dauert nicht viel 
länger als in einem Programm..

Klar ist man nachher flexibler, aber ich sehe nicht ein, warum es 
Nachteile haben soll, für einen stinkgewöhnlichen 08/15 Taster (welche 
wohl den grössten Teil ausmachen) ein Flipflop und zwei Widerstände zu 
nehmen.

Und nein, ein Aufpreis von <1€ und einen zusätzlichen Platzbedarf von 
<1ccm sehe ich nicht wirklich als grossen Nachteil.

Aber eben, jeder wie er will :)

Gruss
#2873502
Lesenswert?

Electronics'nStuff schrieb:
> Peter Dannegger schrieb:
>> Es verkürzt erheblich die Entwicklungszeit.
>
> Das bezweifel ich. Ein Copy & Paste in einer Schaltung dauert nicht viel
> länger als in einem Programm..

Dadurch hast du noch lange keinen Autorepeat für Zahleneingaben.
Dadurch hast du noch lange nicht das Tastenpollen im Programm erledigt.

Denn genau das wird so gerne vergessen:
Nur weil du in Hardware entprellst, hast du ja noch keine taugliche 
Tastenabfrage im Programm gemacht.
Mit der Variante in der PeDa Entprellung hast du aber diesen Punkt 
ebenfalls schon erledigt - in einem Arbeitsgang.


   if( get_key_press( ... ) )

und du hast deine zuverlässige und funktionierende Tastenabfrage samt 
Entprellung.

> Klar ist man nachher flexibler, aber ich sehe nicht ein, warum es
> Nachteile haben soll, für einen stinkgewöhnlichen 08/15 Taster (welche
> wohl den grössten Teil ausmachen) ein Flipflop und zwei Widerstände zu
> nehmen.

Du musst es bauen.
Die Entprellung hast du in 20 Sekunden ins Programm übernommen.
Gast #2873511
Lesenswert?

Karl Heinz Buchegger schrieb:
> Nur weil du in Hardware entprellst, hast du ja noch keine taugliche
> Tastenabfrage im Programm gemacht.

Und wo genau ist jetzt der Unterschied zwischen

 if( get_key_press( ... ) )

und

if (taster1)

?

Karl Heinz Buchegger schrieb:
> Du musst es bauen.
> Die Entprellung hast du in 20 Sekunden ins Programm übernommen.

Ja klar, hast schon recht. Dafür hab ich nix auf dem Controller was ich 
nicht verstehe.. (ich spreche jetzt nicht für mich. Oder nicht mehr, 
habe das früher auch mit HW gemacht, jetzt nicht mehr)

Gruss
#2873512
Lesenswert?

Electronics'nStuff schrieb:
> Karl Heinz Buchegger schrieb:
>> Nur weil du in Hardware entprellst, hast du ja noch keine taugliche
>> Tastenabfrage im Programm gemacht.
>
> Und wo genau ist jetzt der Unterschied zwischen
>
>  if( get_key_press( ... ) )
>
> und
>
> if (taster1)
>
> ?

Mache etwas SOLANGE eine Taste gedrücktz ist
Mache etwas wenn eine Taste gedrückt WURDE.

Da gibt es einen gewaltigen UNterschied.


> Ja klar, hast schon recht. Dafür hab ich nix auf dem Controller was ich
> nicht verstehe.. (ich spreche jetzt nicht für mich. Oder nicht mehr,
> habe das früher auch mit HW gemacht, jetzt nicht mehr)

Wir drehen uns im Kreis. Drum häng ich mich jetzt auch aus.
Gast #2873538
Lesenswert?

Wenn man ein Tastenfeld bedient, und auch noch Komfortfunktionen wie 
N-Key-Rollover haben möchte, da kommt man natürlich nicht um etwas 
Software herum, auch wenn man in Hardware entprellt.

Bei einem absoluten Anfänger sehe ich es aber durchaus als sinnvoll, 
sich auch mit der Hardwareentprellung mal zu beschäftigen.

Auf einem alten Board habe ich sogar noch ein Keyboard-Display-Interface 
8279, das den µC komplett entlastet. Das ist ein alter 
Intel-Peripheriebaustein, besonders für 8085 und 8051: Er fragt ein 
Tastenfeld mit 30 Tasten ab, macht Hardwareentprellung auf dem Chip 
(nicht so wie hier besprochen), und noch N-Key-Rollover, und liefert dem 
µC über Interrupt die fertige Taste.

Das war auch ganz nett, und spart Software vollständig. Bei diesem Board 
macht es auch Sinn, Tastensoftware komplett zu sparen, denn es sind nur 
2kB Programmspeicher vorhanden.

Dann gibt es ja auch nicht "die" perfekte Tastenabfrage für alles: Je 
nach Verwendungszweck gibt es größere Unterschiede. Z.B. habe ich einen 
Single-Step mit einer Taste am externen Interrupt des 8051. Der 8051 
kann ja keinen echten Hardware-Single-Step, weil er nicht voll statisch 
ist. Dort muß mit einer direkten Entprellschleife innerhalb des 
Interrupts die Taste sicher erkannt werden, und das Loslassen der Taste 
auf die selbe Art.

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