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
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" !
> Suche nach "de-bouncing" !
Auf gut deutsch: Schalterprellen, Prellen, Entprellung...
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
> 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 :-/
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.
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
> 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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.