mikrocontroller.net

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


Autor: Stephan Bergbauer (stbergbauer)
Datum:

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

Autor: Klaus Falser (kfalser)
Datum:

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

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

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

Autor: Stephan Bergbauer (stbergbauer)
Datum:

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

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

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

Autor: Klaus Falser (kfalser)
Datum:

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

Autor: Stephan Bergbauer (stbergbauer)
Datum:

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

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

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

Autor: Stephan Bergbauer (stbergbauer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für die Info!!
Jetzt weiss ich wenigstens wo ich ansetzen muss!

Stephan

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.