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.

[参考译文] LMK04828BEVM:多芯片配置最初恰好在同步脉冲之后同相、然后异相

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

https://e2e.ti.com/support/clock-timing-group/clock-and-timing/f/clock-timing-forum/1133441/lmk04828bevm-multi-chip-configuration-initially-in-phase-right-after-sync-pulse-then-come-out-of-phase

器件型号:LMK04828BEVM

您好!

我遇到了一个问题、即我有两个板设置、并且正在探测两个采用相同编程方式的 LMK04828B 的相同输出、我尝试使这两个输出具有确定性相位。

一些注意事项:

  • 每个 CLK0具有相同的10MHz 基准
  • 每个 LMK04828B 都有一个160MHz VCXO ( 每个板上有单独的 IC、但生成160MHz 的模型相同)
  • 每个通道在 SYNC 输入端获得1.8V SYNC 脉冲
  • 输出时钟为:
    • 192 MHz
    • 2MHz SYSREF
  • 嵌套0延迟模式、SYSREF 作为反馈时钟

192MHz 是我们尝试执行的操作的关键、现在我们需要使其与 10MHz 基准一同工作。 SYSREF 频率不太重要。 它只是被选择为192MHz 的整数子倍。

我所做的是使用 HexRegisterValues.txt 文件中的寄存器对 LMKs 进行编程、然后两个芯片预计会在固定阶段出现192MHz 时钟(通常是异相、有时是完整的180deg、但可能是同相)。 如果我使用完整的 HexRegisterValues.txt 文件对芯片进行重新编程、那么 LMKs 可能会产生具有与之前不同相位的输出、但正如预期的那样、这些相位是不确定的。

当我执行一个过程来应用同步脉冲(包括 SYSREF_CLR=1、SYNC_DIS*=0、DDLY_PDs=0、正常同步模式、SYNC_1SHOT_EN=0、 SYNC_POL=0)、我在示波器上看到的同步脉冲下降沿是、192MHz 时钟恰好在同步脉冲之后同相。 但是、如果我稍后在示波器上重新触发/重新接收、则时钟再次异相(并且看起来在同步之前的相位上)。  我们似乎在几毫秒后将这种情况缩小到了范围。

为了确认这一点、我们一直使用 HexRegisterValues.txt 进行初始配置、以使相位接近180度异相、 然后执行同步脉冲(在该脉冲中、我们触发并验证它们在同步后变为同相)、然后 稍后捕获数据或实时查看数据、并看到它们似乎再次漂移到~180deg 相位差

有什么想法吗? 谢谢!

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

    您好!

    我建议查看 多时钟同步应用手册 、以了解有关0延迟模式和多时钟同步方法的更多信息。

    在这里、我可以观察到器件未配置为全0延迟模式、并且可以看到非确定性相位。

    您可以尝试使用0延迟模式以及分频器复位方法、其中使用 SYNC_PLL1_DLD 设置内部同步-> 1 (一旦 PLL1锁定将生成同步)、并在  复位模式(SYNC_DISx -> 0)下将同步启用到所需通道以复位分频器。

    谢谢!

    此致、
    Ajeet Pal

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

    感谢您的回答。 我在发布之前已阅读过此应用手册。 我相信我之前没有做过的唯一事情是设置 SYNC_PLL1_DLD (我还尝试设置 SYNC_PLL2_DLD)、即使尝试了该设置、我仍然会获得相同的结果。

    附件是 我的 HexRegisterValues.txt 文件。

    e2e.ti.com/.../8311.HexRegisterValues.txt

    下面是 一个用于应用同步的 Python 片段:

    # set to Normal SYNC
    spi_dev.write_val(0x139, 0)
    # set to re-clocked SYNC
    # spi_dev.write_val(0x139, 1)
    
    # set SYSREF_CLR (reg 0x143, bit 7)
    spi_dev.write_val(0x143, 0x95)
    
    # turn off SYNC disable bits
    spi_dev.write_val(0x144, 0)
    
    print("about to sync...")
    time.sleep(1)
    
    gpio_lmk_sync.set_value(1)
    time.sleep(0.1)
    gpio_lmk_sync.set_value(0)
    print("sync performed")
    time.sleep(0.1)
    
    # turn on SYNC disable bits
    spi_dev.write_val(0x144, 0xFF)
    
    # clear SYSREF_CLR (reg 0x143, bit 7)
    spi_dev.write_val(0x143, 0x15)
    
    # set back to SYSREF continuous
    spi_dev.write_val(0x139, 3)

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

    您好!

    十六进制寄存器配置 文件看起来不错、除了可以将 PLL2_PFD 频率进一步增加到32MHz (以提高相位噪声性能)之外、还需要按以下顺序运行测试:

    首先,加载配置文件(e2e.ti.com/.../LMK04828_5F00_e2e_5F00_updated.tcs), 程序 SYNC_PLL1_DLD=1,SYNC_DIS0、SYNC_DIS2、..., SYNC_DIS12=0以启用复位。 SYSREF 分频器无需复位、SYNC_DISSYSREF 不会产生影响、因为 SYSREF 输出用作零延迟反馈、该反馈只能具有一个相位(由基准输入确定)。

    2.等待 PLL1锁定

    3.当 PLL1锁定时、输出分频器将同时从同步中释放出来、从而确保每个 LMK 器件在同一相位上看到参考时钟。

    4.在 PLL1锁定后,对 SYNC_DIS0、SYNC_DIS2、...、SYNC_DIS12=1进行编程,以防止 SYSREF 边沿再次触发分频器复位。

    5.将 SYSREF_MUX 设置为连续。

    如果您仍然看到问题、请仔细检查上述顺序并告知我。

    谢谢!

    此致、
    Ajeet Pal

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

    谢谢! 我想它启用了 SYNC_DISSYSREF、从而阻止了同步的发生。

    在发布帖子之前、我刚刚让它看起来在双环路非 ZMD 模式下工作、但在您的帮助下、它在 ZMD 模式下工作。

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

    为了对此进行一些澄清、我现在注意到 SYSREF 从未同步、并且两个板之间不是相位的。 我可以通过执行两个同步(一个首先在双环路中、SYNC_DISSYSREF=0、然后在双环路 ZMD 中、SYNC_DISSYSREF=1)来解决此问题、但如果有另一种方法、我都在听。

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

    您好!

    我可能无法在这里得到您的观点。

    您是否能够获得同步输出? 请详细说明一下吗?

    谢谢!

    此致、
    Ajeet Pal