CPLD Taster intern entprellen

Gast #710020
Hallo alle zusammen,

hat jemand von euch schon mal einen Taster intern in einem CPLD 
entprellt?
Ich hatte daran gedacht einen Takt von 100Hz vorzugeben und diesen dann 
zusammen mit dem Taster auf ein UND-Gatter zu geben und somit die Taste 
zu entprellen. Nun schaltet das CPLD entweder gar nicht oder immer noch 
2-3mal oder mehr.
Oder wie entprellt ihr eure CPLD-Taster?

MfG Jens
Gast #710023
das mit den 100hz ist schon mal gut.

taster einlesen, wert speichern, beim nächsten takt wieder einlesen und 
mit dem alten wert vergleichen. hat sich der zustand geändert (low --> 
high) dann ist die taste gedrückt, ansonsten bei (high --> low) 
losgelassen...

mfg
Gast #710031
mechanisches prellen dauert normalerweise nur ne ms oder so... im 
schlimmsten fall verpasst du das einschalten um 10ms, dann ist nämlich 
das prellen definitiv vorbei...
Gast #710038
Hi reiner,

wie genau würdest du dn Zustand speichern? Dafür brauche ich doch mit 
Sicherheit 2 Flipflops oder soagr drei? und wie sollten die geschaltet 
werden?

Danke für eure schnellen Antworten

Mfg Jens
Gast #710046
Hi Falk,

ich habe leider nur einen Kurzhubtaster mit einem Kontakt zur Hand und 
das mit dem Schmitt-Trigger will auch nicht funktionieren. Das .... CPLD 
schaltet schön wie es will. Ich habe genau diese Hardware-Entprellung 
schon versucht.

MfG Jens
Gast #710048
@reiner

Nein, mit VHDl kenne ich mich noch nicht aus. Ich bin noch ziemlich neu 
in diesem Gebiet und habe mir eine Schematic-File zusammengebaut.

MfG Jens
#710066
@ Jens (Gast)

>ich habe leider nur einen Kurzhubtaster mit einem Kontakt zur Hand und
>das mit dem Schmitt-Trigger will auch nicht funktionieren. Das .... CPLD
>schaltet schön wie es will.

Sind die Eingänge als Schmitt-trigger konfiguriert?

Ausserdem, was soll der Taster denn machen? Was soll dein CPLD machen? 
Ich hoffe dir ist klar, dass man so einen Taster NICHT als Taktgenerator 
nutzen kann! Denn die Eingänge sind bei AFAIK keinem CPLD als 
Schmitt-trigger konfigurierbar. Da muss ein externer ran (74HC14).

> Ich habe genau diese Hardware-Entprellung
> schon versucht.

Dann machst du was falsch.

MfG
Falk
Gast #710077
Hi Falk,

ich möchte mir den VGA-Generator von Ulrich Radig nachbauen und hab das 
Ding soweit am laufen. Nur der Taster prellt saumäßig. Daraufhin habe 
ich es mit Kondensatoren versucht die Nachschwingungen zu Unterdrücken 
und es ging leider nicht. Dann habe ich hier die Schaltung mit dem 
Schmitt-Trigger gefunden und mir einen 74HC14 besorgt und das ganze auf 
nem Steckbrett genauso aufgebaut und an den Eingang des CPLDs gelegt. 
Nun schaltet es nach dem Drücken des Tasters immer noch 
"unkontrolliert". Daraufhin habe ich eine monostabile Kippstufe mit 
einem NE555 aufgebaut und auch da das selbe Spielchen. Nun versuche ich 
das Ding softwaremäßig zu entprellen.

MfG Jens
#710080
@ Jens (Gast)

>ich möchte mir den VGA-Generator von Ulrich Radig nachbauen und hab das
>Ding soweit am laufen. Nur der Taster prellt saumäßig. Daraufhin habe

WAS MACHT DER TASTER?!!!

>"unkontrolliert". Daraufhin habe ich eine monostabile Kippstufe mit
>einem NE555 aufgebaut und auch da das selbe Spielchen. Nun versuche ich
>das Ding softwaremäßig zu entprellen.

Hör auf zu murksen und mach es richtig. CPLD und Steckbrett ist kein 
gute Kombination, vielleicht hast du einen Wackelkontakt irgendwo.

MFG
Falk
Gast #710085
Der Taster schaltet die Testbilder um. Einmal drücken ein Bild weiter. 
Der Taster legt 5V auf den CPLD Eingang wenn er gedrückt wird. Ansonsten 
ist der CPLD-Eingang über einen Widerstand nach GND verbunden.

MfG Jens
Gast #710091
Ich habe es über eine interne Flipflop-Schaltung geschafft, dass er 
kontrolliert schaltet. Nun muss ich nur noch rauskriegen, dass er bei 
einem Tastendruck zweimal schaltet. :-)

MfG Jens
#710102
@ Jens (Gast)

>Der Taster schaltet die Testbilder um. Einmal drücken ein Bild weiter.

Nun, wahrscheinlich wird der direkt im VHDL als Takt verwndet. Schlecht!

>Der Taster legt 5V auf den CPLD Eingang wenn er gedrückt wird.

Warum machst du es nicht wie 99% aller Anwender und schaltest nach GND?

> Ansonsten
>ist der CPLD-Eingang über einen Widerstand nach GND verbunden.

Wie hoch ist der Widerstand? Wenn die internen Pull-Ups eingeschaltet 
sind kann das bisweilen daneben gehen. Ausserdem läuft eine Entprellung 
in Hardware anders. Siehe Links.

MFG
Falk
Gast #710153
> Warum machst du es nicht wie 99% aller Anwender und schaltest nach GND?

Mal ne Frage als Nichtwissender: Welche Vorteile hat das? (Gegenüber 
Taster->5V und Pulldown-Widerstand meine ich). Das müsste doch 
eigentlich symmetrisch sein oder?
#710232
@ Morin (Gast)

>Mal ne Frage als Nichtwissender: Welche Vorteile hat das? (Gegenüber
>Taster->5V und Pulldown-Widerstand meine ich). Das müsste doch
>eigentlich symmetrisch sein oder?

Theoretisch ja, praktisch aber nein.

1.) historisch oft so gemacht weil,
2.) zu TTL-Zeiten Pull-Down tierisch niederohmig sein mussten und viel 
Strom gezogen haben (470 Ohm, 1,6mA!, bei Pull-Up nur 40uA!)
3.) die meisten ICs heute (schaltbare) Pull-Up drin haben, nur sehr 
selten Pull-Downs
4.) Noch ne Menge uC mit Open Collector Stufen auf dem Markt sind (viel 
8051) und dementsprechend eher nach Masse schalten

Mfg
Falk
Gast #710390
@ Morin (Gast)

>Mal ne Frage als Nichtwissender: Welche Vorteile hat das? (Gegenüber
>Taster->5V und Pulldown-Widerstand meine ich). Das müsste doch
>eigentlich symmetrisch sein oder?

TTL (Normal oder Schottky) sieht bei offenem Eingang üblicherweise ein 
H. Grund ist die interne Schaltung. Wenn man nun den Taster nach Masse 
legt, dann kann man sich den Pullup-Widerstand sparen.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.