Forum: FPGA, VHDL & Co. CPLD Taster intern entprellen


von Jens (Gast)


Lesenswert?

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

von reiner (Gast)


Lesenswert?

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

von Thomas H. (mac4ever)


Lesenswert?

@reiner
Naja, aber wirklich entprellt ist der damit auch nicht oder ? Wenn der 
Eingang einige Mal rumzappelt, dann erkennst Du mehrere Tastendrücke.

von reiner (Gast)


Lesenswert?

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...

von Jens (Gast)


Lesenswert?

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

von Falk B. (falk)


Lesenswert?

@ Jens (Gast)

>Oder wie entprellt ihr eure CPLD-Taster?

Da CPLDs eher wenig Logikresourcen haben würde ich keine Entprellung mit 
Logik machen sondern Old School in Hardware.

Entprellung
Schmitt-Trigger

MFG
Falk

von reiner (Gast)


Lesenswert?

ist schon ne weile her, dass ich mit cplds gearbeitet hab... beschreibst 
du die mit vhdl?

von Jens (Gast)


Lesenswert?

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

von Jens (Gast)


Lesenswert?

@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

von Falk B. (falk)


Lesenswert?

@ 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

von Jens (Gast)


Lesenswert?

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

von Falk B. (falk)


Lesenswert?

@ 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

von Jens (Gast)


Lesenswert?

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

von Jens (Gast)


Lesenswert?

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

von Falk B. (falk)


Lesenswert?

@ 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

von Morin (Gast)


Lesenswert?

> 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?

von Falk B. (falk)


Lesenswert?

@ 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

von Mike (Gast)


Lesenswert?

@ 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.

von Morin (Gast)


Lesenswert?

Vielen Dank für die Erklärung!

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
Noch kein Account? Hier anmelden.