>Häää??? Na gut, mal eine etwas einfachere Frage: Kann ich eigentlich an einen FPGA (S3E) zwei Taktquellen anschließen und zwischen diesen umschalten? Warum ich das will: In der Regel kommt der Takt von CLKOUT von einem ADC. Der ADC braucht schon einiges an Leistung, daher wäre es nicht völlig abwegig, diesen abzuschalten (Power Down) wenn keine Messung stattfindet. Der FPGA soll aber weiterhin (einen langsameren) Takt bekommen, damit Datenübertragung zwischen ihm und dem uC stattfinden kann.
Dafür gibts die Clock-Muxer. Aber sonderlich gut ist die Idee trotzdem nicht, denn mit irgendeinem Takt musst du ja das FlipFlip oder was halt den Befehl von µC auswertet um den Muxer umzuschalten, auch versorgen. Oder du machst das halt statisch über ein IO-Pin direkt.
Hallo Christian, >Aber sonderlich gut ist die Idee trotzdem >nicht, denn mit irgendeinem Takt musst du ja das FlipFlip oder was halt >den Befehl von µC auswertet um den Muxer umzuschalten, auch versorgen. Das ist das, was die Sache nicht ganz trivial macht. Ich hatte schon etwas nach Postings zum Theam gesucht, aber meist geht es dann darum, dass zwei Taktquellen permanent anliegen, und eine ausgewählt wird. Aber ich will ja evtl. eine abschalten. Die Idee ist schon gut, denn der ADC verbraucht ca. 0,4 Watt (ca. 10% des Gesamtverbrauchs des Gerätes). Zusätzlichen Jitter will ich aber nicht erzeugen. Na ja, vorsehen kann ich eine Umschaltung ja zunächst...
Warum versorgst du nicht den Spartan mit zwei Takten parallel und machst zwei Taktbereich auf? Den langsamen nimmst du für die Kommunikation mit der Außenwelt. Der schnelle kommt vom ADC und ist einfach nicht da, wenn du den ADC stilllegst. Wo ist dort das Problem, oder sehe ich jetzt was falsch?
Hallo Bernd G., ja das klingt nicht schlecht. Ich hätte dann permanent einen langsamen Takt, etwa 8MHz vom Taktausgang des uC, und während der Messung zusätzlich 100 MHz vom Taktausgang des ADC. Den schnellen Takt benötige ich u.a. um den ADC auszulesen und die Werte im Blockram oder evtl. auch im externen RAM-Modul abzulegen. Die beiden Takte sind aber völlig unabhängig voneinander, haben also insbesondere keine fest Phasenbeziehung. Aber ich denke ich werde das so vorsehen. Wenn es nicht gut funktioniert wird die langsame Taktleitung gekappt und stets der schnelle Takt verwendet. Gruß Stefan
@ Stefan Salewski (Gast) >Die beiden Takte sind aber völlig unabhängig voneinander, haben also >insbesondere keine fest Phasenbeziehung. Naja, asynchron halt. Kann/muss man halt mit asynchronen FIFOs koppeln. Zum Thema Taktumschaltung siehe Taktung FPGA/CPLD. MfG Falk
> Naja, asynchron halt. Kann/muss man halt mit asynchronen FIFOs koppeln.
Genau, so und nicht anders. Man kann auch ausnahmsweise entgegen der
Warnungen in der ISE mal asynchron geladene Register nehmen, wenn man
weiß,
was man tut.
Ich detektiere in solchen Fällen die Flanken des asynchronen Signals und
kopple die dann synchron an ("Flankenfänger"). Eine etwas aufwendigere
Variante mit SR ist im Molitor/Ritter beschrieben. Ist irgendwo auch im
Tietze/Schenk drin.
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.