Forum: FPGA, VHDL & Co. Altera Quartus II Flip Flop Problem


von Stephan B. (stbergbauer)


Lesenswert?

Hallo,

Ich versuche gerade vergeblich zum testen ein einfaches 
flankengetriggertes D-Flip-Flop auf dem MaxII development board zu 
realisieren. (mit den Schaltern und LEDs). Hab das ganze der einfachheit 
halber im Schaltplan gemacht. Wenn ich das Flip-Flop simuliere 
funktioniert alles wie erwartet (triggert auf positive flanke), aufm 
Board triggert es allerdings auf die positive und die negative Flanke...
es handelt sich wahrscheinlich um einen dämlichen anfängerfehler aber 
ich komm nicht drauf...
Vielen Dank für eure Hilfe!

Stephan

von Klaus F. (kfalser)


Lesenswert?

Jeder Schalter/Taster erzeugt beim Schalten immer mehrere Flanken, da 
der Kontakt nicht sofort schließt, sondern "flattert" und für einige 
Millisekunden zwischen 0 und 1 hin und her wechselt !

Suche nach "de-bouncing" !

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> Suche nach "de-bouncing" !
Auf gut deutsch: Schalterprellen, Prellen, Entprellung...

von Stephan B. (stbergbauer)


Lesenswert?

Danke für eure Hilfe.

Hab ich zuerst auch dran gedacht aber die Schalter sind mitm RC bereits 
auf dem Board entprellt. Würdet ihr dann noch zusätzlich eine 
entsprechente Entprellung aus FFs im CPLD selbst aufbauen? Fänd ich 
schon komisch wenn man aufm Eval Board die Schalter nicht ausreichend 
entprellt hätte.


Stephan

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> Würdet ihr dann noch zusätzlich eine
> entsprechente Entprellung aus FFs im CPLD selbst aufbauen?
Immer.
Prinzipiell solltest du z.B. einen Taster nicht als Taktquelle 
verwenden.

> Fänd ich schon komisch wenn man aufm Eval Board die Schalter nicht
> ausreichend entprellt hätte.
Warum?
Auf einem EVAL-Board sollten doch durchaus realitätsnahe Bauteile 
eingesetzt werden. Und das sind eben prellende Taster. Aus Kostengründen 
oft sogar schlechte prellende Taster   :-/

von Klaus F. (kfalser)


Lesenswert?

Es hängt ganz von der Schaltung mit RC ab.
Der Tiefpass muß ersten sehr langsam sein, damit er Signale in 10 ms 
Größenordung glätten kann. Dann muß ein Schmitt-trigger oder sonst ein 
Komparator mit Hysterese nachgeschalten werden, weil man das 
verschliffene (= langsame Flanke) Signal nicht direkt an die CPLD Pins 
legen darf. Diese mögen nämlich nur saubere '1' oder '0' Pegel.

von Stephan B. (stbergbauer)


Lesenswert?

Hi nochmal...

Hab jetzt versucht die Taster intern zu entprellen, hat allerdings nicht 
geklappt...Habt ihr evtl. ne Idee wie man im CPLD intern nen Taster 
entprellt.

Stephan

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> Habt ihr evtl. ne Idee wie man im CPLD intern nen Taster entprellt.
Zum Entprellen brauchst du üblicherweise einen globalen Mastertakt, auf 
den dein Design synchron ist. Und auf diesen Takt wird dein Taster 
einsynchronisiert.

Sonst gibt es noch ein paar Schaltungstricks, die aber nur mit 
zweipoligen Umschaltern funktionieren. So wie hier im Abschnitt 1: 
http://www.pldworld.com/_xilinx/html/tip/sixeasypieces.htm

Wie gesagt:
einen externen Taster als Taktquelle zu verwenden ist sehr gewagt. Da 
wirst du sowas wie ein Monoflop zur Entprellung brauchen. Einfach ein 
RC-Gleid geht idR. nicht, weil dann die Flankensteilheit des Taktsignals 
arg leidet.

von Stephan B. (stbergbauer)


Lesenswert?

Vielen Dank für die Info!!
Jetzt weiss ich wenigstens wo ich ansetzen muss!

Stephan

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.