Hallo,
ist es moeglich mittels DDFS einen Sinus mit einer Frequenz von
28.534421 MHz zu erzeugen, wenn der FPGA eine Taktfrequenz von 100 MHz
hat?
Und was fuer einen DAC benoetige ich, damit der Sinus genau und stabil
ist? Reichen da 100 MSPS aus? Oder sollte es dann schon mehr sein?
Habt ihr eine Empfehlung fuer einen DAC, der hier angebracht waere?
Und wie hoch waere hier der Jitter? Und wovon ist dieser Jitter
abhaengig? Nur von der Stabilitaet des 100 MHz Oscillator + des DACs?
Danke.
LilaLauneBart
Der Jitter hängt hier vor allem von deiner DDFS ab. Verbessern kannst du
das indem du das FPGA höher taktest. Je nach Modell kannst du den Takt
vielleicht auch mit einem MMCM recht genau erzeugen, jedoch dann als
Rechteck. Daraus kann man dann mit etwas Analogbeschaltung einen Sinus
machen.
LilaLauneBart schrieb:> ist es moeglich mittels DDFS einen Sinus mit einer Frequenz von> 28.534421 MHz zu erzeugen, wenn der FPGA eine Taktfrequenz von 100 MHz> hat?
Theoretisch reicht es, weil du das Abtasttheorem einhältst. Du
bräuchtest also "nur" nach den DAC ein Analogfilter, das die 28MHz nicht
stört, das aber die 100MHz sehr gut unterdrückt.
Praktisch ist dieser Frequenzunterschied von einem Faktor 3 miserabel:
wie schon angemerkt solltest du versuchen, die DDS höher zu takten. Ein
ordentliches Analogfilter wirst du trotzdem noch brauchen.
LilaLauneBart schrieb:> Und was fuer einen DAC benoetige ich, damit der Sinus genau und stabil> ist? Reichen da 100 MSPS aus?
Wenn du die IO-Timings des FPGAs so constrainen kannst, dass sich DAC
und FPGA fehlerfrei verstehen, dann reicht das. Wenn nicht (weil z.B.
der DAC ein Setup-Hold Fenster verlangt, das das FPGA nicht garantieren
kann), dann musst du irgendwo timing margin gewinnen - z.B. durch einen
schnelleren DAC.
LilaLauneBart schrieb:> Und wie hoch waere hier der Jitter?
vor allem von der Taktung der DDS und von der Qualität des
Analogfilters, das nicht nur die "Stufen" im Spannungsverlauf sondern
auch den Jitter wegbügelt.
LilaLauneBart schrieb:> 28.534421 MHz
Aufs Hertz genau? Alles klar...für was brauchst du das?
Ein Quarz schafft in der Größenordnung von 10ppm, also bei 10MHz ist er
gern mal um 100Hz daneben. Rubidium Frequenzstandards liegen wohl im
Bereich 10^-10, das kommt schon eher hin. Selbst wenn du den jitter
runterbekommst mit der PLL, der Offset bleibt. Also, erstmal einen
Rubidium Frequenzstandard besorgen...
Guest schrieb:> LilaLauneBart schrieb:>> 28.534421 MHz>> Aufs Hertz genau? Alles klar...für was brauchst du das?>> Ein Quarz schafft in der Größenordnung von 10ppm,
Wenn es etwas teurer sein darf, geht auch 1ppm (bei konstant gehaltener
Temperatur), mit einem Phase-Jitter < 1 ps (rms). Der Xilinx
Clocking-Wizard dagegen erlaubt die Eingabe der Frequenz lediglich bis
auf 1 kHz genau; was er tatsächlich daraus zusammenteilt, mag schon mal
um bis 1% von der gewünschten Frequenz abweichen.
Was die Frage aufwirft, ob die Kombination DDS zzgl. >>100 MSample/s DAC
nicht besser durch einen externen Quarz mit ca. 28.5 MHz ersetzt werden
kann/sollte.
Gruß, Burkhard
LilaLauneBart schrieb:> ist es moeglich mittels DDFS einen Sinus mit einer Frequenz von> 28.534421 MHz zu erzeugen, wenn der FPGA eine Taktfrequenz von 100 MHz> hat?
Fazit: nur theoretisch. In der Praxis schaffst du es nicht, einen
ausreichend steilen Filter zu bauen. Oder andersrum: dein Sinus wird
kein Sinus sein, sondern irgendwas "Zackiges".
Und auch die vielen Nachkommastellen...
Wofür brauchst du sowas?
@ Lothar Miller (lkmiller) (Moderator) Benutzerseite
>> ist es moeglich mittels DDFS einen Sinus mit einer Frequenz von>> 28.534421 MHz zu erzeugen, wenn der FPGA eine Taktfrequenz von 100 MHz>> hat?>Fazit: nur theoretisch. In der Praxis schaffst du es nicht, einen>ausreichend steilen Filter zu bauen. Oder andersrum: dein Sinus wird>kein Sinus sein, sondern irgendwas "Zackiges".
Einspruch. Bau einen schmalbandigen Bandpass und das passt schon. Der OP
will ja anscheinen nur EINE exakte Frequenz generieren. Wobei man dazu
keine DDS braucht, da nimmt man gleich den passenden Quarzoszillator.
Mit dem dann extrem schmalen Bandpass bekommt er aber starke
Amplitudenschwankungen. Je schmäler der Bandpass, desto stärker schwankt
die Höhe des Signals.
Lothar M. schrieb:> LilaLauneBart schrieb:>> ist es moeglich mittels DDFS einen Sinus mit einer Frequenz von>> 28.534421 MHz zu erzeugen, wenn der FPGA eine Taktfrequenz von 100 MHz>> hat?> Fazit: nur theoretisch. In der Praxis schaffst du es nicht, einen> ausreichend steilen Filter zu bauen. Oder andersrum: dein Sinus wird> kein Sinus sein, sondern irgendwas "Zackiges".> Und auch die vielen Nachkommastellen...> Wofür brauchst du sowas?
Danke fuer eure Antworten.
Die Taktfrequenz meines FPGAs wird von einem OCXO betrieben. - Hoffte
das ich damit schonmal eine gute Basis fuer die DDFS habe.
Mein Ziel ist die DDFS als LO eines Mixers zu betreiben. Clue der
Geschichte soll sein, dass ich sich eine Frequenz waehrend einer
Synchronisierungszeit justieren soll. D.h. durch Veraenderung des FTW
(frequency tuning word) der DDFS kann dann man genau (zumindest
theoretisch) die frequenz aendern... Wenn die Frequenz am Ausgang des
Mixers mir nicht passt, moechte ich dann dem FPGA sagen, "Herr FPGA,
bitte aendere das FTW so, dass ich diese oder diese Frequenz am Mixer
AUsgang habe).
Ist das moeglich?
In der Zwischenzeit (in Hoffnung meine Ueberlegung hat Potential) habe
ich mal nach einem passenden DAC gesucht. Aber ich finde nur DACs die
man ueber SPI oder derartiges ansteueren kann... Gibt es denn keine
DACs, auf die ich z.B. einfach uber PMOD ansteuere (also auf jedes Pin
meines PMODs ein bit ausgebe und dieses dann direkt auf einen DAC geben
und dann an einem Ausgangspin des DACs meinen gewunschten sinus habe? -
Dachte an sowas wie ein R/2nR DAC... Wuerde hier ein R/2nR DAC Sinn
machen?
Falk B. schrieb:> Wobei man dazu keine DDS braucht, da nimmt man gleich den passenden> Quarzoszillator.
Deshalb: wofür wird diese ultragenaue Frequenz gebraucht? Denn selbst
1ppm ist noch um den Faktor 30 zu schlecht...
Achim S. schrieb:> PS: bei deiner Anwendung tust du dich vielleicht mit einem dedizierten> DDS-IC leichter
Falls und wenn die Frequenz überhaupt geändert werden muss. Und auch
dann stellt sich die Frage nach der tatsächlich bemötigten Auflösung und
Stabilität...
Lothar M. schrieb:> Falk B. schrieb:>> Wobei man dazu keine DDS braucht, da nimmt man gleich den passenden>> Quarzoszillator.> Deshalb: wofür wird diese ultragenaue Frequenz gebraucht? Denn selbst> 1ppm ist noch um den Faktor 30 zu schlecht...
Ich moechte eine Frequenz im UHF bereich (900 MHz) runtermixen auf 500
Khz. Der vorhandene Mixer enthaelt eine PLL. Diese PLL benoetigt einen
Takt von 28.534421 MHz um auf 500 KHz zu kommen. Da ich waehrend der
Synchronisationsphase genau auf die IF von 500 KHz kommen moechte,
jedoch aber anfangs die Frequenz nicht genau passen wird, moechte ich
diese mit dem DDFS des FPGA selbstjutierend korriegen. Heisst, mit dem
FPGA ueberpruefe ich mittels Frequenzzaehler wie die Frequenz am
MixerAusgang ist und solange diese nicht passt, wird das FTW hoeher bzw
niedriger gesetzt, bis ich am Ausgang des Mixers genau die 500 kHz +/-
paar mHz rausbekomme..... Deswegen auch der OCXO....
Moechte hier keinen Quartzoscillator verwenden, da ich dann nur durch
die Kapazitaet die Frequenz aendern kann... das waehre ueber einen FPGA
in meinem Sinne eleganter...
Was meint ihr - Ist das moeglich?
LilaLauneBart schrieb:
Diese PLL benoetigt einen
> Takt von 28.534421 MHz um auf 500 KHz zu kommen.
Wenn der Phasenkomparator deiner PLL auch mit einem Rechtecksignal
umgehen kann, dann wären der DAC überflüssig. Schon mal das Datenblatt
daraufhin angeschaut?
Der Faktor dreikommairgendwas ist hier garnicht einmal das Problem. Man
kann da durchaus einen Filter für bauen. Das Problem ist, dass die DDS
schwebt, wenn man nicht dieselbe für den Bereich optimiert. Und dann
muss man fragen, wozu man DDS macht, wenn die Frequenz konstant sein
soll!
Eine DDS mit einstellbare Frequenz wird IMMMER Phasenfehler haben, die
weggeglättet werden müssen und dies geschieht mit einem Tiefpass. Ein
Tiefpass und kein Schmalbandfilter muss es sein, damit die Frequenz
einstellbar ist.
Hinzu kommt, dass es hier wohl sehr genau sein muss. Wozu also FPGA?
Klar könnte man mit einer zweistufigen DDS zunächst den Takt und dann
daraus den Sinus machen. Das geht sogar prima, weil man ein Vielfaches
der Frequenz nehmen kann, z.B. das 16fache und daraus den Sinus
generiert. Aber:
Bei DEN Anforderungen braucht es einen sher genauen Eingangstakt /
Oszillator und den kann man auch ohne FPGA auswerten: Ein Chip kann das
genau so gut, wenn man erst einmal den Takt hat. Also 14,50 für den
Oszillator, 57,20 für die Temperatur- und Driftkompensation und 22,40
für den AD-Chip.
Ein FPGA kommt nur in Frage, wenn man mit mehr Jitter leben kann. Dann
reicht ein Spartan mit angeschlossenem Quarz und manueller
Taktratenherabsetzung durch IOs sowie ein angeschlossenes Filter. Macht
10,50! Das Filter dann gerne steilflankig. Allerdings: Wenn man ein so
genaues steilflankiges Filter hat, kann man es auch gleich rückkoppeln
und ist fertig :-)
Achim S. schrieb:> PS: bei deiner Anwendung tust du dich vielleicht mit einem> dedizierten> DDS-IC leichter:> http://www.digikey.de/product-search/de?pv515=13&p...
Exakt.
> Die können intern problemlos mit einigen 100MHz DDS-Takt laufen.
Bis 3 GHz ist es aktuell, soweit mir bekannt.
Wer es super genau und trotzdem einstellbar braucht, nimmt ein DDS-IC
mit einem geringen Ausgangstakt, z.B. nur 5 MHz, hat also einen
DDS-Sinus mit Auflösung 1:1000 und fitert den entsprechend. Diesen gibt
man auf eine PLL, die den Jitter rausnimmt und einen entsprechenden
stabilen Takt für ein zweites DDS-IC mit Aussentrigger.
Okay dann wird das wohl nichts... Ihr habt mir ueberzeugt. - Danke für
eure aufschlussreichen Beitraege. Habt mir wohl eine Menge Arbeit und
schlussendlich eine Enttaeuschung erspart.