This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] LMX2820:锁定、然后丢失锁定

Guru**** 2397345 points
Other Parts Discussed in Thread: LMX2820

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/clock-timing-group/clock-and-timing/f/clock-timing-forum/1164675/lmx2820-locked-and-then-lose-the-lock

器件型号:LMX2820
主题中讨论的其他器件: 4430

大家好、

我有一位客户遇到了有关  LMX2820的一些问题。 请提供一些故障排除建议

  当他使用 LMX2820即时校准时  、他发现当 facl_en=0时、 器件会  再次失去锁定、并且 无法发出频率。  我想问、哪些因素会导致 锁定、然后在不损失功率和改变相位检测器频率的情况下丢失锁定?

感谢您提出任何故障排除建议

此致

罗美

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Amy、

    您能否提供特定的配置和测试程序、以便我们可以在实验中进行验证?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Noel、您好!

    感谢您的回答。 客户 在 E2E 中国论坛上有多个回复、我在下面逐一转发。  如果    有任何缺失 的信息 或 信息、 不清楚、 请 随时 咨询。

    1、0x7A0000.0x790000.0x780000.0x770000.0x760000.0x750000.0x740000.0x730000.0x720000.0x710000、
    0x70FFFF、0x6F0000.0x6E001F、0x6D0000.0x6C0000.0x6B0000.0x6A0000.0x69000A、0x680014、0x670014、
    0x660028、0x6503E8、0x640533、0x6319B9、0x621C80、0x6100000、0x6017F8、0x5F00000、0x5E00000、0x5D1000、
    0x5C0000, 0x5B0000, 0x5A0000, 0x590000, 0x5803FF、0x57FF00, 0x5600400x550000, 0x5400400x530F00,
    0x520000、0x510000、0x5001C0、0x4F0118、0x4E0000、0x4D0608、0x4C0000.0x4B0000.0x4A0000.0x490000、
    0x480000,0x470000,0x46000E,0x450011,0x4400200x431000,0x42003F,0x410000,0x4000800x3FC350
    0x3E0000,0x3D03E8,0x3C01F4,0x3B1388,0x3A0000,0x390001,0x380001,0x370002,0x360000,0x350000,
    0x340000,0x33203F,0x320080,0x310000,0x30418,0x2F0300,0x2E0300,0x2D0000,0x2C0000,0x2B0000,
    0x2A0000, 0x290000, 0x280000, 0x2703E8,0x260000, 0x250500, 0x2400300x233100,0x220010,0x210000,
    0x201081、0x1F0401、0x1EB18C、0x1D318C、0x1C0639、0x1B8001、0x1A0DB0、0x190624、0x180E34、0x171102、
    0x16E2BF、0x151C64、0x14272C、0x132138、0x120000、0x1115C0、0x1017E、0x0F2001、0x0E3001、0x0D0038、
    0x0C0408、0x0B0602、0x0A000000、0x090005、0x08C802、0x07000000、0x060a43、0x050032、0x044204、0x030041、
    0x0283E8、0x0157A1、0x004430、数组配置 μ A

    2. 配置输出1200MHz

    3.  

    uint8_t LMX2820_VCO_InstCal (double Cal_freq)

    uint8_t cnt;
    静态 uint8_t Calcnt;
    uint16_t ReturnValue;
    uint8_t Reval_Chan_Fre;
    双 T;
    uint32_t Instcal_dly;//瞬时校准的时间
    uint32_t LmxRtemp;寄存器中转值;μ s
    uint32_t LmxR2=0、LmxR1=0、LmxR0=0;
    LMX2820_output_set (Cal_freq);
    T=2.5*CBIASVCO/4.7;
    if (CAL_CLK_DIV!=0) Instcal_Dly=T*FOSCIN/(<CAL_CLK_DIV);
    否则 Instcal_dy=T*FOSCIN;
    //1.k 设置即时校准时间 寄存器R2 Ω
    lmxR2|=(0x02<<16)&(0x00ffff);
    lmxR2|=(0x01<<15);
    LMxR2|=(CAL_CLK_DIV<<12);
    lmxR2|=(Instcal_Dly<1);
    LMxR2|=(Quick_Recal_en);//快速重校准
    SpiWriteRegisterByte (lmxR2);

    //2.打开即时校准 寄存器R1
    lmxr1|=(0x01<16)&(0x00ffff);
    LmxR1|=(Phase_Sync_en<15);//不打开相位同步
    LmxR1|=(0x15E<6);//保留位
    LmxR1|=(LD_VTUNE_EN<5);//打开即时校准 寄存器R1
    LmxR1|=(0x00<2);//保留位

    lmxR1|=(Instcal_Dblr_en<1);//VCO double使能时 EN也要使能 INSTCAL_DBLR_M Ω
    LmxR1|=(Instcal_en);//即时校准使能
    SpiWriteRegisterByte (lmxR1);

    //3.k 设置频率 Ω
    Reval_Chan_Fre=LMX2820_Pllassign_freq (Cal_freq);

    //4/4 μ 写入INSTCAL PLL_NUM
    n_fraction =((double) pll_Num)/((double) pll_den);
    Instacl_PLL_Num=(0x100000000)*N_Fraction;
    Instacl_PLL_Num_LSB=(0x2D<<16)|(Instacl_PLL_Num&0x0000FFFF);
    Instacl_PLL_Num_MSB=(0x2C<<16)|((Instacl_PLL_Num>16)&0x0000FFFF);

    // SpiWriteRegisterByte (0X4F011E);
    // SpiWriteRegisterByte (0X4E0000);
    // SpiWriteRegisterByte (0X4600FE);

    SpiWriteRegisterByte (Instacl_PLL_Num_LSB);
    SpiWriteRegisterByte (Instacl_PLL_Num_MSB);
    LMX2820_Freq_OUT (Cal_freq);//配置2b 2a 27 26 24 20寄存器
    //FCAL_EN = 0,写入r0生效校准
    LmxR0|=(0x00<<16)&(0x00ffff);
    lmxR0|=(1<<14);
    LmxR0|=(INSTCAL_SKIP_ACAL<<13);
    LmxR0|=(0x00<<11);
    LMxR0|=(FCAL_HPFD_ADJ<9);
    LMxR0|=(FCAL_LPFD_ADJ<7);
    LMxR0|=(Dblr_CAL_EN<6);
    lmxR0|=(1<<5);
    lmxR0&=~((uint32_t) FCAL_en<<4);
    LmxR0|=(0x00<2);
    LMxR0|=(Chip_Reset<1);
    LMxR0|=(Chip_PowerDown);



    SpiWriteRegisterByte (LmxR0);//LMXR0 =0X004420
    //FCAL_EN=1,写入r0锁定
    lmxR0|=((uint32_t) FCAL_en<4);
    SpiWriteRegisterByte (LmxR0);//LMXR0 =0X004430

    while (((SpiReadRegisterByte (0x4a)&(0xc000))>>14)!=2)


    SpiWriteRegisterByte (Instacl_PLL_Num_LSB);
    SpiWriteRegisterByte (Instacl_PLL_Num_MSB);
    LMX2820_Freq_OUT (Cal_freq);//配置2b 2a 27 26 24 20寄存器
    SpiWriteRegisterByte (lmxR2);
    SpiWriteRegisterByte (lmxR1);
    SpiWriteRegisterByte (LmxR0);
    DELAY_ms (1);每次检测前需要有个锁定时间延时 根据手册最少1ms μ s


    lmxR0&=~((uint32_t) FCAL_en<<4);
    SpiWriteRegisterByte (LmxR0);//LMXR0 =0X004430
    DELAY_us (50);

    配置即时校准

    其中一些频率可能会产生、而另一些频率可能不会产生

    4. 我先初始化配置,然后设置即时校准。 在初始配置中、我已经配置了即时校准、但它似乎不能直接工作、因此我再次重新配置了它。

    我 监控了 Rb_LD 引脚并发现它已锁定、但模拟 LD 引脚未亮起。

    此致、
    罗美

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Noel、您好!

    我真的很抱歉、但客户有一些新问题:

    现在、我已经在初始上电时完成了即时校准、然后当我修改频率时、读取 Rb_LD:
    R0写入4430时、Rb_LD 始终无效;
    当 R0写入4420时、它有时始终有效、但  Rb_VCO_SEL,Rb_VCO_CAPCTRL 与目标频率不对应。
    在某些频率下、这些问题可能会突然消失、然后锁定。 此时、无论 R0写入4430还是4420、它都将始终有效。

    如有任何意见、请提供。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    客户刚才说过可能是因为热问题导致芯片故障。