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.

[参考译文] LMK04828:生成相位对齐的10MHz 输出时钟

Guru**** 2530730 points
Other Parts Discussed in Thread: LMK04828, LMK04610, LMK04832

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

https://e2e.ti.com/support/clock-timing-group/clock-and-timing/f/clock-timing-forum/1347551/lmk04828-generating-a-phase-aligned-10mhz-output-clock

器件型号:LMK04828
主题中讨论的其他器件: LMK04610LMK04832

您好!

我正在处理一个使用 Xilinx (AMD) ZCU216开发套件和 CLK104附加卡的项目。  CLK104电路板使用 LMK04828。   

我将使用连接到 LMKCLKin0输入的 CLK104板上的 J11 SMA 连接器向 LMKK 芯片提供10MHz 参考信号。  另一个开发套件也将提供与此相同的10MHz 参考。  其目的是在多个电路板上生成一个来自 LMK04828的10MHz 输出时钟、该时钟的频率和相位会相互锁相。  该10MHz 输出将发送到 FPGA、以驱动需要跨多个电路板同步的逻辑。

下图显示了我认为我需要如何配置 LMK 芯片。  还包括 TICS 中相应的寄存器转储文件。  目前、我使用的是 SDCLKout11输出、该输出连接到 CLK104板上的 SMA 连接器、可轻松进行监控。

e2e.ti.com/.../CustomHexValues_5F00_ClkIn0_5F00_zerodelay.txt

我想确认我对配置的理解是准确的、并且可以预期行为与我所述的一致性:

  • 在这种配置下、如果我期望 CLKin0输入和 SDCLKout11输出都是频率和  相位一致?
  • 如果我在不同的电路板上以类似的方式配置 LMK 芯片并为其提供等效的10MHz 参考、我是否可以期望所有电路板上的 SDCLKout11输出对齐?
  • 我是否需要以某种方式触发同步事件以使相位对齐发生?  我看到在另一个帖子中提到这一点。

如果需要、我可以提供额外的信息。  如果有什么不明确的地方、请告诉我。

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

    Matt、

    我将在周四前回复您。

    此致、

    将会

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

    Matt、您好!

    您能否附加.tcs 文件? 我认为您的配置不正确。 我在下面截屏了您所包括的寄存器转储以及我在结尾处看到的内容。

    如果我在不同的电路板上以类似方式配置 LMK 芯片并为它们提供等效的10MHz 参考,我可以预期所有电路板上的 SDCLKout11输出将对齐吗?[/quot]

    需要在所有芯片中执行上述相同的步骤、并且需要使用 SYNC 引脚来实现对齐。 基本上、所有电路板都需要一个通用时钟来进行相位对齐、而且您可以让一个时钟生成该时钟、称为 SYSREF、以连接到所有其他时钟/芯片。 因此、LMK04828上的输出会馈入其他 LMK 板的 SYNC/CLKin0引脚。 原始 LMK04828板将生成 SYSREF 脉冲发生器并将该脉冲发送到电路板、以触发外设板同步该脉冲的高边沿。

     本文将对执行此操作和进行多板同步进行更多评论。 建议查看第2和3部分或第4部分、查看 ZDM 和图11 +其下方的文本。  也是同步类似器件 LMK04610上多个芯片的出色参考。 如果可能、请阅读这两篇文章。

    Unknown 说:
    我是否需要以某种方式触发同步事件才能进行相位对齐?  我在另一个帖子中看到了这一点。

    正确、有关上述说明和文章的更多信息。

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

    尊敬的 Andrea:

    感谢您的回复。  我仍然需要详细通读、但想提供 TICS 文件。  问题可能在于输入频率-我不确定这些频率是否反映在寄存器文件中。  CLKin0的输入频率应为10MHz、CLKin1的输入频率为10MHz、振荡器的输入频率为160MHz。

    马特

    e2e.ti.com/.../CustomHexValues_5F00_ClkIn0_5F00_zerodelay.tcs

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

    Matt、您好!

    10MHz 是否是您在设备之间共享的时钟、对吗? 10MHz 不在计时任何其他东西吗?

    另外、为了说明这一点、您的配置在不同频率(10MHz、125MHz 和250MHz)下具有多个输出、这是您想要的吗? 从上面的描述来看、你似乎只是想通过你的系统馈送10MHz。

    此致!

    安德烈亚

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

    再次你(们)好。  我已经通读了您的回答、并希望在提出一些后续问题之前提供一个更高层次的系统背景信息。  如下图所示、多个电路板通过高精度定时分配网络连接、我们无法将信号 从一个电路板直接分配到另一个电路板:

    有关该设计的一些其他注意事项:

    • 1PPS 和10MHz 信号通过高精度时序分配网络分配给多个电路板。
    • 假设不同电路板的10MHz 参考之间的偏移/抖动非常小。
    • 同步1PPS 信号也与该时钟一起分配。
    • 每个 FPGA 内部都有一个时间计数器。  理论上、这些可以在使用分布式1PPS 和10MHz 信号的电路板之间紧密同步。
    • 在该图中、10MHz 显示为通过 LMK 到达 FPGA、然后在每个板上使用"重新生成"SDCLKoutY 时钟来记录当日时间计数器。  主要思路是使用10MHz 以确保 ToD 计数器以正确的频率递增、然后将1PPS 用于在多个电路板之间对齐 ToD 计数器的"相位"。
    • 对于日计数器的锁定时间、其理念是可以指示不同的板在精确的时间时刻生成 SYNC 信号。  这将导致在所有电路板上生成"同步"同步信号、以同步所有分频器并确保在电路板上锁定 ADC/DAC 的所有"其他"时钟。  因此、理论上、SYNC 信号将在所有电路板上同步、因为它们都锁定了 ToD、但与此同时、它将由每个电路板单独生成、而不是分布到所有电路板的通用信号。

    不过、我担心这是否起作用:

    • 为了生成到 FPGA 的输出10MHz、唯一的方法似乎是使用 SYSREF 分配网络和 SDCLKout 输出。  我无法在任何 DCLKout 输出上生成具有10MHz 频率的时钟(DCLK 时钟分频器无法提供足够大的选项来将 VCO 频率分频到10MHz)。
    • 不过、要使用 SYNC 输入、这些步骤需要临时重新配置 SYSREF 分配网络、以便使用 SYNC 引脚来复位时钟分频器。   
    • 但我认为、当我这样做时、我的10MHz 会丢失到 FPGA (当我更改 SYSREF_MUX 的值时)、这意味着我将无法再在 FPGA 中生成同步信号。
    • 我想知道我不能使用 LMK 生成的时钟来生成同步。

    一些更具体的问题:

    • 为了向 FPGA 生成 SDClkOut (10MHz)、因为我使用零延迟模式(具有 SYSREF 反馈)、并且输出时钟的频率与输入时钟相同、 我似乎不需要 SYNC 信号来在多个电路板上对齐它们。   看起来零延迟模式处理了相位对齐、并且由于频率相同、不同的相位对齐没有歧义。  您能确认吗?
    • 真的、一旦我将芯片重新配置为使用 SYNC 引脚来驱动 SYSREF 网络、我就会失去到 FPGA 的10MHz 输出吗?  如果是、则不能使用该时钟在多个板上生成 SYNC 信号。

    摘要:

    • 总体思路是将1PPS 和10MHz 分配给所有电路板、并用于同步一天中的时间计数器。  10MHz 用作 LMK 的输入参考。  会指示所有电路板在精确的时刻生成 SYNC 信号、以跨多个器件同步 LMK 时钟。  但是...我不确定当前通过 LMK 传递用于 ToD 生成的10MHz 的方案是否可行。  10MHz 可能需要以某种方式直接到达 FPGA。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Matt、您好!

    我会在下周结束之前与您讨论。

    此致!

    安德烈亚

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

    Matt、您好!

    我已经在更高层次阅读了您的响应、以便澄清在继续讨论4828之前、您是否需要 LMK04828来处理1pps 信号?

    此致!

    安德烈亚

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

    尊敬的 Andrea:

    对于每个端点、我必须输入的只有来自时序分配网络的同步10MHz 和1PPS 信号(不能在不同端点之间直接发送信号)。  我想在所有端点之间生成锁定的10MHz、125MHz 和250MHz 时钟。  我不清楚1PPS 需要转到4828、但与此同时、 我认为跨板同步需要在所有板上生成同步同步信号。  1PPS 似乎有必要以某种方式实现此目的。  我想我可以在无需通用 SYNC 信号的情况下在每个电路板上获得同步10MHz 和250MHz 信号、因为频率都是很好的倍数。  但是、125MHz 需要额外的板间同步、因为它不是10MHz 输入的理想倍数、并且最终可能会在不同板之间进行不同的相位对齐。

    这有助于澄清吗?

    马特

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

    Matt、您好!

    我正在和一位了解更多有关处理1pps 信号的同事交谈、我可以进一步为您提供帮助。

    此致!

    安德烈亚

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

    Matt、您好!

    通读您详细的系统、感谢您提供的所有详细信息。

    要生成 FPGA 的输出10MHz,这样做的唯一方法似乎是使用 SYSREF 分配网络和 SDCLKout 输出。  我无法在任何 DCLKout 输出上生成具有10MHz 频率的时钟(DCLK 时钟分频器无法提供足够大的选项来将 VCO 频率分频到10MHz)。

    您是对的、这是 LMK04828的一个限制、这就是我们具有 LMK04832的原因、它与 LMK04828引脚对引脚兼容。 LMK04832在 DCLKout 上最高可达1023、在 SYSREF 分频器上最高可达8191。 如果10MHz 是您必须使用的频率、则 LMK04828不适合您的设计。

    我认为当我这样做时,我的10MHz 会丢失到 FPGA (当我更改 SYSREF_MUX 的值时),这意味着我将无法再在 FPGA 中生成同步信号。

    这个逻辑是正确的、因此您的解决方案将使用 LMK04832 (如上所述)。 SYSREF 信号用作同步的时钟、它与提供给所有需要同步的器件的时钟相同。 因此、您可以在 LMK04832上设置需要分配此信号的输出。 然后、正如我在上面引用的项目符号中所描述的那样、这个信号可被改变。

    我想知道是否不能使用 LMK 生成的时钟来生成同步。

    两个 LMK 部件都能够生成通过 SPI 或 SYNC 引脚复位分频器所需的 SYNC 信号。 这完全由您决定。

    用于为 FPGA 生成 SDClkOut (10MHz)、因为我使用零延迟模式(具有 SYSREF 反馈)、并且输出时钟与输入时钟频率相同、 似乎我不需要 SYNC 信号来在多个板上对齐这些信号。   看起来零延迟模式处理了相位对齐、并且由于频率相同、不同的相位对齐没有歧义。  您能否确认?

    使用 SYSREF 分频器的10MHz 输出将与您的输入具有确定性相位关系;但是、如果您未使用 SYSREF_MUX 同步分频器(正如您在响应的其中一个要点中所提到的)、则不会与输出的其余部分同步。 此外、切换到 LMK04832时、0延迟模式只能通过 CLKout6或 CLKout8实现、因为您不再需要使用 SYSREF 分频器生成10MHz 时钟。 因此、此时实现相位对齐的唯一方法是重置输出分频器。 另外、我想说明一点、即使从器件输出相同的频率、也无法保证相位对齐。

    是否真的只要我重新配置芯片以使用 SYNC 引脚驱动 SYSREF 网络,我就会将10MHz 输出丢失至 FPGA?  如果是这样、则不能使用此时钟在多个板上生成同步信号。

    是的、这是对的、请查看我上面其中一个进一步解释这一点的答案。

    高级思想是1PPS 和10MHz 分配给所有板并用于同步一天中的时间计数器。  10MHz 用作 LMK 的输入参考。  会指示所有电路板在精确的时刻生成 SYNC 信号、以跨多个器件同步 LMK 时钟。  但是...我不确定当前通过 LMK 传递用于 ToD 生成的10MHz 的方案是否可行。  也许10MHz 需要以某种方式直接到 FPGA。

    我对此的解决方案总结为使用 LMK04832。

    如果我漏掉了任何内容或您有任何其他问题、请告诉我。

    此致!

    安德烈亚

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

    尊敬的 Andrea:

    谢谢你的答复。  切换到 LMK04832对我们来说并没有实际意义、因为我们会使用第三方开发套件。  但是、您提供的信息很有用。

    借助这些额外的知识、我相信我已经消除了 LMK04828带来的一些难题、并提出了一种可行的解决方案。

    首先、我可以摆脱125MHz、所以可以只处理250MHz 和10MHz。  10MHz 将通过 SYSREF 分频器生成、并用于0延迟模式反馈。  我认为、在 SPI 模式下使用 SYNC 引脚(即切换 SYNC_POL 以复位分频器)应允许我将250MHz 输出的相位和10MHz SYSREF 分频器的相位与10MHz 输入基准对齐。  这应该是确定性的、因为250MHz 是一个多10MHz (在不同的可能对齐方面没有歧义)。

    如果我为不同电路板提供相同的10MHz 并采用相同的 SPI 同步方法、我还可以在该电路板上生成与10MHz 基准进行确定性对齐的250MHz 和10MHz 时钟。 由于10MHz 基准信号与不同的电路板对齐、因此预计它们生成的250MHz 和10MHz 输出也将对齐(即使在不同的时间执行 SPI 同步序列)。

    综上所述、最主要的一点是、我相信我可以使用 LMK04828在多个电路板上生成对齐的输出时钟(10MHz 和250MHz)、而无需实际向不同器件的输入引脚生成对齐的同步信号。  由于所有电路板都具有相同的10MHz 参考、并且输出时钟(10MHz 和250MHz)是其合理倍数、因此每个电路板上运行的 SPI 同步方法应足够确保所有时钟都与参考对齐。

    我希望这一切听起来对您来说是正确的、但如果您不能评论哪些内容看起来不准确或不可能?

    谢谢。
    马特

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

    Matt、您好!

    这话主要是我认为我可以在多个板上使用 LMK04828生成对齐的输出时钟(10MHz 和250MHz)、而实际上无需向不同器件的输入引脚生成对齐的同步信号。  由于所有电路板都获得相同的10MHz 参考、并且输出时钟(10MHz 和250MHz)是其不错的倍数、因此每个电路板上运行的 SPI 同步方法应足够确保所有时钟都与参考对齐。

    我再次与同事核实了这部分、因为我相信可能有一个边缘处理的案例可能不会做到这一点。 但是、在大多数情况下、我认为应该是正确的。 我会给你一个明确的答案。

    除此之外、您说的一切都正确。

    此致!

    安德烈亚

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

    Matt、

    这话主要是我认为我可以在多个板上使用 LMK04828生成对齐的输出时钟(10MHz 和250MHz)、而实际上无需向不同器件的输入引脚生成对齐的同步信号。  [/报价]

    为了澄清这一点、4828将针对 SYSREF 和时钟输出创建对齐的时钟、这是您将提供给每个 ADC/器件的 SYNC 信号(与4828 SYNC 引脚不同)。

    在这种情况下、只有在使用 ZDM (0延迟模式)且需要匹配10MHz 的传输线路/电缆时、您的描述才为真。 此外、您还需要确保发送到系统上4828的 SYNC 信号来自同一器件并且同时到达。

    此致!

    安德烈亚

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

    尊敬的 Andrea:

    非常感谢您的反馈、很抱歉我们花了一点时间给予您回复!

    这对我们大有帮助、但还有一个问题。

    您说 SYNC 信号必须从同一器件发送。  在我们的例子中、我们需要单独在单独的器件上生成它们、希望能够以非常同步的方式生成它们。

    我的想法是使用脉冲发生器引脚模式、因此当 SYNC 信号有效时、将驱动 SYSREF 实现可编程脉冲数。  我知道这种模式实际上只是"取消"已经运行的10MHz SYSREF 信号(根据我们上面的讨论、这些信号应该在不同的电路板之间同步)。

    我假设 LMK 芯片正在寻找 SYNC 信号的一个边沿、当它检测到这一点时、它将在其下一个边沿打开 SYSREF 信号。   在这种情况下、为了在多个电路板上获得相同的结果、可能会在生成 SYNC 信号时存在一些回旋余地。  例如、如果所有电路板在同一10MHz 时钟周期窗口内驱动 SYNC、则所有电路板都将在同一下一个边沿上看到其 SYSREF 信号取消选通。

    或许用不同的措词来表述、这似乎即使同步信号不是在所有电路板上完全同时驱动的、如果它们处于同一个10MHz SYSREF 周期内、所有电路板仍然可以看到它们的脉冲 SYSREF 完全同步。

    这听起来是否准确?   

    马特

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

    Matt、您好!

    很抱歉造成了混乱。 这听起来确实很精确。 务必以0延迟模式运行电路板。

    此致!

    安德烈亚

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

    感谢您的帮助、Andrea。   

    我想这就是我提出的所有问题。  我将此项目标记为已解决。   

    马特