www.mikrocontroller.net

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


Autor: Boris (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: .... (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Boris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die schnelle Antwort.

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

Autor: .... (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Helmut Lenzen (helmi1)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: 6645 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Gast (Gast)
Datum:

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

Autor: 6645 (Gast)
Datum:

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

Autor: mandrake (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: 6645 (Gast)
Datum:

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

Autor: Gast (Gast)
Datum:

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

Autor: 6645 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Boris (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ! ! !

Autor: Helmut Lenzen (helmi1)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Lupin (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Lupin (Gast)
Datum:

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

Autor: Lupin (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: eProfi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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).

Autor: Boris (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.]

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.