www.mikrocontroller.net

Forum: FPGA, VHDL & Co. Schmitt Trigger in VHDL


Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

hab wieder mal ne Frage. Und zwar will ich einen Takt von 20 MHz ins 
FPGA einlesen. Wenn ich mir das Taktsignal mit dem Oszi anschaue ist 
dies ziemlich abgerundet, also kein sauberes Rechtecksignal mehr, eher 
ein Sinus. Ich will mich auf diesen Takt syncen. Würde es passen wenn 
ich mir eine einfache Flankenerkennung schreibe, die mir saubere 
Signalflanken detektiert, oder wie würdet ihr einen Schmitt Trigger 
realisieren?
Danke für Infos und Tips...

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Chris (Gast)

>hab wieder mal ne Frage. Und zwar will ich einen Takt von 20 MHz ins
>FPGA einlesen.

naja, sagen wir den Takt anlegen. Einlesen tut man Daten.

> Wenn ich mir das Taktsignal mit dem Oszi anschaue ist
>dies ziemlich abgerundet, also kein sauberes Rechtecksignal mehr, eher
>ein Sinus.

Vielleicht ist die Quelle ja auch ein Sinusoszillator und kein 
Rechteckoszillator? Oder du hast einen Messfehler durch falschen 
Tastkopf etc. Ich hoffe du misst a) mit einem Oszi mit min. 100 MHz 
Bandbreite und b) mit einem 10:1 Tastkopf.

> Ich will mich auf diesen Takt syncen.

Syncen, yeahhh baby! Voll grass!

>Würde es passen wenn
>ich mir eine einfache Flankenerkennung schreibe, die mir saubere
>Signalflanken detektiert, oder wie würdet ihr einen Schmitt Trigger
>realisieren?

WENN das Signal WIRKLICH so rundgelutscht ist, nimmt man einen externen 
Schmitt-Trigger. Wenn nicht, dann einfach ans FPGA anlegen. Naja, 
mit solidem Layout und Masseführung versteht sich, siehe 
Wellenwiderstand.

MfG
Falk

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die aufheiternde Antwort ;-)
Ja,  das Oszi packt 100 MHz und Tastkopf passt auch...sonst hätte ich 
auch nicht nachgefragt...Ne parasitäre Kapazität hat mir das 
Rechtecksignal abgeschliffen.

Autor: Harald Flügel (hfl)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry Chris, ich kann mir das auch nicht ganz verkneifen. Der Engländer 
sagt dazu "garbage in garbage out". Also sorge lieber dafür, dass die 
Signalintegrität auf der Leitung gewahrt ist, als dich um eine 
Symptombekämpfung innerhalb des FPGAs zu kümmern.

Having said this, kann ich dir ja verraten, dass ich neulich ein 
ähnliches Problem hatte. Das Oszilloskop zeigte keine Auffälligkeiten 
des Taktsignals aber durch eine Testschaltung im FPGA konnte ich 
nachweisen, dass im FPGA Taktflanken vorkamen, die "außen" nicht zu 
sehen waren. Wegen einer Reflexion an einer Stichleitung gab es bei 
jeder steigende Flanke de facto zwei Flanken, und bei der fallenden 
Flanke nochmals eine steigende. Allerdings konnte ich an der externen 
Beschaltung nichts ändern und musste daher wohl oder übel auch über eine 
Symptombekämpfung im FPGA nachdenken.

Meine Lösung sieht so aus, dass ich das externe Taktsignal mit einem 
deutlich schnelleren internen Takt abtaste und daraus ein neues 
Taktsignal ableite. Also z.B. erst wenn zwei aufeinander folgende 
Samples 1 sind wird der "neue Takt" auf 1 gesetzt, und erst bei zwei 
aufeinander folgenden Nullen wieder auf 0. Das führt zwar zu einem 
asymmetrischen Takt mit variablem Puls-Pause-Verhältnis, aber wenn dich 
das nicht stört, dann ist das ein gangbarer Ansatz. Denk bitte dran, 
andere Signale, die einen zeitlichen Bezug zu dem Originaltakt haben, 
ebenfalls zu verzögern, damit sich die Verzögerung zumindest teilweise 
kompensiert.

Viel Erfolg!
Harald

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.