Post Go back to editing

ADF5902 cannot be locked

Hello: When I configure 18 registers on the ADF5902 board with a 50MHz crystal oscillator, the SPI data cannot be locked. The following are the register values I configured:

   parameter r0  = 32'h02000007;  // R7

   parameter r1  = 32'h0000002B;  // R11

   parameter r2  = 32'h0000000B;  // R11

   parameter r3  = 32'h0018000D;  // R13

   parameter r4  = 32'h1D32A64A;  // R10

   parameter r5  = 32'h2A20B929;  // R9

   parameter r6  = 32'h40003E88;  // R8

   parameter r7  = 32'h800FE520;  // R0

    // #10us

   parameter r8  = 32'h01800027;  // R7

   parameter r9  = 32'h00000006;  // R6

   parameter r10 = 32'h01E28005;  // R5

   parameter r11 = 32'h00000004;  // R4

   parameter r12 = 32'h01897803;  // R3

   parameter r13 = 32'h00020642;  // R2

   parameter r14 = 32'hFFF7FFE1;  // R1

   parameter r15 = 32'h800FE720;  // R0

    // #1200us

   parameter r16 = 32'h800FE560;  // R0

   parameter r17 = 32'h800FED60;  // R0

    // #500us

   parameter r18 = 32'h800FE5A0;  // R0

   parameter r19 = 32'h800FF5A0;  // R0

    // #500us

   parameter r20 = 32'h00000011;  // R17

   parameter r21 = 32'h00000010;  // R16

   parameter r22 = 32'h0000120F;  // R15

   parameter r23 = 32'h0200012F;  // R15

   parameter r24 = 32'h0400120F;  // R15

   parameter r25 = 32'h0600012F;  // R15

   parameter r26 = 32'h012038EE;  // R14

   parameter r27 = 32'h033C720E;  // R14

   parameter r28 = 32'h052038EE;  // R14

   parameter r29 = 32'h073C720E;  // R14

   parameter r30 = 32'h0018050D;  // R13

   parameter r31 = 32'h0018052D;  // R13

   parameter r32 = 32'h0018054D;  // R13

   parameter r33 = 32'h0018056D;  // R13

   parameter r34 = 32'h004F000C;  // R12

   parameter r35 = 32'h2800B929;  // R9

   parameter r36 = 32'h0100A027;  // R7

   parameter r37 = 32'h00000006;  // R6

   parameter r38 = 32'h01E28005;  // R5

   parameter r39 = 32'h00002004;  // R4

   parameter r40 = 32'h0189F803;  // R3

   parameter r41 = 32'h801FE560;  // R0

   // #100us

   parameter r42 = 32'h0000110B;  // R11

   parameter r43 = 32'h01E28005;  // R5

The center frequency is 24.125GHz,no doubler or no divider.

Can anyone help me check where the problem is, thank you.

  • R5 should be programmed to 0x01E38005 (parameter r10 in your sequence) during the VCO calibration. This is to ensure that the full frequency range (24 - 24.25 GHz) can be generated without having to recalibrate the VCO.

    Are you trying to lock the PLL to a single output frequency (24.125GHz) or trying to use the frequency ramping feature? If you are locking to a single frequency, you should omit the writes to setup the ramp (steps 22 - 34 in datasheet init sequence) and replace with a write to R13 to turn the clock divider off (0x0000000D).

    If using the frequency ramping feature, the start frequency should be programmed (parameters r37, r38 in your sequence), not the centre frequency. The ramp registers as programmed in your sequence will attempt to ramp 200MHz in frequency from 24.125 GHz to 24.325GHz, which is not possible.

  • Thanks for your answer.

    I want to lock the frequency to a certain point.

    I omitted the registers R13, R14, R15 & R16 according to the method you said, but it still cannot be locked at 24.125GHz. Below is the register data I configured. Are there any other problems?

    parameter r0  = 32'h02000007;  // R7

    parameter r1  = 32'h0000002B;  // R11

    parameter r2  = 32'h0000000B;  // R11

    // parameter r3  = 32'h0000000D;  // R13 

    parameter r3  = 32'h1D32A64A;  // R10

    parameter r4  = 32'h2A20B929;  // R9

    parameter r5  = 32'h40003E88;  // R8

    parameter r6  = 32'h800FE520;  // R0

    // #10us

    parameter r7  = 32'h01800027;  // R7

    parameter r8  = 32'h00000006;  // R6

    parameter r9 = 32'h01E38005;  // R5

    parameter r10 = 32'h00000004;  // R4

    parameter r11 = 32'h01897803;  // R3

    parameter r12 = 32'h00020642;  // R2

    parameter r13 = 32'hFFF7FFE1;  // R1

    parameter r14 = 32'h800FE720;  // R0

    // #1200us

    parameter r15 = 32'h800FE560;  // R0

    parameter r16 = 32'h800FED60;  // R0

    // #500us

    parameter r17 = 32'h800FE5A0;  // R0

    parameter r18 = 32'h800FF5A0;  // R0

    // #500us

    parameter r19 = 32'h801FE560;  // R0

    parameter r20 = 32'h00000011;  // R17

    parameter r21 = 32'h004F000C;  // R12

    parameter r22 = 32'h2800B929;  // R9

    parameter r23 = 32'h0100A027;  // R7

    parameter r24 = 32'h00000006;  // R6

    parameter r25 = 32'h01E28005;  // R5

    parameter r26 = 32'h00002004;  // R4

    parameter r27 = 32'h0189F803;  // R3

    // #100us

    parameter r28 = 32'h0000110B;  // R11

    parameter r29 = 32'h01E28005;  // R5

    Best regards

  • Apologies, I should have pointed out that you still need to write to R13 during the VCO calibration setup to enable the clock divider (step 4 in datasheet init sequence). You should omit the later writes to setup the ramp divider (steps 31 - 34 in datasheet init sequence) and replace with a write to R13 to turn the clock divider off (0x0000000D).

    Try the following sequence which should lock the device to 24.125GHz with REFIN=50MHz. TX1 output enabled, TX2 disabled.

    02000007
    0000002B
    0000000B
    0018000D
    1D32A64A
    2A20B929
    40003E88
    800FE520
    // wait 10us
    01800027
    00000006
    01E38005
    00000004
    01897803
    00020642
    FFF7FFE1
    800FE720
    // wait 1200us
    800FE560
    800FED60
    // wait 500us
    800FE5A0
    800FF5A0
    // wait 500us
    801FE560
    00000011
    0000000D
    004F000C
    2800B929
    0100A027
    00000006
    01E28005    // part should lock after this write
    00002004    // may be unnecessary
    0189F803    // may be unnecessary
    // wait 100us
    0000010B    // may be unnecessary
    

  • 特性这是我配置寄存器后在频谱分析仪上显示的图像。应该锁定,但信号质量不好,噪音太大。工作?