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.

[参考译文] AM6442:根据 AM64对齐1PPS

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1335282/am6442-alignment-of-1-pps-from-am64

器件型号:AM6442
主题中讨论的其他器件:LMK5B33216

您好!

我正在运行 PTP 堆栈、它将主25 MHz 时钟移入 AM64来实现 ToD 对齐。

我有三个器件领导者(L)、跟随者1 (F1)和跟随者2 (F2)。

下面您可以看到 J3中 AM64 SK EVM 的一个 PPS 对齐图、其中显示了...

  • 绿色作为跟随者时间与跟随者2。
  • 红色、领导者与跟随者1
  • 蓝色为领导者与跟随者2。

重新启动系统并重新启动 PTP 堆栈的几次运行。  对齐时的时间误差似乎为+5ns 至-10ns。

如何改进这一点?

这里是一组出租数据、我只是在其中启动/停止 PTP 堆栈。  在这种情况下、对齐是确定性的、但我希望它全部更接近0。

我还做了一个测试、将1PPS 关闭/打开... 我必须执行一次此操作才能获得1PPS 以正确反映 ToD。  此操作似乎没有"采样"错误。  那么、为什么我的第一个图中存在非确定性?

testptp -i /dev/ptp0 -P 0
testptp -i /dev/ptp0 -P 1

请注意、由于我的 PTP 堆栈正在从外部执行 LMK5B33216的 DCO、我不认为下面讨论的错误会影响我... 也许我弄错了。
https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1256953/sk-am62-pps-out-not-acting-as-expected

我找到的来源:
https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1248172/sk-am62-high-precission-pps-input

73、
蒂莫西

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

    Timothy、您好!

    我将参加本周的全天培训、因此我们的回应可能会延迟至下周。 当我回来后、我会继续调查您的问题。

    -道林

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

    Timothy、您好!

    这个问题已经作为上报事项提请我注意、因此我将在本周的午餐时间和全天培训后、更加深入地研究这个问题。  

    要改善延迟/对齐数字:

    通常、在 AM64x 器件的 Linux 上运行开箱即用的 ptp4l 时、能够达到的最佳时间精度是几纳秒级。 rms 列的 ptpt4l 的输出甚至以纳秒为单位。

    因此、从时间同步路由器到达物理引脚的输出信号的测量结果似乎在14ns 内(也在 ns 级)。 来自 https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1061474/faq-am64x-what-is-the-time-sync-router-for-how-do-i-use-it?tisearch=e2e-sitesearch&keymatch=faq%3Atrue、我想您已经阅读过这些内容。

    一些微不足道的改进可能是减少每个器件之间的电缆长度连接、或者在设计电路板布线时使传输到 物理 引脚的长度更短。  

    测量准确性/是否确定:

    我研究了一些测量从器件时钟精度的方法、发现有多种选项可供测量、包括像您一样比较1PPS。 此 资源 (幻灯片8)还列出了1PPS 测量的一些缺点  包括" 1PPS 本身的实现有时不完美、会导致相位偏移或抖动"和"待测器件必须相对靠近"。  其他测量选项(入口方法、出口方法、反向同步方法)可能 值得尝试、但它们也有自己的缺点。

    另一方面、1PPS 信号必须经过时间同步路由器、需要一些时间才能到达物理引脚、这会增加延迟。 因此、我不确定1PPS 对齐测量值是否直接反映了 ptp4l 的输出所示。  

    我希望我在这里的评论对您有所帮助、因为我也在尝试了解/深入了解 PTP。 如果您有其他问题、敬请告知。

    -道林

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

    尊敬的 Daolin:

    因此、我不是运行 ptp4l、而是使用自定义高性能堆栈。  该设置使 AM64和 PHY 从 LMK5B33216接收其25 MHz 时钟。  PTP 堆栈通过 SPI 接口对 LMK5B33216进行 DCO、以调整时钟频率、加快/减慢 AM64时钟、以便 ToD 可以对齐。  LMK5B33216支持 ppt 范围内的非常精细的 DCO。  借助此设置、我们能够获得非常好的时间校准/变化、为数百 ps。

    我所有的 LMK5B33216都被模拟为使用 SyncE - LMK5B33216的输入频率与所有 PTP 节点相同。  顺便说一下、在跟随器1板上、PHY 和 AM64采用 DCOD。  在跟踪器2板上、PHY 频率不发生变化、它锁定为 SyncE 频率、只有 AM64接收 DCOed 25 MHz。  领导者板不执行任何 DCO。  PHY 和 AM64处于相同的恒定"SyncE"频率。

    不过、由于25 MHz 时钟用作反馈、并且我想能够在 PTP 节点之间对齐来自 LMK5B33216的时钟、因此我将使用 AM64的1PPS 输出来锁定 LMK5B33216上的另一个 DPLL。  然后、我可以对其他时钟执行零延迟、以获得确定性相位。

    问题是1PPS 输出未正确对齐... 它会从引导变为引导、如上面我的第一个图像所示。  下面是 J3为我的领导和两个追随者的1 PPS 输出。  我一直在收集数据、以显示其变化实际上是1PPS 输出的低于1ns。  此外、我的 DPLL 可以对任何变化进行滤波并对其求平均值... 漂移衰减。  因此、目前我不认为1PPS 输出的延迟变化存在问题。  下图测量该变化、而不会影响我的绩效。  问题在于启动时的不确定性。

    我不知道这种不确定性出现的原因/位置。  有时我会启动并启动堆栈、因此其中两个1PPS 输出对齐。

    73、
    蒂莫西

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

    Timothy、您好!

    这样我就正确理解了、每次启动时、 前导、follower1和 follower2之间的1-PPS 输出变化都与之前的启动变化不同? 对于低于1ns 的变化结果是一个启动实例之后的结果、您可以看到例如下一个启动、 对齐时的变化可能是+5ns 到-10ns (基于您的第一个图)?

    如果是这种情况、我目前不知道每次启动为什么会有这种变体。 我想它可能与 PTP 堆栈上升的时序有关。 您的应用对齐要求是什么? 低于1ns?

    -道林

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    只是为了我正确理解,每次启动时, 前导、follower1和 follower2之间的1-PPS 输出变化与以前的启动变化不同? 对于低于1ns 的变化结果是一个启动实例之后的结果、您可以看到例如下一个启动、 对齐时的变化可能是+5ns 到-10ns (基于您的第一个图)?

    校正对于相同的启动、开始停止 PTP 堆栈会产生相同的结果。

    此外,使用 testptp 开始停止1-PPS 输出,结果是相同的相位... 尽管我没有太多的周期。

    下面是我今天执行的测试、其中我对每个器件执行了"ifconfig eth0 down""ifconfig eth0 up"。  我打开/关闭1 PPS 时出现的大缺口。

    看起来这些不同的相位之间的间隔略小于2ns。  放大图。

    73、
    蒂莫西

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

    Timothy、您好!

    1PPS 是来自自定义 PTP 堆栈还是 Linux PTP 堆栈? 也就是说、您使用的 testptp 应用程序是调用自定义 PTP 堆栈来运行1-PPS、还是在"自检"下从 Linux 内核工具获得?  

    如果后者、您能否尝试运行 ptp4l 并检查生成的时间变化在不同电路板之间是否仍然存在引导之间的变化? 如果不是这样、并且似乎只是调用1-PPS 显示从引导到引导的变化、则可能与引导之间从 CPTS 到 SYNC_OUT 引脚的路径不一致...

    -道林

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是1-PPS 来自自定义 PTP 堆栈还是 Linux PTP 堆栈? 也就是说、您使用的 testptp 应用程序是调用自定义 PTP 堆栈来运行1-PPS、还是在"自检"下从 Linux 内核工具获得?  [/报价]

    使用 testptp 程序将其打开、从而获得1-PPS。  请注意、如果我在启动堆栈时将其打开、则必须在来自 PTP 堆栈的初始时间同步后将1PPS 关闭/打开。  我关闭/打开...

    /usr/bin/kselftests/ptp/testptp -d /dev/ptp0 -P 0
    /usr/bin/kselftests/ptp/testptp -d /dev/ptp0 -P 1

    注意、我正在使用:
    PROCESSOR-SDK-LINUX-RT - AM64X
    适用于 AM64x 的处理器 SDK RT-Linux

    版本:08.06.00.42
    发布日期:2023年2月27日

    uname -A 结果:
    Linux follower2 5.10.168-rt83-gc1a1291911 #1 SMP preempt_RT Mon Feb 27 14:03:20 UTC 2023 Aarch64 Aarch64 GNU/Linux

    如果后者,您可以尝试运行 ptp4l 并检查生成的时间变化(板到板)是否仍然存在引导到引导的变化?

    好的、我已经启动了一个测试来检查这一点。

    73、
    蒂莫西

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

    Timothy、

    感谢您进行澄清

    根据您的发现不断更新我的信息

    -道林

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

    您好!

    我的发现是1PPS 输出不会继续进行跟踪和漂移。  我需要启动/重新启动以保持 PTP4L 1-PPS 跟踪。  我认为这可能与错误相关: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1256953/sk-am62-pps-out-not-acting-as-expected

    否则、我认为不能使用 PTP4L 来解决此问题。

    例如、仅使用/忽略以太网端口会导致"量化"的相位误差、相位相差~7ns ~1.80ns。  但是、重启相位误差不是"量化"的、更具随机性。

    73、
    蒂莫西

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

    Timothy、您好!

    对于稍后的答复、我们深表歉意。 我需要一些时间来阅读你连接的主题,并将在明天作出回应。

    -道林

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

    Timothy、您好!

    我阅读了 https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1256953/sk-am62-pps-out-not-acting-as-expected 中描述的内容 以及相应的 Jira 请求(LCPD-36876)。 在我看来、客户在尝试与 ptp4l 同步之前首次启动1-PPS 的测试序列显示非同步1-PPS。 然后在启动1-PPS 后运行 ptp4l 会导致1-PPS 在重新启动1-PPS 信号之前未显示 ptp4l 同步的任何影响。  

     LCPD-36876中正在进行的讨论似乎正在讨论的是 、1 PPS 是否应根据 ptp4l 的实时同步进行更新、或者1 PPS 是否仅在您对 ptp4l 同步进行任何更改后重新启动后进行更新、这是1-PPS 的预期要求。 软件开发人员的一个结论是"先同步时钟、然后启用 PPS 信号可提供预期的功能"。  

    您发现 ptp4l 1-PPS 一段时间后漂移似乎与您提到的此讨论相关。 当您让 ptp4l 在后台运行或在1-PPS 同步后停止 ptp4l 时(1-PPS 漂移一段时间后)、是否会发生此漂移? 1-PPS 何时开始漂移? 当您收集有关从引导到引导的同步更改的数据时、是否在启动1-PPS 之前运行了 ptp4l 以获得同步?

    >>"否则、我不认为 PTP4L 是解决此问题的途径。"

    由于您使用的1 PPS 与 ptp4l 同步密切相关、我仍然认为值得调查 ptp4l 的任何潜在问题、看看它们是否可能影响生成的1 PPS。 但是、我会向 Pekka 核实这是不是调查您遇到的同步问题的正确方向。

    -道林

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

    对齐时的时间误差似乎为+5ns 至-10ns。

    如何改进这一点?

    [/报价]

    我认为这大约是1Gbit/s 基于 RGMII 的接口和 IEEE1588、125MHz 时钟以及异步边界(8ns)的限制。 例如 、https://www.ieee802.org/1/files/public/docs2021/60802-Alsup-Timestamp-Precision-0321-v01.pdf 突出显示了这些内容、并与 AVNU TSN 插件任务中看到的内容保持一致。