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**** 2553450 points


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

https://e2e.ti.com/support/clock-timing-group/clock-and-timing/f/clock-timing-forum/1569836/lmx2820-may-lose-lock-if-the-same-configuration-is-set-multiple-times

器件型号:LMX2820


工具/软件:

您好、

我们在  以 100MHz 步长持续扫描 13GHz 至 20GHz 的输出频率、停留时间为 每步 500ms 时遇到了类似的问题。 在第 400 次迭代前后、器件始终失去锁定。

发生这种情况时、切换 RESET 引脚并重新初始化器件会恢复正常运行。 但是、我们正在寻找一种更稳健的解决方案来完全防止这种锁丢失。

是否有人找到了在高频扫描期间缓解这种行为的方法?

提前感谢!

以下是我们用于每次频率更新的寄存器序列:

寄存器值:

e2e.ti.com/.../1641.HexRegisterValues.txt

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

    尊敬的 Yingju:

    VCO 倍频器校准可能会失败一小部分、当发生故障时、我们必须复位器件并重新启动。

    如果您的应用需要不时更改输出频率、您可以在完全辅助模式下运行器件或使用 InstCal、这两种方法都跳过校准、因此可避免由于 VCO 倍频器校准而失去锁定。

    我认为 InstCal 更易于使用。 要使用 InstCal、我们将进行一次性校准。 之后、更改频率不再需要校准、只需对频率相关寄存器进行编程、器件就会锁定到所需的频率。

    除了频率相关寄存器外、完全辅助模式还需要对一些额外的 VCO 和 VCO 倍频器相关寄存器进行编程。 需要对每个所需的频率进行一次性校准、以收集 VCO CAN VCO 倍频器寄存器信息。 有关完全辅助的更多信息、请访问: https://www.ti.com/lit/pdf/snaa336

    请告诉我您希望如何继续、我可以提供有关操作的更多说明。

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

    尊敬的 Noel:

    感谢您的快速答复。 我想从完全辅助模式开始。 我有几个问题:

    1. 如何执行初始自动校准以收集所需的 VCO 和 VCO 倍频器寄存器值?
    2. 更改频率(包括自动校准时间)通常需要多长时间?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Yingju:

    您只需要在 LUT 创建期间进行自动校准、频率锁定时间不应是问题。 锁定时间取决于配置、可能在 XXXµs μ s 到 XXµs μ s 之间变化。 在 LUT 创建期间、您可以假设任何频率杂散的锁定时间为 1ms。

    以下是完全辅助运行的程序。

    LUT 创建
    1.无需任何校准辅助即可将设备编程为所需频率
    2.读回 rb_VCO_SEL、rb_VCO_CAPCTRL 和 rb_VCO_DACISET
    回读 rb_DBLR1_PD_RB (R113[14])、rb_DBLR2_PD_RB (R113[15])
    4.如果 rb_DBLR1_PD_RB = 0、则读回:
    - rb_DBLR1_AMP1_DACCTRL (R115[8:7])
    - rb_DBLR1_AMP2_DACCTRL (R115[10:9])
    - rb_DBLR1_AMP3_DACCTRL (R115[12:11])
    - rb_DBLR1_PREGEN_AMP_DACCTRL (R115[15:13])
    - rb_DBLR1_PREGEN_AMP_CAPCTRL (R116[11:8])
    - rb_DBLR1_AMP_CAPCTRL (R116[3:0])
    如果 rb_DBLR2_PD_RB = 0、则读回:
    - RB_DBLR2_AMP1_DACCTRL (R114[15:14])
    - rb_DBLR2_AMP2_DACCTRL (R115[1:0])
    - rb_DBLR2_AMP3_DACCTRL (R115[3:2])
    - RB_DBLR2_PREGEN_AMP_DACCTRL (R115[6:4])
    - rb_DBLR2_PREGEN_AMP_CAPCTRL (R116[15:12])
    - rb_DBLR2_AMP_CAPCTRL (R116[7:4])
    5.对所有感兴趣的频率重复步骤 1 到 4
    应用数据
    6.默认设置如下
    - FCAL_EN = 0
    - VCO_CAPCTRL_FORCE、VCO_SEL_FORCE、VCO_DACISET_FORCE = 1
    DBLBUF_PLL_EN、DBLBUF_CHDIV_EN、DBLBUF_OUTBUF_EN、DBLBUF_OUTMUX_EN = 1
    - DBLR_PATH_OVRD、R83[1]= 1
    - DBLR_AMP_CAPCTRL_OVRD、R83[2]= 1
    - DBLR_AMP_DACCTRL_OVRD、R83[3]= 1
    - DBLR_PREGEN_AMP_CAPCTRL_OVRD、R83[4]= 1
    - DBLR_PREGEN_AMP_DACCTRL_OVRD、R83[5]= 1
    7.编程频率相关寄存器
    8.根据读回值对 VCO_CAPCTRL、VCO_SEL 和 VCO_DACISET 进行编程
    9.如果 rb_DBLR1_PD_RB = 0、则设置 DBLR1_PD = 0 (R83[11]) 且 DBLR2_PD = 1 (R84[6])。 然后将读回值写入以下字段:
    - DBLR1_AMP_CAPCTRL、R86[10:7]
    - DBLR1_PREGEN_AMP_CAPCTRL、R87[3:0]
    - DBLR1_PREGEN_AMP_DACCTRL、R88[6:4]
    - DBLR1_AMP1_DACCTRL、R87[9:8]
    - DBLR1_AMP2_DACCTRL、R87[11:10]
    - DBLR1_AMP3_DACCTRL、R87[13:12]
    如果 RB_DBLR2_PD_RB = 0、则设置 DBLR1_PD = 1 和 DBLR2_PD = 0。 然后将读回值写入以下字段:
    - DBLR2_AMP_CAPCTRL、R86[14:11]
    - DBLR2_PREGEN_AMP_CAPCTRL、R87[7:4]
    - DBLR2_PREGEN_AMP_DACCTRL、R88[9:7]
    - DBLR2_AMP1_DACCTRL、R87[15:14]
    - DBLR2_AMP2_DACCTRL、R88[1:0]
    - DBLR2_AMP3_DACCTRL、R88[3:2]
    10.编程 R0