Hallo zusammen, ich möchte meine Tasten an meinem STM32VL per Hardware entprellen. Ich habe mich auch schon in folgenden Artikel eingelesen: http://www.mikrocontroller.net/articles/Entprellung Ich habe dazu folgende Bauteile bei reichelt rausgesucht: Schmitt-Trigger: http://www.reichelt.de/ICs-74HC-DIL/74HC-14/3/index.html?;ACTION=3;LA=446;ARTICLE=3140;GROUPID=2930;artnr=74HC+14;SID=13UHm1RH8AAAIAAB9U02cf40155578aff6fbf37e137a43c139e30 Widerstände: http://www.reichelt.de/1-4W-1-10-0-k-Ohm-95-3-k-Ohm/METALL-22-0K/3/index.html?;ACTION=3;LA=2;ARTICLE=11622;GROUPID=3079;artnr=METALL+22%2C0K;SID=13UHm1RH8AAAIAAB9U02cf40155578aff6fbf37e137a43c139e30 http://www.reichelt.de/1-4W-1-10-0-k-Ohm-95-3-k-Ohm/METALL-10-2K/3/index.html?;ACTION=3;LA=2;ARTICLE=11452;GROUPID=3079;artnr=METALL+10%2C2K;SID=13UHm1RH8AAAIAAB9U02cf40155578aff6fbf37e137a43c139e30 Jetzt geht es um den Kondensator, kann ich da folgenden nehmen: http://www.reichelt.de/Elkos-radial/RAD-1-100/3/index.html?;ACTION=3;LA=3;ARTICLE=15094;GROUPID=3143;SID=13UHm1RH8AAAIAAB9U02cf40155578aff6fbf37e137a43c139e30 Vielen Dank schonmal für die Hilfe.
Ja, das kannst Du nehmen. Mache den Kondensator nicht größer als 1µF, weil Du sonst den Taster nicht schnell genug hintereinander drücken kannst. MfG Paul
Ok super, vielen Dank für die schnelle Antwort. In dem Datenblatt des Kondensators steht bei Working Voltage: ab 6.3 Volt. Das hat für mich nichts zu sagen?
Marc Herrmann schrieb: > steht bei Working Voltage: ab 6.3 Volt So direkt steht das nicht da. Die meinen das sie Typen mit max. 6,3V bis zu max. 100V und welche von max. 160V - max. 450V anbieten.
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.
Hallo und so sieht die Entprellung, simuliert mit LTSpice aus... mfG Ottmar
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.
Marc Herrmann schrieb: > ich möchte meine Tasten an meinem STM32VL per Hardware entprellen. Ach Gottchen nee, dem 23Bit Boliden könnte ja die Puste ausgehen bei dem ach so komplizierten SW-Entprellen. Das dürften ja schon einige ppm an CPU-Last und Flash sein. Peter
@Peter: lies deinen Text schnell noch mal durch bevor das einer merkt ;-)
Ich hab auch schon gelesen, wegen software entprellen aber ich will bisschen basteln :)
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
Marc Herrmann schrieb: > Ich hab auch schon gelesen, wegen software entprellen aber ich will > bisschen basteln :) Ist schon gut, du brauchst dich nicht zu rechtfertigen. Dannegger ist wie der pawlowsche Hund, nur das er (nicht der Hund) auf Entprellung reagiert.
Für einen low-aktiven Taster reicht ein einfacher 100nF Kondensator am Eingangspin-Pin, wenn man den internen Pullup einschaltet. Den Kondensator sollte man aber beim Initialisieren aufladen. Gruß Oliver
Peter Dannegger schrieb: > Wenns nur ums Basteln geht, bau Dir doch zum Entprellen einen > Schmitt-Trigger mit Röhren, z.B. ECC83. Peter, benimm dich! Hardwareentprellung mit R und C und Schmitt-Trigger-Input gibt es oft beim Reset-Taster von Demo-Boards. Da gehts per Software auch nicht.
Ich habe mir mal den Schaltplan vom STM32VL angeschaut, ich glaube die verwenden nur einen Kondensator
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!
Marc Herrmann schrieb: > Ich habe mir mal den Schaltplan vom STM32VL angeschaut, ich glaube die > verwenden nur einen Kondensator Ich ahne was, was ich öfter sah: Die sparen einen Widerstand, und legen den Kondensator direkt parallel zum Taster. Das geht sicher eine Weile.
Wilhelm Ferkes schrieb: > Peter, benimm dich! Warum? - Er hat doch recht... Wenn man seine Entprellung erstmal verstanden hat, denkt man nicht mehr über Hardware-Entprellung nach. ...
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
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
Och ist da etwa jemand angesauert, weil jemand seine super geniale Lösung nicht benutzen mag :)? Ne ne, ich mach nur Spass. @TO Ich habe auch schon diese Variante angewendet: http://www.mikrocontroller.net/articles/Entprellung#Wechselschalter Diese hat bei mir auch super funktioniert (falls du wieder mal basteln willst). Gruss
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.
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.
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...
Paul Baumann schrieb: > Die Seite ist recht übersichtlich.... Hast Du denn immer noch nicht gemerkt, daß zitierte Links nicht mehr funktionieren? Klicke auf das Original. Peter
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.
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:-)
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
amateur schrieb: > Die meisten, softwaremäßigen Lösungen benötigen einen Timer Naja, das Argument gilt aber nicht wirklich. Die Entprellroutine kannst du in bereits vorhandene ISR packen, die braucht nicht so viel Platz.
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.
Edson schrieb: > dabei ist es low-level vom feinsten... Es ist Low-Level, ich werde nie was Anderes behaupten. Und es ist "vom Feinsten", trotzdem verstehen es Viele nicht und fürchten sich davor, wie der Deiwel vor dem Weihwasser. Edson schrieb: > Freizeitmissionare und Besserwisser ohne Ende... Willkommen im Club... ...
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.
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.
Man kann aber auch HALL-Elemente dazu nehmen. Diese wurden in DDR Robotron-Tastaturen verwendet.
> 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.
Peter schrob: >Hast Du denn immer noch nicht gemerkt, daß zitierte Links nicht mehr >funktionieren? Nein, das habe ich noch nicht gemerkt. Seit wann meinst Du, ist das so? >Klicke auf das Original. Zu Befehl, Genosse Stabswebfehler! ;-) MfG Paul
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.
Und wieder mal mischt ein Moderator voll mit, statt dem OT-Muell Einhalt zu gebieten :-(
Karl Heinz Buchegger schrieb: > Eine ordentliche Softwareentprellung schlägt jede Hardware um Längen Was genau belegt diese Tatsache?
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
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
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.
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
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.
Karl Heinz Buchegger schrieb: > Wir drehen uns im Kreis. Eben, es geht einigen Leuten nur um den Streit. ...
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.