主题中讨论的其他器件: 4430
大家好、
我有一位客户遇到了有关 LMX2820的一些问题。 请提供一些故障排除建议
当他使用 LMX2820即时校准时 、他发现当 facl_en=0时、 器件会 再次失去锁定、并且 无法发出频率。 我想问、哪些因素会导致 锁定、然后在不损失功率和改变相位检测器频率的情况下丢失锁定?
感谢您提出任何故障排除建议
此致
罗美
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.
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、它都将始终有效。
如有任何意见、请提供。