www.mikrocontroller.net

Forum: FPGA, VHDL & Co. FPGA, Umschalten zwischen 2 ext. Taktquellen


Autor: Stefan Salewski (Gast)
Datum:

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

Autor: Christian R. (supachris)
Datum:

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

Autor: Stefan Salewski (Gast)
Datum:

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

Autor: Bernd G. (Gast)
Datum:

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

Autor: Stefan Salewski (Gast)
Datum:

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

Autor: Falk Brunner (falk)
Datum:

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

Autor: Bernd G. (Gast)
Datum:

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

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.