Forum: Mikrocontroller und Digitale Elektronik DDS - kann mir jemand helfen?


von Boris (Gast)


Lesenswert?

Hallo,

ich habe ein Verständnisproblem in Bezug auf die Verwendung von 
DDS-Bausteinen.
Vielleicht kann mir ja jemand auf die "Sprünge" helfen...

Aber erstmal ein paar Worte zu dem was ich überhaupt realisieren muss:
Ich muss ein Frequenz- (Signal-) Generator mit vier separaten Ausgängen 
bauen.
Als Ausgangssignal soll (für jeden der 4 Ausgänge) die Auswahl zwischen 
einem Cos, -Cos, Sin oder -Sin Signal sein.
Zur Ansteuerung wollte ich ein bereits vorhandenes Multifunktionsboard 
(mit Xilinx  XC2S50) benutzen.

Nun zu meiner Frage...
Da in einem DDS (so glaube ich zumindest) ein Sinus hinterlegt ist (und 
da meine benötigten Signale ja nur um ein vielfaches von pi/2 zueinander 
verschoben sind, überlege ich gerade wie ich die Verschiebung am besten 
(oder am einfachsten) realisiere.
Ist es möglich einem DDS mit zu teilen das dieser z.B. um pi/2 
verschoben anfängt? Diese Lösung erscheint mir einfacher und vor allem 
besser als die Sinussignale z.B. zu unterschiedlichen Zeiten zu starten 
um so die Verschiebung zu bekommen.

Über Antworten, Anregungen oder Kritik jeglicher Art freue ich mich, da 
ich so vielleicht ein bisschen mehr Verständnis für die Materie 
bekomme...

von .... (Gast)


Lesenswert?

schau mal bei ANALOG.COM nach. Die haben solche Bausteine. Sample ist 
möglich. Aber die ziehen richtig Strom. Kann Brandtblasen geben!

Wenn der Frequenzbereich klein ist: PWM

von Boris (Gast)


Lesenswert?

Danke für die schnelle Antwort.

PWM kommt nicht in Frage - dachte so an Frequenzen von mindestens 1 MHz 
...

von .... (Gast)


Lesenswert?

dann mußte DDS verwenden.
Schau dir in Ruhe mal die Teile (inkl. Demoboard) an. Ich bin sehr 
schnell damit klar gekommen. Seriell bekommt man die Dinger schnell zum 
laufen!

Und beachte, das die Teile eine Stromquellen sind, soll heißen: Am 
Ausgang muß der richtige Widerstand vorhanden sein!

von Helmut L. (helmi1)


Lesenswert?

Ich habe schon mal so einen Funktionsgenerator gemacht um Sin/Cos Geber 
zu simulieren. Dazu habe ich einen AD9850 genommen von Analog. Da 
kannste du die Frequenz und die Phasenlage programmieren. Wenn du nun 
ein Sin u. ein Cos Signal brauchst nimmst du 2 von diesen DDS Bausteinen 
schreibst das Frequenzwort und die Phasenlage rein. Dann gibt es einens 
separaten Eingang womit die Bausteine alle gleichzeitig geladen werden 
so das die Phasenlage untereinander stimmt. Es gibt auch eine 
Applikation bei Analog dazu.

Gruss Helmi

von 6645 (Gast)


Lesenswert?

Bei mehr als 2 synchronen Kanaelen muss man sich so'n Ding selbst bauen. 
Sollt aber nicht so schwer sein. Ein FPGA und 4 DAC dran

von Gast (Gast)


Lesenswert?

3x Phasenschieber AD8333 und den oben genannten DDS IC
die Methode von 6645 wird aber, denke ich, billiger...

von 6645 (Gast)


Lesenswert?

Phasenschieber ? aber nur wenn die Ansprueche an die Phase eher 
bescheiden sind. Einen Phasenschieber muss man fuer jede Frequenz neu 
abgleichen.

von mandrake (Gast)


Lesenswert?

Wie wäre es mit ein wenig OP-Schaltungstechnik:

Aus deinem Sinus kannst du mit einem nachgeschalteten invertierenden OP 
einen -Sinus machen. Selbiges gilt auch für den Cosinus.

Aus einem Sinus kann man durch Differenzieren einen Cosinus gewinnen 
also hier einen Differenzierer mit OP aufbauen.

Das sind alles Standardschaltungen, die evtl noch ein bisschen angepasst 
werden müssen.

Gruß

Mandrake

von 6645 (Gast)


Lesenswert?

Differenzieren ? Die Ableitung von sin(wt) ist w*cos(wt), dh die 
Amplitude wird frequenzabhaengig. Und dann noch ein gesteuertes 
Koeffizientenglied hintendran ?

von Gast (Gast)


Lesenswert?

@6645
erst Datenblatt vom AD8333 lesen und dann nochmal darüber nachdenken ob 
die Phasengenauigkeit von +-1deg (DC...50MHz) vielleicht nicht doch 
reicht...

von 6645 (Gast)


Lesenswert?

Ja, das ist die Frage. Reicht eine Phasengenauigkeit von 1 Grad ? Fuer 
SSB zB ist die Phase kritisch, damit bestimmt man dann die Traeger- und 
Seitenbandunterdrueckung. Ein DDS, resp nachgebauter DDS, hat da etwas 
mehr Moeglichkeiten...

von Boris (Gast)


Lesenswert?

Danke für eure zahlreichen Antworten!!!

Ich bin ein sehr großen Schritt weiter gekommen. (-> jetzt weiß ich das 
man die Phasenlage selbst bestimmen kann...)

Ein Frage habe ich da aber noch (-> in Bezug auf die Antwort von Helmut 
Lenzen: "Wenn du nun ein Sin u. ein Cos Signal brauchst nimmst du 2 von 
diesen DDS Bausteinen schreibst das Frequenzwort und die Phasenlage 
rein. Dann gibt es eines separaten Eingang womit die Bausteine alle 
gleichzeitig geladen werden so das die Phasenlage untereinander 
stimmt.")

Kann ich 4 DDS Bausteine auf diese weise synchronisieren?

Meine Lösung muss nicht unbedingt billig sein - ich lege mehr wert auf 
die Qualität ! ! !

von Helmut L. (helmi1)


Lesenswert?

Ja kannst du so machen.
In alle 4 Bausteine das gleiche Frequenzwort aber unterschiedliche 
Phasenlage. Dann den Pin FQ_UD kurz betaetigen damit das Frequenzwort 
aktualisiert wird. Die FQ_UD Eingaenge werden von allen DDS IC's 
zusammengefasst.

Wie das genau gemacht wird steht in der folgenden App-Note von Analog 
Devices

AN-587: Synchronizing Multiple AD9850/AD9851 DDS-Based Synthesizers 
(pdf, 119,446 bytes)

Gruss Helmi

von Lupin (Gast)


Lesenswert?

@6645:

Dafür brauchst nichtmal einen FPGA.

Für feste Frequenz reicht ein zähler der mit der gewünschten Frequenz 
getaktet wird, der steuert den Addressbus zweier EEPROMs die Sin und Cos 
tabellen beinhalten, der Datenbus steuert dann einen AD Wandler.

Für variable frequenz bräuchte man dann einen Addierer.

Gibt es eigentlich mehrbittige (8 oder mindestens 4 bit, kaskadierbar) 
Addierer in 74xx logik?

von Lupin (Gast)


Lesenswert?

Die beiden Sin und Cos Signale müsste man dann noch invertieren aber das 
sollte ja kein problem sein

von Lupin (Gast)


Lesenswert?

okay hab selber gerade geschaut gibt wohl nur den 7483 bzw 4 bit 
addierer... müsste man wohl ein CPLD nehmen wenn man es kompakt haben 
will.

von eProfi (Gast)


Lesenswert?

Es gibt doch auch DDSen von AD, die Sin- und Cos- Ausgang haben (für die 
"modernen" Modulationsarten.

Nebenbei: darf man fragen, was es wird? Ist oft hilfreich, um Tips geben 
zu können.
Ist die Frequenz konstant?
Ist Jitter ein Problem?
Die ANs von AD sind sehr ausführlich und gut! Man muss sich halt 
durchkämpfen. Notfalls mehrmals (ich habe beim ersten Mal (schon sehr 
lange her) bei weitem nicht verstanden, um was es geht).

von Boris (Gast)


Lesenswert?

@eProfi: Die Frequenzen sind nicht fest.

Ich möchte mir 4 Lichtquellen (mit IR-LEDs oder Laserdioden) erzeugen 
welche in ihrer Helligkeit moduliert werden können (Sin, Cos, -Sin, -Cos 
(relativ zueinander)). (Einen Offset wollte ich über eine separate 
Schaltung erzeugen.) Ich möchte über eine Eingabe eine Frequenz vorgeben 
und zusätzlich jede einzelne Lichtquelle in ihrer Phasenlage(ob Sin, 
Cos,...), Amplitude und ihrem Gleichlichtanteil (Offset) ändern können 
(deshalb der Xilinx - für diesen habe ich schon eine 
Entwicklungsumgebung).

-> Jitter ist ein Problem!
-> ich brauche eine sehr genaue Phase!

[Alternativ arbeite ich mit nur einer Lichtquelle, kopple mir das Licht 
in Fasern verschiedener Länge (um die Phaselage zu beeinflussen). Dann 
bräuchte ich aber viele verschiedene Fasern (für verschieden ausgewählte 
Frequenzen).
Diese Lösung ist mir aber zu teuer und ich kann nur feste Frequenzen 
wählen.]

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.