HI
When configuring a clock for my AD9914 i ran into a problem with my AD9525 chip. It works, i can set and read the registers, but it ignores the REFA input. Output is visible but not the frequency i expect (3.4GHZ instead of 3.5 as configured). The PLL is shown as "not locked". My code is:
ad9525_send(0, 0b10000001); // MSB FIRST, NO STREAMING, SDO active ad9525_send(0x232, 0x01); //ioupdate //25MHz Ref: M=1, B=28, P=5, R=1 ad9525_send(0x004, 1); //reads back active registers ad9525_send(0x010, 0b00001111); //Charge pump ad9525_send(0x013, 0b11011101); //B divider ad9525_send(0x1e0, 0b00000000); //M divider ad9525_send(0x017, 0b11100011); //CP und RefA-clock (dyn) ----no Clock visible!-------- ad9525_send(0x018, 0b00010001); //REF_MON pin: RefA inv ----doesnt work either------ ad9525_send(0x019, 0b00001100); //255 PFD cycles to lock, high range lock window, normal lock detect operation ad9525_send(0x01a, 0b11110000); //Monitors und Switchover ad9525_send(0x01c, 0b00101010); // N divider on REFA on, REFB off ad9525_send(0x0f0, 0b00000111); // Ch0 LVPECL ad9525_send(0x232, 0x01); //ioupdate
ad9525_send(0, 0b10000001); // MSB FIRST, NO STREAMING, SDO active ad9525_send(0x232, 0x01); //ioupdate
//25MHz Ref: M=1, B=28, P=5, R=1 ad9525_send(0x004, 1); //reads back active registers ad9525_send(0x010, 0b00001111); //Charge pump ad9525_send(0x013, 0b11011101); //B divider ad9525_send(0x1e0, 0b00000000); //M divider
ad9525_send(0x017, 0b11100011); //CP und RefA-clock (dyn) ----no Clock visible!-------- ad9525_send(0x018, 0b00010001); //REF_MON pin: RefA inv ----doesnt work either------ ad9525_send(0x019, 0b00001100); //255 PFD cycles to lock, high range lock window, normal lock detect operation ad9525_send(0x01a, 0b11110000); //Monitors und Switchover ad9525_send(0x01c, 0b00101010); // N divider on REFA on, REFB off
ad9525_send(0x0f0, 0b00000111); // Ch0 LVPECL
ad9525_send(0x232, 0x01); //ioupdate
Hardware is wired correct, 25 MHz arrive at the chip, i measured at its pins. Can anyone see an error in my code?? Did i miss a divider or something else?
Hello Redstone,
I input your settings into the eval software, and found that you had the charge pump held static at Vcp/2. I also noticed that the feedback divider was set to 28, which would be correct for a 350 MHz VCO. I fixed it by choosing an R divider of 1 (instead of 2) and making the feedback divider 140. I hope your loop filter is still stable with 2x the loop gain.
Also, we don't normally vary the anti-backlash pulse unless we really need to. If this doesn't work, let me know what the reference monitor is indicating about the status of the input.
-Paul
The exact text in between the horizontal equal signs is what's in the eval software .STP file:
=======================
<header>product = AD9525softwareversion = 1.0.0.2</header>
<registers>Register (Hex), Value (Hex), Value (Dec)0x0, 0x00, 00x2, 0x00, 00x3, 0x00, 00x4, 0x00, 00x10, 0x0D, 130x11, 0x00, 00x12, 0x00, 00x13, 0xDD, 2210x14, 0x0C, 120x15, 0x00, 00x16, 0x00, 00x17, 0x2D, 450x18, 0x17, 230x19, 0x0C, 120x1a, 0xD0, 2080x1b, 0x00, 00x1c, 0x0A, 100x1d, 0x00, 00x1e, 0x00, 00x1f, 0x00, 00xf0, 0x00, 00xf1, 0x07, 70xf2, 0x04, 40xf3, 0x04, 40xf4, 0x04, 40xf5, 0x04, 40xf6, 0x04, 40xf7, 0x04, 40xf8, 0x10, 160xf9, 0x00, 00xfa, 0x00, 00x190, 0x00, 00x191, 0x00, 00x192, 0x00, 00x1e0, 0x00, 00x1e1, 0x00, 00x230, 0x00, 00x231, 0x00, 00x232, 0x01, 1</registers>
<frequencies>25000000;0;0</frequencies>
==========================================
Thanks for your quick answer! Too bad this eval software doesn't work without the eval board (which i dont have).
To hold the charge pump steady was the only way to get a output signal somewhere near the 3.5GHz. Good for checking the voltage and ensuring the proper work of the VCO.
Yes, for 25MHz Ref the dividers should be M=1, B=28, P=5, R=1. Seems like i missed to disable the R-divider.
I will try out this config soon, maybe somthing else went wrong, too.
Dear Redstone,
The eval software works fine without the eval board. It's how I checked the settings.