Forum: Mikrocontroller und Digitale Elektronik DDS mit Sinus und Kosinus Ausgang


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Andreas (Gast)


Lesenswert?

Hi,
kennt jemand DDS-ICs mit einem Kosinus und Sinus (Quadratur) – Ausgang?
Ich habe nur den AD9852 gefunden – ist aber mit 80 Pins etwas 
überdimensioniert.
Man könnte auch einen Single-DDS nehmen + frequenzunabhängigen 
Phasenschieber; gibt es so was überhaupt?

Gruß
Andreas

von peter-neu-ulm (Gast)


Lesenswert?

ein altes DDS-IC, AD8007 hatte diese Ausgänge.

Bei den Nachfolgern sollte man in den Datenblättern nachsuchen, es gibt 
meines Wissens die Möglichkeit, zwei DDS-IC's mit einem Offset von 90 
Grad zu synchronisieren.

von Helmut L. (helmi1)


Lesenswert?

>Man könnte auch einen Single-DDS nehmen + frequenzunabhängigen
>Phasenschieber; gibt es so was überhaupt?

Wenn du nur Rechteck haben willst gehts das mit 2 Flipflops. Dann hast 
du aber nur noch ein 1/4 deiner Ausgangsfrequenz.

Du koenntes eventuell einen 2. DDS Chip nehmen und mit ihm eine 90 Grad 
Phasenverschoben Spannung erzeugen.

Mit dem AD9850 habe ich sowas schon mal gemacht. Frequenzwort laden und 
dann das Update kommando an beide gleichzeitig ausgeben. Schon laufen 
die beiden synchron los. Die Phasenverschiebung kannst du dann digital 
einstellen in 12.5 Grad schritten.

Analog ist das ueber einen grossen Frequenzbereich schwierig zu machen.

Gruss Helmi

von DDS_FREAK (Gast)


Lesenswert?

Hallo,
Hab da mal ne Frage zur Phasenverschiebung bei DDS Chips wie AD9833/35 .
Datenblatt sagt aus, daß sowas möglich ist.
Nur wie wird nicht gesagt ( Beispiel mit Werten für 90grad zB )
Habe alle möglichen Applikationen durchforstet bin jedoch nicht fündig 
geworden. Einzige Quelle ist PC Programm für das Testboard wo man Werte
einstellen kann. Nicht jedoch in Verbindung mit AVR zB ( möglichst 
Assembler). Ziel ist es über Poti-AVR-DDS die Phasenlage kontinuierlich 
zu verändern.
Danke schonmal für Antworten

von Zorc (Gast)


Lesenswert?

Phasenverschiebung beim DDS ? Dann hast aber gar nichts verstanden. Der 
Phasenraum deckt 2*pi ab. darin ein Offset, zB Phasenraum/10 sind 36 
Grad.

von Helmut L. (helmi1)


Lesenswert?

Er meint die Phasenverschiebung zwischen zwei DDS Chips. Und die kann 
man sehr wohl einstellen. Dazu muessen die beiden an der gleichen Clock 
betrieben werden und synchron gestartet werden. Dann kann man einen 
Versatz in einem der beiden DDS Chip programieren. Allerdings ist die 
Aufloesung beim AD9850 auf 11.25 Grad beschraenkt.

Gruss Helmi

von DDS_FREAK (Gast)


Lesenswert?

@helmi
Genau das meinte ich. Ein DDS läuft konstant mit Phase 0 der andere 
varíabel. Werden die beiden Ausgangssignale verknüpft (gemischt) sieht 
man am Oszi wie sich die Amplituden überlagern.
Formuliere meine Frage also mal anders.
Gem Datenblatt AD9833 zB ist das Phasenregister 12 bit breit.
Es entspricht nach meiner Auffassung dann einem umsetzbaren Wertebereich 
von 0 bis 2pi gem Schaubild auf Seite 8 des Datenblattes.
Ist somit die Auflösung immer konstant oder von MCLCK abhängig ?
Die angeführten Beispiele im Datenblatt betreffen leider nur das 
Einschreiben der Frequenzworte nicht jedoch eine konkrete 
Phasenverschiebung.

DDS_FREAK

von Helmut L. (helmi1)


Lesenswert?

Das sollte mit dem AD9833 auch gehen. Du must nur ein paar Tricks 
anwenden damit die beiden DDS Chips syncron laufen.

1. Es muss eine gemeinsame Clock vorhanden sein. Alos ide beiden MCLK 
Eingaenge verbinden.

2. Es muss sichergestellt werden das beide gleichzeitig ihr Datenwort 
bekommen.
Das kannst du dadurch erreichen das der FSYNC Eingang der beiden DDS 
zusammen betaetigt werden.

3. Jetzt musst du durch ein geeignetes Frequenzwort erreichen das der 
Phasenakkumulator in beiden geresetet wird. Jetzt sollten die beiden 
Syncron laufen.

4. Ab jetzt kannst du jedem sein eignes Frequenzwort b.z.w. Phasenoffset 
zukommen lassen.

Damit du die beiden jedem sein eigenes Datenwort zukommen lassen kannst 
must du die SDATA Eingaenge separat bedienen koennen. Also gleichzeitig 
mit dem SCLK impuls fuer jedem der beiden ein eigenes Datenbit ausgeben. 
Die umschaltung mit dem FSYNC Signal hast du ja in diesem Fall nicht.

Damit solltes du es eigentlich hinbekommen die Phasenlage der beiden DDS 
Chips zueinander einstellen zu koennen.

Gruss Helmi

von DDS_FREAK (Gast)


Lesenswert?

Danke Helmi fürs erste
Habe irgendwo einen Thread oder Applikation gelesen, wo mit zwei DDS 
gearbeitet wird, denke es muß ähnlich ablaufen.
Ich hatte vor den ersten zu programmieren sowie zu starten, dann den 
zweiten zu programmieren jedoch  erst zu starten wenn ein Nulldetektor
den Beginn einer Phase meldet am Ausgang des ersten DDS . Möglich daß 
man dabei Befehlslaufzeiten mit einrechnen muß. Da die Frequenz jedoch 
konstant ist,ist Zeitspanne 2*pi bekannt. Beide DDS sollen nur den 
Bereich bis ca 50 Khz abdecken. Welche MLCK empfiehlt sich da ?
Mal ne ganz dumme Frage:
 Gibt es einfachere Wege die Frequenzworte zu ermitteln ? evtl PC 
Programm  wo nur  Fsync und Sollfrequenz eingegeben wird ?
 Übliche DDS Applikationen gibt es anscheinend nur für HF Anwendungen 
was man so liest. Arbeite mit STK 500/ Studio 4, also nur Assembler ( da 
fühl ich mich noch sicher ;) ,alles andere später )
DDS_FREAK

von Helmut L. (helmi1)


Lesenswert?

>Ich hatte vor den ersten zu programmieren sowie zu starten, dann den
>zweiten zu programmieren jedoch  erst zu starten wenn ein Nulldetektor
>den Beginn einer Phase meldet am Ausgang des ersten DDS .

Das brauchst du nicht. Du brauchst bloss ein Reset-Commando an beide zu 
geben. Danach sind die beiden Phasenakkus in gleicher Phasenlage.
Jetzt kannst du in beiden die gleiche Frequenz aber eine 
unterschiedliche Phasenlage programmieren. Danach laufen beide synchron 
zueinander.
Bediengung dafuer ist nur das die beiden Fsync leitung gleichzeitig 
bediend werden.

von DDS_FREAK (Gast)


Lesenswert?

Hi Helmi,
Schon verstanden, doch was heißt bei Resetfunktion der Begriff 
"midscale" definitiv?
Die Register Frequenz und Phasenlage werden ja nicht verändert laut 
Tabelle IX.
Stehe im übrigen noch vor der Wahl welcher DDS der geeigenete wäre.
Habe AD 9850,9835 und 9833 vorliegen. Tendiere allein schon wegen der 
Löterei ;) zum 9833. Werde heute mal verschiedene Quarzoszillator-
frequenzen als MCLK testen. Bei den Fummeldingern spielt das Printlayout
ja auch eine gewisse Rolle. Hab mir kleine SMD-DIL Platinchen gemacht 
für das Breadboard, naja mal sehen ......
Ist es ratsam zwischen SPI Ausgänge AVR und DDS Chip Widerstände 
einzubauen? Hab irgendwo hier gelesen, daß ohne die der DDS Probleme 
machen könnte. Hab keine Lust mir auf diese Weise die teueren 9850 
abzuschießen. Hast Du da schon Erfahrungen gemacht helmi ?
schönes WE
DDS_FREAK

von Helmut L. (helmi1)


Lesenswert?

>Ist es ratsam zwischen SPI Ausgänge AVR und DDS Chip Widerstände
>einzubauen? Hab irgendwo hier gelesen, daß ohne die der DDS Probleme
>machen könnte. Hab keine Lust mir auf diese Weise die teueren 9850
>abzuschießen. Hast Du da schon Erfahrungen gemacht helmi ?

Wenn beide aus der gleichen +5V Quelle versorgt werden passiert da 
nichts.
Die Widerstaende dienen in erster Linie zum bedaempfen der Leitungen. 
Wenn die Verbindung zwischen AVR und DDS etwas laenger ist koennen sich 
Reflektionen auf den Leitungen zeigen. Da der DDS Chip sehr schnell ist 
koennen sich dann schon mal Signalverfaelschungen einstellen.Folge 
daraus die Ausgangsfrequenz stimmt nicht. Diese Widerstaende bedaempfen 
dies und liegen so zwischen 22 Ohm und 100 OHm. Ich selber habe schon 
mal den AD9850 eingesetzt allerdings im Parallelmode. Die 
Ausgangsfrequenz war bei mir  zwischen 20..30MHz. Eingangstakt 96Mhz. 
War alles kein Problem.

>Stehe im übrigen noch vor der Wahl welcher DDS der geeigenete wäre.
>Habe AD 9850,9835 und 9833 vorliegen.

Ich selber tendiere zum AD9850. Mit dem habe ich schon mal einen 
Quadraturgenerator gebaut.

>Bei den Fummeldingern spielt das Printlayout ja auch eine gewisse Rolle.

Ganz so schlimm ist es nicht. Bei deinen 50KHz sollte das alles kein 
Problem sein. Selbst bei meinen 30MHz war das kein Problem.

>Schon verstanden, doch was heißt bei Resetfunktion der Begriff
>"midscale" definitiv?

Damit meint AD das wenn du ein Reset-Commando gibts danach der Ausgang 
auf halber Versorgungsspannung liegt.

Gruss Helmi

von DDS_FREAK (Gast)


Lesenswert?

@helmi
Okay dann ist das mit midscale klar. Habe eh am Ausgang einen OP der LT 
Serie vorgesehen und AGND strikt von DGND getrennt, Sternpunkt im NT.
Werde dann mal um die Software die grauen Zellen bewegen.
schönes WE
DDS_FREAK

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.