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.

[参考译文] TMDS64EVM:高抖动的 PPS 输出信号

Guru**** 2482225 points
Other Parts Discussed in Thread: TMDS64EVM

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1444184/tmds64evm-pps-out-signal-with-high-jitter

器件型号:TMDS64EVM

工具与软件:

您好!

我尝试使 PPS 输出与 PTP 同步。

我将详细说明如何获取 PPS 信号:

我使用的是一个国家仪器平台、其工作原理是 PTP 大师。 我可以从 NI 板获取 PPS 信号。

通过修改 DTB 文件、我可以在 SYNC1_OUT (EVM 板的接头 J12)上获得 PPS 信号。

/usr/kernel-selftest/ptp/testptp -d /dev/ptp0 -P 1

绿色信号是来自 NI 板的 PPS 信号;黄色信号为 SYNC1_OUT。

将 EVM 与 NI 的 PTP 同步后:

ptp4l -i eth0 -s -q -f /home/ptp.cfg -m > /home/ptp4l.log &
phc2sys -s eth0 -w -q -f /home/ptp.cfg -m > /home/phc2sys.log &

通过禁用 pps 信号并重新启用它、我得到一个似乎与 NI PPS 信号同步的 PPS 信号:

/usr/kernel-selftest/ptp/testptp -d /dev/ptp0 -P 0
/usr/kernel-selftest/ptp/testptp -d /dev/ptp0 -P 1

同步 PTP 似乎会同步 PPS 信号、但黄色信号(SYNC1_OUT)的偏移为30µs:

我想该命令可以纠正此偏移:

/usr/kernel-selftest/ptp/testptp -d /dev/ptp0 -n -30000

即使我能够纠正它、也无法预料到该偏移。 我是不是做错了什么?

此外、来自 SYNC1_OUT 的 PPS 信号的抖动约为1、3µs、在我看来似乎很高:

如何减少抖动?

Julien

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

    Julien、您好!

    该专家本周不在办公室、下周将回来。 请预计响应会延迟。 如果您尚未收到回复、请在下周星期四之前 Ping 此主题。


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

    Julien、您好!

    首先、我有一些初始问题

    1.您使用的是哪个 SDK 版本?

    2.您是使用 TMDS64EVM 还是使用通过 AM64x SoC 构建的定制 EVM?

    ]同步似乎是同步 PPS 信号、但黄色信号(SYNC1_OUT)的偏移为30µs

     每次同步 PPS 信号时、失调电压是否始终为30µs?

    运行以下 ptp4l 命令时、您能看到相同的偏移量吗? 我还提供了我的 gPTP.cfg 配置文件。 要点是将"priority1"更改为比 grandmaster gPTP.cfg 配置文件更小的值、以确保将 EVM 配置为时钟跟随器。

    ptp4l -P -2 -H -i eth0 -f gPTP.cfg --step_threshold=1 -m -q -p /dev/ptp0 > /dev/null &

    # 802.1AS example configuration containing those attributes which
    # differ from the defaults. See the file, default.cfg, for the
    # complete list of available options.
    #
    [global]
    gmCapable              1
    priority1              240
    priority2              248
    logAnnounceInterval    0
    logSyncInterval        -3
    syncReceiptTimeout     3
    neighborPropDelayThresh 800
    min_neighbor_prop_delay -20000000
    assume_two_step        1
    path_trace_enabled     1
    follow_up_info         1
    transportSpecific      0x1
    ptp_dst_mac            01:80:C2:00:00:0E
    network_transport      L2
    delay_mechanism        P2P
    ingressLatency         88
    egressLatency          288 


    Unknown 说:
    此外、来自 SYNC1_OUT 的 PPS 信号的抖动约为1、3µs、对我来说似乎很高

    I am trying to see if I can observe the same result. Are you triggering the rising edge of the PPS signal?

    -Daolin

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

    您好!

    感谢您的答复。

    1. 您使用的是哪个 SDK 版本?[/QUOT]

    我使用的是 SDK 10_00_07_04。

    2. 您使用的是 TMDS64EVM 还是通过 AM64x SoC 构建的定制 EVM?[/QUOT]

    我使用的是 TMDS64EVM。

     每次同步 PPS 信号时偏移是否始终为30µs?
    [/quote]

    今天重复相同的命令后、偏移量约为5µs。

    运行以下 ptp4l 命令时、您能看到相同的偏移量吗? 我还提供了我的 gPTP.cfg 配置文件。 要点是将"priority1"更改为比 grandmaster gPTP.cfg 配置文件更小的值、以确保将 EVM 配置为时钟跟随器。[/QUOT]

    我使用您的命令和配置文件对 PPS 信号没有任何更改。 PPS 信号似乎与该命令不同步。

    我已经尝试将 gPTP.cfg 中的优先级更改为较低的值、因为我的 grandmaster 的 priority1=128而 priority2=128。 这似乎没有任何变化。

    中的命令

    ptp4l -P -2 -H -i eth0 -f gPTP.cfg --step_threshold=1 -m -q -p /dev/ptp0

    查看输出消息:

    ptp4l[2472.182]: port 1 (eth0): INITIALIZING to LISTENING on INIT_COMPLETE
    ptp4l[2472.182]: port 0 (/var/run/ptp4l): INITIALIZING to LISTENING on INIT_COMPLETE
    ptp4l[2472.182]: port 0 (/var/run/ptp4lro): INITIALIZING to LISTENING on INIT_COMPLETE
    ptp4l[2475.809]: selected local clock 1c6349.fffe.1ad210 as best master

    选择的本地时钟是 eth0时钟、它不是我的主时钟。 我的 PPS 信号与主站不同步。

    选定的本地时钟之后不再出现消息。

    gPTP.cfg 中的所有行是否都是必需的?

    "gmCapable"行看起来很奇怪、因为我希望电路板处于客户端模式。

    我试图删除此行并降低了优先级值、但 ptp4l 命令仍选择本地时钟(eth0)。

    您是否触发了 PPS 信号的上升沿?

    我在我的主站 PPS 信号的上升沿触发。

    Julien

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

    尊敬的 Julien:

    >我尝试将 gPTP.cfg 中的优先级更改为较低的值、因为我的祖父具有 priority1=128和 priority2=128。 这似乎没有任何变化。

    要配置为主器件、priority1参数的值应低于时钟跟随器器件的 priority1参数值。 因此、您应该将 priority1值更改为比为您的主设备配置的数字更高的值。

    选定的本地时钟是 eth0时钟、这不是我的主时钟。 我的 PPS 信号与主中继器不同步。

    这是因为根据您对如何配置 priority1参数的说明、您的 TMD64EVM 是担任主控方角色的。 您需要将 priority1值更改为比您的主控上配置的值更高的值。

    我没有机会在今天的设置中测量 PPS 信号抖动、我将在本周的某个时间进行测量。

    -道林

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

    尊敬的 Daolin:

    [报价 userid="576780" url="~/support/processors-group/processors/f/processors-forum/1444184/tmds64evm-pps-out-signal-with-high-jitter/5549597 #5549597"]发生这种情况的原因是、根据您对 priority1参数配置方式的说明、您的 TMD64EVM 承担了 grandmaster 角色。 您需要将 priority1值更改为比您的祖父上配置的值更高的值。

    使用您共享的 gPTP.cfg、priority1参数高于我的 grandmaster 参数、我得到了相同的结果。

    我没有成功运行 ptp4l 并获得与 PTP 主站同步的 PPS 信号

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

    尊敬的 Julien:  

    只是为了清楚起见、您的测试拓扑如下所示?

    NI Device (grandmaster clock)<--Ethernet cable-->(eth0) 1x TMDS64EVM

    请给我一些时间、因为我将尝试在我的设置(2个连接的 TMDS64EVM)上运行 ptp4l 测试以进行验证  

    1.同步使用我共享的命令

    2. PPS 的抖动量程

    我计划在今天晚些时候或明天之前作出回应。

    -道林

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

    尊敬的 Daolin:

    [报价用户 id="576780" url="~/support/processors-group/processors/f/processors-forum/1444184/tmds64evm-pps-out-signal-with-high-jitter/5551660 #5551660"]

    只是为了清楚起见、您的测试拓扑如下所示?

    NI Device (grandmaster clock)<--Ethernet cable-->(eth0) 1x TMDS64EVM

    [报价]

    是的、就是这样。

    感谢您的输入、我成功地使用了该命令并将 TMDS64EVM 作为跟随器时钟进行同步。 主控方的某些配置与 TMDS64EVM 的配置不同。

    不过、SYNC1_OUT 上生成的 PPS 信号与我的主器件的 PPS 信号不同步。

    我希望此信号能够同步、因为它是从 PTP 生成的。 我错了吗?

    此外、该信号具有约1µs 的抖动、就我而言、抖动似乎很高。 我想使用此信号(PPS)在时钟跟随器的另一个平台上每秒同步时间。

    主时钟<-以太网->时钟跟随器(TMDS64EVM) <-PPS 信号->无法管理 PTP 的平台

    启动 TMDS64EVM 时、收到以下消息:

    [失败]启动同步系统和硬件时钟失败。

    我应该担心吗? DTS 文件中是否存在配置故障?

    此致、

    Julien

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

    尊敬的 Julien:

    很高兴您能够将 TMDS64EVM 作为跟随者时钟进行同步。  

    [报价 userid="631916" url="~/support/processors-group/processors/f/processors-forum/1444184/tmds64evm-pps-out-signal-with-high-jitter/5553327 #5553327"]

    不过、SYNC1_OUT 上生成的 PPS 信号与我的主器件的 PPS 信号不同步。

    我希望此信号能够同步、因为它是从 PTP 生成的。 我错了吗?

    [报价]

    只要在 testptp 程序运行之前 ptp4l 程序正在运行、PPS 信号就应该进行同步、因为它来自 PTP 时钟。

    [报价 userid="631916" url="~/support/processors-group/processors/f/processors-forum/1444184/tmds64evm-pps-out-signal-with-high-jitter/5553327 #5553327"]

    启动 TMDS64EVM 时、收到以下消息:

    [失败]启动同步系统和硬件时钟失败。

    我应该担心吗? DTS 文件中是否存在配置故障?

    [报价]

    这条消息是意外收到的、您能否共享包含此消息的整个 TMDS64EVM 引导日志? 您是否还启用了启动时运行的任何不属于默认  SDK 10_00_07_04 Linux 映像的启动程序(例如 systemd 或 initd 服务)?  

    我应该会在启动日志中看到以下消息:

    root@am64xx-evm:~# dmesg | grep ptp  
    [   1.673482] pps pps0: new PPS source ptp0
    [  14.148792] pps pps1: new PPS source ptp2

    -道林

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

    尊敬的 Julien:

    此消息并非意外、您能否共享包含此消息的整个 TMDS64EVM 引导日志?

    我想更正我之前关于此消息的陈述。 实际上、我在启动日志中也看到了这条消息。 我认为此错误消息是 systemd 服务"sync-clocks.service"的结果。 因为在我的设置中、PPS 信号会在两个 TMDS64EVM 之间同步、所以我认为此消息与大家看到的问题无关。

    [报价用户 id="631916" url="~/support/processors-group/processors/f/processors-forum/1444184/tmds64evm-pps-out-signal-with-high-jitter/5556486 #5556486"]

    主要的修改是在第942行进行的、因而我的 PPS 位于标头 J12上。

    我在 icssg1_iep0_pins_default 定义中添加了 d18、并删除了使用该引脚的 ecap0定义。

    启动 TMDS64EVM 后、我将电路板与 PTP 主站同步、并使用以下命令启用 pps 信号

    [/报价]
    感谢您的输入、我成功使用了此命令并将 TMDS64EVM 作为跟随者时钟同步。 主控方的某些配置与 TMDS64EVM 的配置不同。

    以下步骤是我在设置中同步 PPS 信号时使用的步骤。 您能否说明一下最后使用了哪个命令来同步电路板与 PTP 主站? (即您使用的是软件时间戳配置还是硬件时间戳配置?)

    您会在 PPS 信号之间看到多大的偏移? 这与您在原始 E2E 帖子中看到的步骤相同/类似吗?

    [报价用户 id="631916" url="~/support/processors-group/processors/f/processors-forum/1444184/tmds64evm-pps-out-signal-with-high-jitter/5556486 #5556486"]我在2个单独的电路板(两个 TMDS64EVM)上试用了该软件。

    您提到您有两个 TMDS64EVM、您能否确认您获得的结果与我在两个 TMDS64EVM (一个作为主 EVM、一个作为跟随器)上获得的结果相同?

    -道林