Hallo an alle,
ich hoffe ihr könnt mir einen Schubs in die richtige Richtung geben.
Ich möchte über einen BCD-Schalter, inem Codeumsetzer (momentan
ATMEGA16) und einen Frequenzteiler Frequenzen von 50kHz - 20MHz
einstellen können. Pegel ist eigentlich "egal" (5 Volt wäre gut).
Seither habe ich einen Referenztakt (20MHz Quarzoszillator) mit dem
74HC40103 (8Bit Binary Down Counter) auf den gewünschten Ausgangstakt
heruntergeteilt. Nun sollen noch mehr Frequenzen und auch die 20MHz
direkt als Ausgangstakt realisiert werden. Leider kann man bei diesem
Baustein aber den Takt nicht 1:1 durchleiten.
-->Also müsste ich einen höheren Ref-Takt nehmen (max_f=40 MHz) und den
dann bis auf 50kHz runterteilen. Das geht aber mit den 8 Bit des Teilers
nicht. Eine Kaskadierung kommt durch das min. Teilerverhältnis von 1/2
auch nicht in Frage.
Also beschäftige ich mich seit geraumer Zeit mit anderen
Teilern(74HC4059, 74F525...).
Da ich mit Ihnen nicht den kompletten Frequenzbereich abdecken kann,
sind diese leider alle ungeeignet oder mittlerweile nicht mehr
verfügbar.
Das Problem an der ganzen Sache ist, dass der erzeugte Ausgangstakt
möglichst kleine Jitter werte haben sollte, was ich seither ziemlich gut
realisiern konnte.
Eine andere Möglichkeit wäre ein CPLD mit einstellbarem Teilerverhälnis.
Das ganze wäre da ja mit ca. 9-10 T-FF´s und ein paar normalen
Logikbausteinen realisierbar.
Da bekomme ich dann aber evtl. auch wieder Probleme mit dem
50%Tastverhältnis.
Doch wie sieht es da mit dem Jitter/Phasenrauschen aus?
Ich hab ja da dann eine gewisse Taktabhängigkeit vom CPLD?
Oder sehe ich das falsch?
Hat jemand schon mal was ähnliches gemacht?
Gruß und danke
Mani
>hast Du mal über einen DDS-Chip nachgedacht?
Ja, hab ich erlich gesagt auch schon. Aber ich glaube nicht dass ich da
so Jitterarm bin wie mit einer Logikschaltung!?
(Da hab ich wenigstens kontinuirliche Signallaufzeiten)
Aber da lass ich mich gerne belehren :-D
(hab auch erlich gesagt noch nichts mit DDS gemacht).
Danke für die Antwort.
Gruß Mani
Ein guter DDS_Chip mit sauberem Eingangstakt und korrekt dimensioniertem
Tiefpassfilter am Ausgang kann extrem niedrigen Jitter haben. Uebrigens
im Gegensatz zu der von Dir verwendeten 74HCxx-CMOS-Logik - die hat um
viele Klassen mehr Jitter (wenn Du Logikbausteine mit sehr niedrigen
Jitter willst, musst Du differentielle Gatter verwenden - Stichwort
ECL/PECL).
Ich baue gerade ein Geraet, das den AD9912 von Analog Devices verwendet.
Da messe ich ueber den Bereich von 40 - 330 MHz einen Jitter von unter
1.5ps RMS (bis auf einige Spurs sogar unter 1ps RMS); das Problem ist da
eher schon, so niedrige Jitterwerte ueberhaupt zu messen (kann man aber
mit einer Schaltung um wenige Euro, wenn man weiss, wie :-)
Das Taksignal kommt von einem 100 MHz-Quarzoszillator. Du kannst ein
Eval-Board fuer diesen Chip fuer US$250 von Analog bestellen - das ist
billiger, als Du so ein Einzelstueck selber bauen kannst, und Du
brauchst keinen 0.5mm-Pitch-Chip selber aufloeten. Der Chip hat ausser
einem differentiellen Ausgang auch einen CMOS-Level-Ausgang (2.5 - 3.3V
je nach Spannungsversorgung), der gegenueber dem differentiellen Ausgang
um den Faktor 1 - ~128000 heruntergeteilt werden kann; 50 kHz Ausgang
mit nHz (ja, nano-Hertz)-Aufloesung sind damit kein Problem. Analog hat
auch eine ganze Serie anderer DDS-Chips im Angebot, einer passt sicher
fuer Deine Ansprueche.
Die Eval-Boards fuer diese Chips kann man sowohl ueber USB vom PC als
auch ueber SPI von einem Mikrocontroller ansteuern.
Wolfgang
Hallo Wolfgang,
danke für deine ausführliche Schilderung.
Das dass so genau (immer relativ) geht mit dem DDS wusste ich nicht.
250 Takken ist mir dann doch ein bischen zu viel...dachte da eher an
eine Lösung für 2-10 Euro. Wie gesagt hab ich auch noch garnichts mit
nem DDS gemacht (ich weis...es ist immer das erste mal).
Wie aufwendig ist denn sowas im vergleich zu einem CPLD?
Gruß Mani
Äh...ich schieß mal gleich noch ne Frage hinterher:
>und korrekt dimensioniertem Tiefpassfilter am Ausgang
Auf was für einen Frequenzbereich soll man den denn auslegen wenn man
z.B wie bei mir einen Bereich von 50kHz - 20MHz hat?
Einfach in die Mitte und gut?
Danke.
>Auf was für einen Frequenzbereich soll man den denn auslegen wenn man>z.B wie bei mir einen Bereich von 50kHz - 20MHz hat?>Einfach in die Mitte und gut?
Nix in der Mitte. 3dB Grenzfrequenz bei etwas ueber 20MHz je nachdem wie
steil dein Filter ist.
Gruss Helmi
Klingt irgendwie logisch ...
War grad noch bei nem Rechtecksignal und dachte, dass ja dann die ganzen
Oberwellen weg sind :-D
Aber kann mir noch jemand sagen wie aufwendig dass sowas mit nem DDS
ist.
Möchte ja eigentlich nur einen Referenztakt runterteilen, alla
Frequenzteiler.
Mit nem CPLD haben dass hier ja schon einige Leute gemacht.
Mein Problem ist es, dass ich nicht ne große Ahnung in der Auswahl der
Komponente habe (ob jetzt Lattice, Altera, Atmel...?).
Wenn ich also jetzt einen Referenztakt von z.B. 40 MHz habe und den auf
die Werte 20MHz,10MHz,5MHz, 2MHz,1MHz,500kHz, 200kHz,100kHz,50kHz
runterteilen möchte, dann brauche ich ja jeweils Teiler durch 2
(einfaches T-FF) und teiler durch 10 (von z.B 20MHz --> 2MHz).
Das heißt ich bräuchte 6 Teiler durch 2 und 3 Teiler durch 10 um alle
Frequenzen abzudecken.
Oder halt einen Zähler den ich bei Carry / Borrow zurücksetzte.
Das wären dann so grob über den Daumen gepeilt 10 Bit für den Zähler und
ein Latch für den Ausgang?
Das heißt ein CPLD mit um die 20-30 Makrozellen müsste ausreichend sein,
oder?
Könnt ihr mir da nochmal weiterhelfen?
Gruß Mani
Zum DDS-Filter - dessen Grenzfrequenz muss mindestens ein bisschen ueber
der hoechsten gewuenschten Frequenz liegen, maximal aber bei der halben
Samplerate (in der Praxis eher bei 40% oder darunter). Was auch heisst,
fuer 40 MHz am Ausgang brauchst Du mindestens 100 MHz Samplerate (mehr
ist besser). Viele der DDS-Chips haben aber eingebaute PLLs zur
Frequenzvervielfachung des Referenztaktes. Wenn Du langsamere Chips
nimmst als "meinen" AD9912 sind die Eval-Boards auch etwas billiger,
aber fuer ein paar Euros gibt es auch die nicht.
Wenn Du wirklich nur um ganzzahlige Verhaeltnisse teilen musst, ist
allerdings ein CPLD einfacher. Nur - diese Dinger sind dezidiert NICHT
auf niedrigen Jitter getrimmt. Die brauchen ja bloss zuverlaessig
innerhalb einer Bitperiode schalten, es ist aber (relativ) egal, wann
genau. Was sind denn eignetlich Deine genauen Anforderungen an den
Jitter? ("niedrig" heisst ganz unterschiedliche Sachen fuer
unterschiedliche Leute bzw. Anwendungen) Ansonsten sind CPLDs recht
einfach benuzten. Ich persoenlich mag Xilinx, aber so ziemlich jeder
andere Anbieter geht auch. Du bekommst CPLDs mit bis zu 72 Makrozellen
in Hobby-freundlichen MLCC-Verpackungen (die kann man noch in Sockel
reinstecken). Z.B. den XC9572, der hat 72 Zellen und laeuft auf 5V. Fuer
niedrigere Betriebsspannungen gibt es mehr Auswahl.
Wolfgang
@Wolfgang:
>Was sind denn eignetlich Deine genauen Anforderungen an den Jitter?
Aus eigenem Ergeiz soll er "so niedrig wie möglich" sein. Wenn ich mir
aber den Aufwand überlege den ich evtl. dafür betreiben muss, dann ist
ein bischen Jitter mehr vielleicht auch nicht so schlimm :-D
Mache gerade was in Richtung Kammgenerator.
Und um im Spektrum etwas sauberere Signale zu bekommen wollte ich
möglichst wenig Jitter. Aber dann sind die Spektrallinien eben etwas
breiter.
Also dann werd ich wahrscheinlich mal in Richtung CPLD gehen.
Der XC9572 ist mir von den Dimensionen fast etwas zu groß!?
Theoretisch brauche ich ja nur 5 Portpins (4xBCD, 1xCLK) und genug
Makrozellen um den Zähler bzw. Codeumsetzung BCD-->Frequenz
unterzubringen.
Ich schau mal ob ich was in Richtung TQFP44 finde.
Ist meine grobe abschätzung mit 20-30 Makrozellen so richtig oder mache
ich irgendeinen entscheidenden Denkfehler?
Gruß Mani
Ich wuerde fuer den Anfang eher etwas mehr Makrozellen nehmen - aus
Erfahrung weiss ich, man findet immer noch was, das man uebersehen hat
oder das man gerne ergaenzen moechte :-) Der 9572 ist praktisch gleich
teuer wie der 9536, hat aber doppelt so viel Platz. Gibt's beide in
denselben Gehaeusevarianten (44 pins).
Wolfgang
Danke für deine Ratschläge.
Hab ihn gerade mal gesuch und für die 5,40€ kann ich mir gleich mal ein
paar bestellen.
Jetzt noch ne ganz dumme frage, kann ich den Systemtakt auch gleich für
das runterteilen nehmen?
Gruß Mani