Forum: FPGA, VHDL & Co. DDFS 30 MHz mit 100 MHz FPGA clock


von LilaLauneBart (Gast)


Lesenswert?

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

von Gustl B. (-gb-)


Lesenswert?

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.

von Achim S. (Gast)


Lesenswert?

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.

von Guest (Gast)


Lesenswert?

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

von Burkhard K. (buks)


Lesenswert?

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

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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?

von Falk B. (falk)


Lesenswert?

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

von Gustl B. (-gb-)


Lesenswert?

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.

von LilaLauneBart (Gast)


Lesenswert?

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?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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

von Achim S. (Gast)


Lesenswert?

LilaLauneBart schrieb:
> 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

du meinst einen schnellen DAC mit Parallelinterface? Klar gibt es so 
was. Bei Distributor deines Vertrauens die benötigte Abtastrate eingeben 
und beim Interface nach Parallel suchen, dann bekommst du z.B. folgende 
Auswahl:
http://www.digikey.de/product-search/de?pv243=142&pv243=24&FV=fff40027%2Cfff80184%2C5700032%2C5700038%2C5700049%2C570004d%2C5700051%2C5700055%2C570005b%2C5700061%2C570006a%2C5700073%2C5700078%2C5700082%2C5700091%2C57000aa%2C57000be%2C57000ed%2C570015d%2C5700185%2C5700186%2C5700192%2C57001ca%2C57001d7%2C57001e5%2C57001f6%2C570020e%2C5700210%2C5700211%2C5700212%2C570021e%2C5700220%2C5700224%2C5700235%2C570023d%2C5700254%2C5700283%2C12540002&k=dac&mnonly=0&newproducts=0&ColumnSort=0&page=1&quantity=0&ptm=0&fid=0&pageSize=25

Allerdings reicht dem DAC im Normalfall nicht das parallele Datenwort, 
sondern er will auch noch einen Takt, der ihm sagt, wann das Datenwort 
zu übernehmen ist.

von Achim S. (Gast)


Lesenswert?

PS: bei deiner Anwendung tust du dich vielleicht mit einem dedizierten 
DDS-IC leichter:
http://www.digikey.de/product-search/de?pv515=13&pv515=8&pv515=9&pv515=10&pv515=11&pv515=19&FV=fff40027%2Cfff801e9&k=dds&mnonly=0&newproducts=0&ColumnSort=0&page=1&quantity=0&ptm=0&fid=0&pageSize=25

Die können intern problemlos mit einigen 100MHz DDS-Takt laufen. Das 
selbe mit FPGA und externem DAC zu bauen, kann schwierig werden.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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

von LilaLauneBart (Gast)


Lesenswert?

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?

von Burkhard K. (buks)


Lesenswert?

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?

: Bearbeitet durch User
von J. S. (engineer) Benutzerseite


Lesenswert?

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.

von PolaBaer (Gast)


Lesenswert?

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.

von Ratgeber (Gast)


Lesenswert?

Wie wäre es, wenn du einfach  mal baust und dabei lernst?

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
Noch kein Account? Hier anmelden.