Moin, ich versuche verzweifelt die PLL vom Typ ADF4351 mit integriertem VCO zum Einrasten zu bewegen. Ich habe ein kleines Testboard geroutet auf dem sich die PLL, ein 12MHz Oszillator als Referenz und ein ATMEGA644 befindet. Da es mein erster Kontakt mit einer PLL ist bin ich mir bei manchen Dingen ziemlich unsicher. Mit ADsimPLL habe ich mir das Loopfilter und die Registerwerte für einen ersten Test berechnen lassen (RFout = 80MHz, Integer-N-Mode). Festgelegt habe ich die fref von 12MHz, den Bereich von 35MHz bis 2GHz sowie ein Channelspacing von 40kHz (fpfd). Ergebnis: - Integer N Mode - 12MHz Ref - fpfd = 40kHz - VCO-Divider inside Loop - Prescaler = 4/5 - Rdivder = 150 - Doubler = 0 - Divide by 2 = 1 - VCO Divider = 32 - INT-N = 500 Die Kommunikation via SPI läuft soweit. Ich kann z.B. den R-Counter auf den MUXOUT Pin legen und messe dort mit dem Oszilloskop meine 40kHz (12MHz/150/2). Wenn ich den N-Divider Output auf MUXOUT lege erhalte ich Spikes. Die Chargepump scheint auch zu arbeiten, da ich entweder mit LD polarity positive -> 0V an VTUNE erhalte oder mit der Einstellung LD polarity negative -> ca. 3V. Irgendwas scheint der PFD also zu regeln und das voll. Der VCO scheint auch zu abeiten, da das Ausgangsspektrum mehrere Peaks enthält. Betriebsspannungen sind alle vorhanden und einen Lötfehler würde ich auch ausschließen. Meine Vermutung ist, dass ich irgendwas bei den Registerwerten falschgemacht habe. Ich bin mir auch total unsicher mit diesem Prescaler. Im Datenblatt steht RFout = [INT + (FRAC/MOD)]*(fpfd/RFdivider). Bloß mit den Werten von ADsim würden dann nicht wirklich 80MHz rauskommen... Das allgemeine Modell einer INT-PLL ist mir bekannt, aber ich konnte weder im Blockschaltbild noch im Datenblatt herausfinden wie der Prescaler in das System miteinfließt. Wobei 40kHz*500*4 = 80MHz (die 4 vom 4/5 Prescaler). Es wäre toll, wenn mal jemand über die Registereinstellungen schauen könnte. Nicht das dort irgendwas schief gelaufen ist. Außerdem würde ich mich über eine Prescaler-Erklärung freuen ;-) Bzw. wie nun genau der INT-Div.-Wert von 500 zustande kommt unter den gegebenen Bedingungen. Den Schaltplan, die Registereinstellungen, sowie den Testcode (optimierungsbedürftig) habe ich angehängt. Über eure Hilfe würde ich mich freuen. Gruß Björn
Da wurde schon einiges durchgekaut: Beitrag "ADF 4350 Frequenz-Synthesizer" 1. vergiss den Prescaler, der wird intern berücksichtigt. 2. Der VCO muss mindestens mit 2.2 GHz laufen.
Es scheint nun zu laufen :-) Ich habe mir eben die Registerwerte mit der AD Eval-Board-Software berechnen lassen und im Gegensatz zu ADsimPLL errechnet diese für den N-Divider einen Wert von 2000 im divided mode bzw. 65000 für den fundamental mode. Somit ergeben sich dann folgende Werte: 0x00580005 Register R5 0x00501024 Register R4 0x00400003 Register R3 0x19259fc2 Register R2 0x00008009 Register R1 0x03e80000 Register R0 Den oben genannten Beitrag kannte ich schon. Trotzdem Danke!
Hallo Björn, Ich habe ein AdF4351 aufgebaut und versuche ihn per externen atmega168 µC über SPI zu Parametrieren. wenn das möglich wäre, dass du mir den code zukommen läßt ? Das würde mir wirklich sehr helfen. Danke
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.