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
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
@reiner Naja, aber wirklich entprellt ist der damit auch nicht oder ? Wenn der Eingang einige Mal rumzappelt, dann erkennst Du mehrere Tastendrücke.
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...
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
@ 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
ist schon ne weile her, dass ich mit cplds gearbeitet hab... beschreibst du die mit vhdl?
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
@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
@ 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
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
@ 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
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
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
@ 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
> 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?
@ 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
@ 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.
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.