Forum: Mikrocontroller und Digitale Elektronik µC/P/SoC für parallel Kommunikation mit AD9852 DDS-Chip


von Dominik V. (dominikv)


Lesenswert?

Liebes Mikrocontroller Forum,

Ich suche nach Hilfe/Inspiration für eine möglichst schnelle Ansteuerung 
eines AD9852. Im Datenblatt wird 10MHz für SPI und 100MHz für parallele 
Ansteuerung spezifiziert. Im parallelen Fall werden 8Bit auf 8 Leitungen 
für die Daten und 6bit auf 6 Leitungen für die Adresse übertragen.
Nun suche ich nach einer möglichst einfachen Lösung den AD9852 per 
µC/µP/SoC anzusteuern. Eine erste Recherche ergab, dass das Beagle Board 
im SoC zwei realtime µC mit 200MHz implementiert, diese allerdings nicht 
genügend Leitungen haben die nach außen geführt haben.
Ich würde mich sehr über Anrgegungen von euch freuen.

Vielen Dank euch,

Dominik

von Karl H. (kbuchegg)


Lesenswert?

Verzeih meine Neugier.
Aber wozu benötigt man eine Cosinus-Schwingung, deren Parameter 
Frequenz/Phase/Amplitude man pro Sekunde mehr als 1 Million mal 
verändern muss. Und ist da dann ein DDS-Baustein überhaupt noch das 
richtige?

: Wiederhergestellt durch User
von Dominik V. (dominikv)


Lesenswert?

Hallo Karl-Heinz,

ich bin dabein ein Phasen/Freqeunz-Lock zu implementieren. Da das 
Frequenzregister des AD9852 48bit breit ist sind 6 Zyklen für ein Update 
nötig daher eine 6x kleinere Updaterate. Für eine entsprechend große 
Regelbandbreite wäre es schön ein paar Millionen Updates in der Sekunde 
zu haben.
Aktuell ist dieses Lock analog mithilfe eines VCOs implementiert. Für 
den VCO (50-200MHz betrieben bei 110MHz) besteht der Nachteil, dass 
dieser eine sehr große Sensitivität hat und es sich nur um sehr kleine 
Phasenschübe handelt (mx 10x 2pi) die herausgeregelt werden sollen, was 
bedeutet dass kleinste Spannungsschwankungen schon für ein großes 
Rauschen sorgen.
Daher war mein Gedanke mit einer bereits sehr stabilen rf-Quelle zu 
beginnen und diese zu regeln.
Ich bin offen für Mögliche Alternativen zu DDS systemen. Hast du eine 
bestimmte Idee?

viele Grüße,

Dominik

von oohh (Gast)


Lesenswert?

Die anwendung macht sinn. Ich wuerd's mit einem FPGA ansteuern, und den 
algorithmus ins FPGA giessen.

von W.S. (Gast)


Lesenswert?

Aber doch nicht SO.

Erstmal eines: Was bittesehr ist ein " Phasen/Freqeunz-Lock " ? Meinst 
du eine PLL? Vermutlich.  Phasen/Freqeunz-Lock klingt bloß dramatischer.

Also erstmal eines: Mit einer digitalen Nachregelung wirst du niemals 
(NIE, NIE NIE!) auch nur annähernd so gut wie mit einer analogen Lösung 
sein.

Wenn es denn eine feinfühlige Phasenregelung sein soll, dann nimm einen 
VCXO, treibe damit den DDS IC und mach deine PLL-Regelschleife analog. 
PLL-Eingänge = Empfangssignal und tiefpassgefilterter DDS-Ausgang, 
PLL-Nachstimm-Ausgang via Filter zum VCXO. Das ist feinfühlig und man 
kann sogar per DDS die Frequenz ganz gut voreinstellen - ist ja auch 
nötig, denn ein VCXO hat nur einen recht kleinen Abstimmbereich.

Ich vermute mal, daß du damit ein PSK Signal demodulieren willst. Also 
schreib lieber direkt, das du machen willst/sollst und nicht so eine 
theoretisierende Umschreibung.

W.S.

von Dominik V. (dominikv)


Lesenswert?

Lieber W.S.,

vielen Dank für deinen Vorschlag, das hört sich nach einer Vernünftigen 
Lösung an. Ich habe auch schon einmal über eine Lösung per vcxo 
nachgedacht, hatte sie dann aber verworfen weil ich mich nicht sehr viel 
darüber weis. Meine Zweifel waren vor allem, ob die tuning Range 
tatsächlich reicht, dazu muss ich noch eine Rechnung/Messung 
durchführen. Außerdem müsste ich mir noch überlegen ob die 
Regelbandbreite durch den VCXO beschränkt werden könnte, da es sich ja 
um einen Oszillator mit großem Q-Faktor handelt. Bis jetzt habe ich erst 
ein Datenblatt gefunden das eine Modulationbandbreite angibt und diese 
lediglich mit >10kHz angibt, was in meinem Fall zu wenig ist.
Was das Rennen zwischen Digital und Analog angeht muss ich dir recht 
geben. Auch meine Erfahrung zeigt, dass analog immer die bessere Lösung 
ist.
Mein Gedanke zu dem DDS ist lediglich folgender: Wenn im Datenblatt 
100MHz Übertragungsrate angegeben ist was zu einer Updaterate von ~17MHz 
führen sollte, was würde dann dagegensprechen letztendlich eine 
Regelbandbreite von >1MHz zu erreichen?
Was die Terminologie angeht: Ich habe den Begriff PLL vermieden weil es 
sich nicht um den klassischen Fall eines PLLs handelt, da auf der 
Regelstrecke nicht nur Phasenrauschen hinzukommt, sondern auch die 
Frequenz (optisch) verdoppelt wird - du hast aber recht, damit ist es 
noch immer ein PLL.
Zu dem Verwendungszweck: es geht darum die Phase von Laserstrahlen zu 
stabilisieren.
Ich würde mich sehr über einen Vorschlag für einen geeigneten VCXO 
freuen!

von Dominik V. (dominikv)


Lesenswert?

oohh schrieb:
> Die anwendung macht sinn. Ich wuerd's mit einem FPGA ansteuern, und den
> algorithmus ins FPGA giessen.

Bei FPGA muss man sich doch echt sehr viel Mühe geben um sehr große 
Geschwindigkeiten hinzubekommen, oder? Da die Logik in dem Fall eine 
sehr einfache ist, möglicherweise nur eine Multiplikation, war ich davon 
ausgegangen, dass es mit einem µC/µP/SoC einfacher gehen sollte, war mir 
aber nicht dessen bewusst, dass obwohl solche 
Hochgeschwindigkeitsschnittstellen für PCs (wie z.B. fast ethernet) kein 
Problem sind es doch keine direkten und parallelen Implementierungen in 
diesem Bereich zu geben scheint.

von Achim S. (Gast)


Lesenswert?

Dominik Vogel schrieb:
> Wenn im Datenblatt
> 100MHz Übertragungsrate angegeben ist was zu einer Updaterate von ~17MHz
> führen sollte,

wenn du regeln willst zählt nicht nur die Updaterate sondern auch das 
Pipeline-Delay. Selbst wenn du inv-sinc-Filter und Amplitudeneinstellung 
bypasst dauert es nach meinem Verständnis mindestens 37 Sysclk-Zyklen, 
bis der neu geschriebene Wert am Ausgang des Bausteins wirksam wird. Das 
bremst deine Regelbandbreite etwas aus.

Dominik Vogel schrieb:
> Bei FPGA muss man sich doch echt sehr viel Mühe geben um sehr große
> Geschwindigkeiten hinzubekommen, oder? Da die Logik in dem Fall eine
> sehr einfache ist, möglicherweise nur eine Multiplikation, war ich davon
> ausgegangen, dass es mit einem µC/µP/SoC einfacher gehen sollte

wenn es nur darum geht, einen (parallelen) Wert einzulesen, zu 
multiplizieren und ihn dann byteweise wieder auszugeben, kannst du das 
mit einem FPGA sehr schnell erledigen. Die von dir angedachten 
Frequenzen wären kein großes Problem und die Latenzen (die für deine 
Regelung wichtig sind) wären vergleichsweise gering. Die generelle 
Einarbeitung in FPGAs ist aber tatsächlich aufwändiger als die in viele 
µCs.

von Dominik V. (dominikv)


Lesenswert?

Vielen Dank Achim für die wertvollen Informationen. Insbesondere ist es 
sehr gut zu Wissen, dass ich mit 37 Syszyklen delay rechnen muss.
Ich sehe auch ein dass ein FPGA wahrscheinlich die beste Lösung wäre. 
Dennoch würde ich gerne in die Runde fragen welchen SoC oder µC ihr 
kennt, der die größt mögliche GPIO Geschwindigkeit erreicht und die 
Anforderungen an die Anzahl der Leitungen erfüllt.

viele Grüße,

Dominik

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.