mikrocontroller.net

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


Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: reiner (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Thomas Hertwig (mac4ever)
Datum:

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

Autor: reiner (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: reiner (Gast)
Datum:

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

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Morin (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Morin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für die Erklärung!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.