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...
@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
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.
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
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.