Hallo, mit einem FPGA möchte ich gerne hochgenau und mit ca. 200MHz zählen. Dazu habe ich per LWL eine 10MHz Referenztakt von einem DCF77-Empfänger. Gezählt werden sollen GPS-Signale. Ich dachte jetzt an sowas wie AD9553 der aus den 10MHz ja hochgenau 200MHz machen kann. Es muss aber dennoch ein genauer Oszillator an board, falls die LWL mal wegfällt. Die Spartan haben aber auch DCM/PLL habe ich gelesen. Wie genauz ist das? Problematisch sehe ich beim AD9553, das ich einen Microcontroller brauche der mir das Ding dann konfiguriert. Und dann brauche ich auch wieder 2x UART oder so. Ansonsten könnte ich ja direkt mit einem FTDI/FIFO auf das FPGA. Die Umschaltung zwischen LWL-Takt und Oszillator kann ja sicherlich nicht der FPGA erledeigen, oder wird das durch diese holdover vom AD9553 abgefangen? Dann ginge es ja doch ohne uC und ich hätte meinen low jitter Takt am FPGA. Gibt es so noch andere empfehlenswerte PLL-Gens, die die Konfig evtl. auch direkt speichern? Sodass ich das PC-Interface nur im FPGA implementieren muss und dieser die Umschaltung der Takte im PLL-Gen übernimmt? Thank you ...
:
Verschoben durch Moderator
Rainer schrieb: > Die Spartan haben aber auch DCM/PLL habe ich gelesen. Wie genauz ist das? Wenn di eingerastet ist, dann ist die zu 100% "genau". Welchen Jitter du hast, das kommt wieder auf die Taktquelle und das Layout und ein paar weitere Sachen an. > Und dann brauche ich auch wieder 2x UART oder so. Ich sehe da nur ein SPI Interface. Und das ist letztlich nur ein Schieberegister... BTW: "genau" und "hochgenau" ist eigentlich eine sehr willkürliche Definition. Auf wen oder was bezogen willst du "genau" sein?
mit hochgenau meine ich, so stabil und jitter-arm wie der AD9553 eben ist. Ich habe also meienn TCXO der am AD9553 hängt und zusätzlich die 10MHz von dem DCF77-LWL. Ist z.B. die DCM beim Spartan6 ebenso stabil und jitter-arm wie der AD9553 und wie würde die Umschaltung der Taktquellen zu Laufzeit ohne AD9553 gehen? Zum Thema stabil: ist sicher nur vom TCXO und dem DCF77-LWL abhängig. Durch AD9553 oder DCM denke ich würde sich nur Jitter addieren, oder?
Du moechtest einen Referenzoszillator, der auf 200MHz laeuft, von 10MHz her erzeugt wird, und auch auf DCF77 gelockt ist, und gegen GPS zaehlen kann... Ein interessantes Projekt. Ich habe einen Spielverderber.. der kann das alles schon selbst. Ich wuerde einen AD9548, oder aehnlich verwenden. Ein Clockgenerator Chip mit internener Quelle, der auf eine von mehrenen externen phase-locken kann. Er kann bei Referenzausfall automatisch auf ein Stratum-2 Holdover gehen, bedeutet die interne Quelle ist besser als ... <spezifiziert>... und die Umschaltung geschieht mit extrem praeziser Phase, dh minimalem Phasensprung. Als automatisch eingebautes Feature kann man so 10MHz, den DCF77, sowie GPS eingeben, und der zaehlt die gegeneinander. Sobald der Eine als Referenz gesetzte weggeht, schaltet er um auf den naechsten. Dazu werden alle Eingaenge mit dem als Referenz Gesetzten verglichen. Er kann somit auch den 1 PPS des GPS als Referenz verwenden, und den Jitter wegmachen, die Regelzeitkonstante muss dann auf 1000 sekunden oder so gesetzt sein. Es gibt auch welche Chips mit weniger Eingaengen. Vergiss in FPGA eingebaute Quellen. Die sind zwar funktional fuer FPGA, aber nicht vergleichbar. Eine Frage der Anforderungen. Die sind bisher nicht klar. "Hochgenau" ist schwammig und zeugt von wenig Ahnung. Allenfalls interessant/wichtig : Worum geht es denn genau ? Um externe Systeme, oder nur FPGA selbst.
:
Bearbeitet durch User
Rainer schrieb: > mit einem FPGA möchte ich gerne hochgenau und mit ca. 200MHz zählen. > Dazu habe ich per LWL eine 10MHz Referenztakt von einem DCF77-Empfänger. > Gezählt werden sollen GPS-Signale. Normalerweise nehmen die Leute ein GPS-pps-Signal um ein Rubidiumnormal zu disziplinieren, weil denen DCF77 zu stark jittert... Wenn bei Xilinx der minimale Eingangstakt für die PLL nicht bei knapp 20 MHz liegen würde, könnte man die 10 MHz als RefCLK für die interne PLL nehmen. Ein externe PLL sollte auch gehen. Dort hast Du den Jitter (=Zeitrauschen) selbst in der Hand. Duke
Den Jitter der FPGA-internen PLL kannst Du mit einem externen Clock Conditioner (aka Jitter Cleaner) reduzieren, z.B. http://www.ti.com/product/lmk03000 Braucht allerdings einen externen Loop-Filter, der entsprechend dimensioniert werden muss.
Rainer schrieb: > zusätzlich die > 10MHz von dem DCF77-LWL DCF77 ist doch Langwelle (77,5 kHz), wie kommst Du damit zu 10 MHz?
>DCF77 ist doch Langwelle (77,5 kHz), wie kommst Du damit zu 10 MHz? Hoch-PLL-en. Ein AD9548 kann das, der kann sogar vom 1Hz des GPS auf 10MHz gehen.
genau so! Aber ich habe jezt noch nicht verstanden, inwiefern ich den FPGA-int. PLL nutzen kann. Angenommen ich habe einen recht guten Oszillator (sagen wir +-1ppm) mit 50MHz. Kann ich dann die "hochgenauen" 10MHz auf einen Clock-I/O des FPGA geben und die dann mit der FPGA-PLL nutzen? Wie viel macht die PLL vom FPGA da evtl. kaputt? Ich brauche eben einen rel. hohen Clock zum Zählen (ca. 100MHz), einen mittleren um präzise eine Totzeit nach jedem Impuls zur erzeugen und einen recht niedrigen um einen Timer zu basteln, der ca. 1000s Messdauer erzeugt. Das alles natürlich synchrom. Wäre schön, wenn meine genaue, externe Quelle mithilfe des internen PLLs das alles könnte und ich eben keine externen Clockbausteine brauche. Grüße
Rainer schrieb: > Kann ich dann die "hochgenauen" 10MHz auf einen Clock-I/O des > FPGA geben und die dann mit der FPGA-PLL nutzen? Im Prinzip ja. Im Detail muß an die Datenblätter des verwendeten Bausteins lesen. > Wie viel macht die PLL vom FPGA da evtl. kaputt? Steht im Datenblatt. Die PLLs im FPGA werden aber nicht für die Genauigkeitsanforderungen von Physikern entwickelt. Im Zweifelsfall nachmessen. Rainer schrieb: > Ich brauche eben einen rel. hohen Clock zum Zählen (ca. 100MHz) Sollte kein Problem sein. Je nach Bitbreite des Zählers können aktuelle FPGAs in der Größenordnung um 500 MHz zählen. Duke
Ein PLL in einem FPGA erfuellt die Funktionen eines FPGA PLLs. Dh sie multiplizieren die Frequenzen. Billigst. Fuer die ueblichen Anwendungsfaelle genuegend. Allenfalls ist deren Bereich auch eingeschraenkt. Schau ins Datenblatt, was moeglich ist. Allenfalls nicht mehr genuegend wenn "hochgenaue" Apparaturen angeschlossen werden sollen. Was soll's denn werden ? Ich hab zB mal bei einem gelockten Laser mit einem FPGA Pulse ausgeschnitten. Da musste die Quelle erhoehte Anforderungen erfuellen.
:
Bearbeitet durch User
Rainer schrieb: > Angenommen ich habe einen recht guten Oszillator (sagen wir +-1ppm) Erstens bestreite Ich, dass Du 1ppm kaufen kannst, dann bestreite Ich, dass Du die sauber in den Chip bekommst und dann bestreite Ich, dass die PLL im FPGA das auch nur annährend kann. Rechne mal mit dem Hundertfachen.
> Wäre schön, wenn meine genaue, externe Quelle mithilfe des internen PLLs das alles könnte und ich eben keine externen Clockbausteine brauche. Ja. Es hat etwas gedauert, bis wir die Anforderungen haben. Ein einzelner Oszillato genuegt natuerlich. Denn die Genauigkeit der Frequen bleibt dieselbe wie beim Oszillator selbst. Du kannst die 10MHz moeglicherweise verzehnfachen mit einem internen PLL, das Datenblatt gibt Auskunft. Der mittlere Zaehler zaelt eben den Delay, auch vom 100MHz Clock runter. Und auch 1000sek kann man mit den 100MHz zaehlen. Da benoetigt einen Zaehler mit 10+28 Bit. Bei einem hinreichend grossen FPGA kann man mit mehreren Clockdomains arbeiten, dort wuerde man den schnellen Zaehler auf 100MHz laufen lassen, fuer den mittleren Zaehler vom Oszillator einen 1MHz Clock runterteilen lassen, und noch eine domain in ms zaehlen lassen.
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.