Hallo, ich stehe vor folgendem Problem: Zwei AD9851 (ähnlich AD9850, aber mit PLL) müssen synchronisiert werden. Dabei soll die Phasenverschiebung zwischen beiden Schaltkreisen einstellbar sein. Die Schaltung ist entsprechend "AN-587: Synchronizing Multiple AD9850/AD9851 DDS-Based Synthesizers" aufgebaut, jedoch mit dem Unterschied dass ich die Generatoren seriell anspreche. Beide laufen am gleichen Quarzoszillator mit 30MHz. Die Inbetriebnahme der Genratoren funktioniert soweit auch, ich kann die gewünschte Frequenz einstellen. Dabei laufen die Frequenzen (sofern gleich eingestellt) bei beiden DDS nicht auseinander. Es ist also davon auszugehen dass beide ICs wirklich synchron sind. Ok, soweit bisher kein Problem. PROBLEM: Nach jedem Reset des Controllers ist die konstante Phasenverschiebung zwischen beiden DDS-Chips nahezu zufällig. (Beide sind auf Phase=0 programmiert). Meine Fragen: - hat jemand sowas schonmal gemacht und kann aus eigener Erfahrung berichten wo evtl. Stolpersteine zu finden sind? - Ist die Synchronisation einfacher zu machen, wenn ich die ICs parallel ansprech? Gruß Christian
Also ich habe schon mal 2 AD9850 DDS Syncronisiert. Reset allein genuegt nicht damit wird nur der Phasenakku zurueckgesetzt. Du must nach dem uebertragen der Daten den PIN FQ_UD bedienen damit die Daten uebernommen werden . Damit solltes du eigentlich den Phasenversatz hinbekommen und die beiden syncron laufen. Bei mir war das damit kein Problem. Gruss Helmi
Hallo, also wie ich das im Moment mach: (wie im Datenblatt zur AD9851 gezeigt ist, sind D0..D2 fest verdrahtet auf GND bzw. VCC) 1. Impuls Reset 2. Impuls W_CLK (um festverdrahtetes Wort zu übernehmen --> serieller Modus..) 3. Impuls Frequency_Update das wäre erstmal die Initialisierung dann werden die 40Bit vom ersten DDS reingeschoben (jeweils mit W_CLK), danach die zweiten 40Bit von zweiten DDS. Danach dann Impuls Frequency_Update. Nach meinem Verständnis sollten die Chips nach dem Frequency_Update dann losrennen mit der eingestellten Frequenz und Phasenlage. Ein paar Fragen an Dich: - Hast du die Chips parallel oder seriell angesteuert? - meine zweite Frage hat sich eigentlich schon geklärt - der AD9850 hat ja keine PLL. Wenn ich meine AD9851 ohne PLL betreib (dann eben nur mit 1/6 der Frequenz), ändert sich aber leider auch nix am Verhalten. Gruß Christian
Ich hatte die beiden parallel angesteuert. Die PLL sollte eigentlich da auch nichts aus machen. Der Name sagt es schon das das mit Takt verriegelt ist. Das mit dem FQ_UD Pin wuerde ich beim AD9851 genauso sehen. Beim AD9850 hat es wunderbar geklappt. Das ganze bei 90 Grad Phasenversatzt gab immer einen schoenen runden Kreis auf dem Scope. Frage hast du auch das D-Flipflop eingebaut in deiner Schaltung wie in Figure 3 beschrieben ? http://www.analog.com/static/imported-files/application_notes/599711852800924681833359689AN-587.pdf Gruss Helmi
Ja, das FF ist drin 74HC74. Bei der PLL wäre das einzige Problem, dass aus einem externen Takt 6 interne werden. Da könnte es zu einem Versatz kommen ganz einfach weil die beiden PLLs wahrscheinlich aufgrund von Toleranzen unterschiedlich schnell einrasten. Allerdings funktionierts bei mir ja auch nicht wenn ich die PLL nicht verwende. Ich glaub ich werds erstmal auf parallel Umlöten. Ich danke Dir für Deine Hilfe :-)
Zum FF nimm einen 74AC74. HC74 koennte zu langsam sein. Zur PLL: Im Datenblatt steht man soll zu erst ein Tunningword von 0 einstellen. Das sperrt den Phaseaccu. Dann 100uS abwarten bis die PLL eingeschwungen ist. Dann erst die eigentliche Frequenz und Phase ausgeben.
Was ich am seriellen Modus nicht ganz verstehe: 1. Reset (ok!) 2. W0 = xxxxx011 anlegen (um in seriellen Modus zu schalten; ist fest verdrahtet, ok!) 3. W_CLK um dieses Wort in Chip zu übernehmen (ok!) 4. FQ_UD (um den Wechsel in den seriellen Modus auszuführen.. aber startet da nicht schon der Phasen-Akku, den ich nur mittels Reset (--> wieder parallel!) zurücksetzen kann?) 5. warten bis PLL eingeschwungen (ok!) 6. das eigentliche Frequenzwort programmieren (mit W_CLK natürlich) (ok!) 7. FQ_UD (ok!) wenn ich 4. weglass und bei 6. Frequenz=0, Phase=0 programmier, funktioniert es nicht, nach 7. die eigentliche Frequenz einzustellen
Dann wuerde er Starten ist schon richtig. So wenn du dann jetzt eine Frequenz von 0 HZ einstellst dann laeuft der Akku doch leer nach einiger Zeit ? Dann sollten in beiden Akkus doch 0 drinstehen ? Dann warten bis PLL eingeschwungen ist. Dann Frequenz einstellen.
Wie meinst Du das dass der Akku leer laufen würde? Ich würde mir eher vorstellen dass der Akku eben nicht weiterzählt, das Ausgangssignal also Konstant ist. Wie ich das aufgefasst hatte konnte man nur mit Reset den Phasenakkumulator wieder auf Null bringen.
Ok Stimmt war ein Denkfehler von mir. Hast du das auch schon ausprobiert was auf Seite 5 steht. Das man nach dem Reset erst einmal das ganze Wort von 40 Bit uebertraegt und erst dann FQ_UD setzt ?
Danke, jetzt hab ichs verstanden. Das beschriebene - also im parallelen Modus erstmal Frequenz und Phase auf Null programmieren - kann ich nicht tun. Bei mir ist D0/1/2 fest verdrahtet per Pullup/Pulldown. Es ist also nicht möglich, nur mithilfe des seriellen Modes die beiden Chips definiert zu synchronisieren (sie laufen zwar mit der selben Frequenz, aber eben zufällig verschoben!). Ich werd also kaum herum kommen eine neue Platine zu basteln. Glücklicherweise sind die Chips selbst auf einer kleinen Adapterplatine. Das hält den Aufwand in überschaubaren Grenzen. Evtl. könnte man darüber nachdenken D0 steuerbar zu machen, so dass die Initialisierung im parallelen Modus erfolgt (dort wird ja nur mit D0 und D7 gewackelt..) und damit Portpins einzusparen. Danke für Deine Gedult, nun hab ichs endlich verstanden :-) :-) Die Änderungen werden etwas Zeit benötigen. Danach meld ich mich nochmal (evtl. hat ja auch zukünftig mal wieder jemand dieses Problem).
So, die Schaltung ist umgelötet auf parallelen Modus --- und es funktioniert problemlos! :-) Auch die intere PLL macht bei der Synchronisation keine Probleme. Jetzt muss nur noch das Programm bisschen verhübscht werden und das Timing von schnarch-lahm auf mittelträge umgestellt werden ;-) Gruß Christian
Na da sieht man das man dem Datenblatt auch nicht ganz vertrauen darf. An für sich ist das Timing des DDS Chip schnell genug. Du must nur die Zeit für das Einschwingen der PLL einhalten. Gruss Helmi
Hi. Habe gerade das gleiche Problem mit dem AD9851... Hast du es seriel/überhaupt Syncronisiert hinbekommen? Danke im Voraus...
Hallo seriell konnte ich zwar die gleiche Frequenz programmieren, aber die beiden Sinüse waren dabei zufällig zueinander verschoben, meist etwa im Bereich +-45Grad, manchmal auch mehr. Bei der seriellen Initialisierung kannst du die Schrittweite nicht sofort auf Null stellen. Somit beginnt der Phasenakku zu laufen sobald die PLL eingerastet ist. Da das unterschiedlich lang dauert ergibt sich eine mehr oder weniger zufällige Phasenverschiebung. Soweit zumindest meine Theorie. Warum das aber auch bei abgeschalteter PLL passiert hab ich nicht ganz verstanden. Kurzum, ich hab einige Tage dabei verschwendet das seriell hinzukriegen. Paralleler Modus und es ging sofort (naja nachdem ich festgestellt hatte dass MSB und LSB bei mir vertauscht war g). Falls Du das doch noch seriell irgendwie hinkriegen solltest wäre ich sehr an einer Rückmeldung interessiert :-) Gruß und viel Erfolg, Christian
Habs gerade hinbekommen. Ohne umweg über Parallel mode geht es wohl nicht. Ich hab statt den PullUp Widerstand eine Leitung des Kontrollers spendiert, so dass ich im Parallel mode nicht nur 00000011 sondern auch 00000000 senden kann. Die init Sequenz: 1. RESET 2. Sende 00000011 00000000 00000000 00000000 00000000 an alle DDS. 3. FQ_UD und 100us warten. 4. Ab hier geht es seriell weiter... Herzlichen Dank an dieser Stelle. Hatte zwar schon die Vermuttung. Den Anstoss den Umbau zu wagen, verdanke ich deinen Ausführungen. Gregor
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.