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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1502724/tmds64evm-pps-offset

器件型号:TMDS64EVM

工具/软件:

您好:

我正在尝试从 TMDS64EVM 生成 PPS 输出。 但它的失调电压约为3µs。

借助使用 ptp4l 和 phc2sys 的 PTP 主控、我同步了 TMDS64EVM。

ptp4l 的命令:

ptp4l -i eth0 -q -f /home/ptp4l.cfg


使用 ptp4l.cfg:

[global]
tx_timestamp_timeout    10
domainNumber 0
step_threshold 0.5
[eth0]

和 phc2sys:

phc2sys -s eth0 -w -q -f /home/phc2sys.cfg

phc2sys.cfg:

[global]
tx_timestamp_timeout    10
domainNumber 0
[eth0]

这些命令似乎能完成工作并使我的平台与我的祖母同步。

然后、我使用以下命令从 TMDS64EVM 生成 PPS 输出:

echo 1 > /sys/class/ptp/ptp0/pps_enable

我有一个与我的爷爷同步的 NI 板、可用作 PPS 信号的参考。

以下是我的结果:

我期望 PPS 输出与基准 PPS 信号同步。

Julien

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

    您好 Julien、

    您使用的是哪个版本的 Linux Processor SDK?

    此致、

    Nick

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

    您好、Nick、

    我们使用的是 SDK 10_00_07_04。

    此致、

    Julien

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

    您好 Julien、

    还有几个问题

    1.将 TMDS64EVM 用作时钟跟随器与主控器件同步时、您看到的输出是什么? 即、运行"ptp4l -i eth0 -q -f /home/ptp4l.cfg 时的输出是什么?

    2.您能否测试/usr/bin/kselftests/ptp/testptp -d /dev/ptp0 -P 1来查看行为是否发生变化,而不是"echo 1 >/sys/class/ptp/ptp0/pps_enable "?

    3.什么是你的祖母设备? 您是否能够从您的主控设备测量 PPS?

    -道林

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

    您好、Daolin、

    1. 如果我在 ptp4l 之前激活我的 PPS 输出、我会得到一个未同步的 pps、并且必须停用并重新激活它("testptp -d /dev/ptp0 -P 0"、然后是"testptp -d /dev/ptp0 -P 1")。

    如果我运行 ptp4l、然后运行 testptp、则会获得上述相同的结果。

    1. 我在以下路径上找到 testptp:"/usr/kernel-selftest/ptp/testptp "。 但是、结果似乎并不改变。 我在当前测试中使用了 testptp。
    2. 它是 Omicron 实验室的 GPS 天线。 如有需要、将参阅以获取参考。

    我无法直接从它获得 PPS 信号、但我们过去进行了几项测试、这些测试已经证明是确凿的。

    此致、

    Julien

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

    您好 Julien、

    1. 将 TMDS64EVM 用作时钟跟随器与主控器件同步时、您看到的输出是什么? 即运行"ptp4l -i eth0 -q -f /home/ptp4l.cfg 时输出是什么?
    1. 如果我在 ptp4l 之前激活我的 PPS 输出、我会得到一个未同步的 pps、并且必须停用并重新激活它("testptp -d /dev/ptp0 -P 0"、然后是"testptp -d /dev/ptp0 -P 1")。

    如果我运行 ptp4l、然后运行 testptp、则会获得上述相同的结果。

    [/报价]

    我想知道您是否可以显示 ptp4l 的日志输出(我认为您还必须添加"-m"选项才能查看日志/打印到标准输出)、因此类似"ptp4l -i eth0 -q -f /home/ptp4l.cfg -m"。 作为第一次检查、我希望看到一些日志显示随着时间的推移、相对于主时钟随着时间的推移而减少的偏移量。  

    这是 Omicron 实验室的 GPS 天线。 如果需要、将查看以供参考。

    您的主设备(此 GPS 天线)是否能够运行 ptp4l (Linuxptp)?

    此外、如果有机会、假设您要在 CPSW 以太网上测试 PTP、请尝试运行"ptp4l -P -2 -H -i eth0 -f gPTP.cfg \--step_threshold=1 -m -q -p /dev/ptp0、其中 gPTP.cfg 如下所示、并且查看行为是否发生变化。

    # 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 96
    egressLatency 288

    -道林

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

    尊敬的 Daolin:

    我想知道您是否可以显示 ptp4l 的日志输出(我认为您还必须添加"-m"选项才能查看日志/打印到标准输出)、例如"ptp4l -i eth0 -q -f /home/ptp4l.cfg -m"。 作为第一次检查、我希望看到一些日志显示随着时间的推移、相对于主时钟随着时间的推移而减少的偏移量。  [/报价]

    这是输出、我认为是正确的:

    ptp4l[131.514]: selected /dev/ptp0 as PTP clock
    ptp4l[131.529]: port 1 (eth0): INITIALIZING to LISTENING on INIT_COMPLETE
    ptp4l[131.530]: port 0 (/var/run/ptp4l): INITIALIZING to LISTENING on INIT_COMPLETE
    ptp4l[131.530]: port 0 (/var/run/ptp4lro): INITIALIZING to LISTENING on INIT_COMPLETE
    ptp4l[132.020]: port 1 (eth0): new foreign master 20b7c0.fffe.007da2-1
    ptp4l[136.023]: selected best master clock 20b7c0.fffe.007da2
    ptp4l[136.023]: port 1 (eth0): LISTENING to UNCALIBRATED on RS_SLAVE
    ptp4l[137.496]: master offset      -9587 s0 freq   +3983 path delay      6998
    ptp4l[138.499]: master offset     -10074 s2 freq   +3497 path delay      6955
    ptp4l[138.499]: port 1 (eth0): UNCALIBRATED to SLAVE on MASTER_CLOCK_SELECTED
    ptp4l[139.503]: master offset      -9801 s2 freq   -6304 path delay      6955
    ptp4l[140.505]: master offset       1590 s2 freq   +2147 path delay      5330
    ptp4l[141.508]: master offset       2488 s2 freq   +3522 path delay      5877
    ptp4l[142.512]: master offset       2012 s2 freq   +3792 path delay      6424
    ptp4l[143.515]: master offset       1639 s2 freq   +4023 path delay      6603
    ptp4l[144.518]: master offset       1205 s2 freq   +4080 path delay      6603
    ptp4l[145.521]: master offset        694 s2 freq   +3931 path delay      6786
    ptp4l[146.524]: master offset        161 s2 freq   +3606 path delay      6786
    ptp4l[147.527]: master offset        277 s2 freq   +3770 path delay      6793
    ptp4l[148.531]: master offset         41 s2 freq   +3617 path delay      6817
    ptp4l[149.534]: master offset         -3 s2 freq   +3586 path delay      6817
    ptp4l[150.537]: master offset       -121 s2 freq   +3467 path delay      6886
    ptp4l[151.540]: master offset       -209 s2 freq   +3343 path delay      6893
    ptp4l[152.543]: master offset         26 s2 freq   +3515 path delay      6836
    ptp4l[153.547]: master offset        236 s2 freq   +3733 path delay      6836
    ptp4l[154.549]: master offset       -190 s2 freq   +3377 path delay      6872
    ptp4l[155.553]: master offset        180 s2 freq   +3690 path delay      6830
    ptp4l[156.556]: master offset         19 s2 freq   +3583 path delay      6830
    ptp4l[157.558]: master offset        -54 s2 freq   +3516 path delay      6837
    ptp4l[158.561]: master offset       -247 s2 freq   +3307 path delay      6837
    ptp4l[159.565]: master offset        -53 s2 freq   +3427 path delay      6835
    ptp4l[160.567]: master offset         21 s2 freq   +3485 path delay      6835
    ptp4l[161.571]: master offset        209 s2 freq   +3679 path delay      6835
    ptp4l[162.574]: master offset         58 s2 freq   +3591 path delay      6835
    ptp4l[163.578]: master offset       -288 s2 freq   +3262 path delay      6860
    ptp4l[164.581]: master offset        209 s2 freq   +3673 path delay      6783
    ptp4l[165.584]: master offset       -194 s2 freq   +3333 path delay      6808
    ptp4l[166.587]: master offset        193 s2 freq   +3661 path delay      6753
    ptp4l[167.590]: master offset       -188 s2 freq   +3338 path delay      6753

    此外、如果您有机会在 CPSW 以太网上测试 PTP、请尝试运行"ptp4l -P -2 -H -I eth0 -f gPTP.cfg \--step_threshold=1 -m -q -p /dev/ptp0、其中 gPTP.cfg 如下所示、查看行为是否发生了变化。

    输出:

    ptp4l[1767.930]: selected /dev/ptp0 as PTP clock
    ptp4l[1767.951]: port 1 (eth0): INITIALIZING to LISTENING on INIT_COMPLETE
    ptp4l[1767.951]: port 0 (/var/run/ptp4l): INITIALIZING to LISTENING on INIT_COMPLETE
    ptp4l[1767.952]: port 0 (/var/run/ptp4lro): INITIALIZING to LISTENING on INIT_COMPLETE
    ptp4l[1771.639]: selected local clock 1c6349.fffe.1ad759 as best master

    它不会使用此命令选择主时钟作为最佳时钟、而是使用自己的时钟。

    Julien

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

    您好 Julien、  

    对于"ptp4l -i eth0 -q -f /home/ptp4l.cfg -m"、您能否添加"-H"选项并查看这是否会更改输出以获得更小的偏移?

    我们现在就在 SDK 10_00_07_04上。

    您是否可以在 SDK 10.1 (10.01.10.04)或更高版本上进行测试?

    对于您的应用、是否需要使用 CPSW 以太网接口(TMDS64EVM 上默认为 eth0)与使用 PRU_ICSSG 以太网接口(TMDS64EVM 上默认为 eth2)? 如果您能够在 SDK 10.1或更高版本上进行测试(作为完整性检查)、您能否在 PRU_ICSSG 以太网上运行 PTP 时检查 PPS 信号、并查看是否观察到相同的行为(3微秒偏移)? 对于 PRU_ICSSG、必须是 SDK 10.1或更高版本、因为已修复较旧 SDK 版本中的 PPS 同步问题。

    -道林

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    对于"ptp4l -i eth0 -q -f /home/ptp4l.cfg -m"、您能否添加"-H"选项并查看这是否会将输出更改为具有更小的偏移量?

    它不会改变失调电压。

    对于您的应用、是否要求使用 CPSW 以太网接口(TMDS64EVM 上默认为 eth0)与使用 PRU_ICSSG 以太网接口(TMDS64EVM 上默认为 eth2)? 如果您能够在 SDK 10.1或更高版本上进行测试(作为完整性检查)、您能否在 PRU_ICSSG 以太网上运行 PTP 时检查 PPS 信号、并查看是否观察到相同的行为(3微秒偏移)? 对于 PRU_ICSSG、该 SDK 必须是 SDK 10.1或更高版本、因为已修复了旧 SDK 版本中的 PPS 同步问题。

    我在10.01.10.04上使用两个 TMDS64EVM 进行了测试:

    ptp4l -i eth2 -q -H -2 -P

    而另一个带有参数'-s'。

    我得到的结果好得多:失调电压近0ns、抖动极低(约100ns)。

    我相信我的爷爷使用的是 IPv4协议、而不是 IEEE 802.3协议。 我需要确认一下。

    我使用了两个 TMDS64EVM 尝试了命令

    ptp4l -i eth2 -q -H -m

    在客户端板上:添加自变量'-s'以用作客户端。

    与之前没有"-P"和"-2"的命令相同。

    我理解正确、它应该适用于 IPv4和 E2E、因为这些是默认参数。

    在此配置下、客户端板不会与我的第一个主板同步。 它选择本地时钟作为最佳主时钟。

    这是预期行为吗?

    与 TMDS64EVM 配合使用是否需要 P2P 和/或 IEEE 802.3传输协议?

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

    您好 Julien、  

    我得到了更好的结果:几乎0ns 的偏移和非常低的抖动(大约100ns)。

    很高兴听到使用 SDK 10.01.10.04上的 eth2时、您能够看到更合理的偏移。 只是为了确认、是否需要在您的应用中使用 CPSW 以太网(eth0)或 PRU_ICSSG 以太网(eth2)?

    [引述 userid="631916" url="~/support/processors-group/processors/f/processors-forum/1502724/tmds64evm-pps-offset/5785354 #5785354"]

    我理解正确、它应该适用于 IPv4和 E2E、因为这些是默认参数。

    在此配置下、客户端板不会与我的第一个主板同步。 它选择本地时钟作为最佳主时钟。

    这是预期行为吗?

    [/报价]

    ptp4l (Linux PTP)是一种通用 Linux 应用程序/实用程序工具、可由 TI SDK 启用的 Linux 文件系统。 但是、TI 并不是 Linux PTP 提供选项的专家、因为这更多是一个特定于应用的问题、因此我无法确定 IPv4和 E2E 是否是默认参数。 查看 ptp4l 联机帮助页、我实际上没有看到任何指示、这是默认配置。  

    与 TMDS64EVM 配合使用时是否需要 P2P 和/或 IEEE 802.3传输协议?

    我们尚未针对带有 TMDS64EVM 的 PTP 的所有不同变体进行专门测试、这些只是我们 SDK 文档中显示的那些变体。 这并不是说使用 Linux PTP 的其他 PTP 变体将不起作用,只是它可能会导致一些不跟踪的行为,因为我们以前没有测试过它。

    https://software-dl.ti.com/processor-sdk-linux/esd/AM64X/latest/exports/docs/linux/Foundational_Components pTP/Kernel/mac/Network/cPSW-ptphtml#ptp-with-normal-clock-mac-mode Kernel_Drivers

    https://software-dl.ti.com/processor-sdk-linux/esd/AM64X/latest/exports/docs/linux/Foundational_Components pTP/PRU-ICSS/PRU_ICSSG Ethernet_Switch Linux_Drivers

    -道林

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

    尊敬的 Daolin:

    感谢您一如既往的快速答复。

    很高兴听到在 SDK 10.01.10.04上使用 eth2时、您可以看到更合理的偏移。 只是为了确认、是否需要在您的应用中使用 CPSW 以太网(eth0)或 PRU_ICSSG 以太网(eth2)?

    我不仅限于使用 CPSW 或 PRU_ICSSG。

    ptp4l (Linux PTP)是一款通用 Linux 应用程序/实用程序工具、可由 TI SDK 恰好启用的 Linux 文件系统。 但是、TI 并不是 Linux PTP 提供选项的专家、因为这更多是一个特定于应用的问题、因此我无法确定 IPv4和 E2E 是否是默认参数。 查看 ptp4l 联机帮助页、我实际上没有看到任何指示、这是默认配置。  [/报价]

    我认为这是对我的误解、因为使用两个 TMDS64EVM、一切都运行良好:一个作为主控、另一个作为从控。

    我将继续与使用的祖母进行进一步的测试、因为偏移量仍然存在。

    我想知道、我在 SD 卡上刷写了 SDK 10.01.10.04。 我在没有对电路板或 SD 卡进行任何修改的情况下将其插入 TMDS64EVM。

    启动时一切正常-或者至少没有错误、但对于硬件时钟、我得到以下信息:

    [FAILED] Failed to start Synchronize System and HW clocks.

    这是预料之中的吗? 两个单独的 TMDS64EVM 上出现了"失败"错误。

    此致、

    Julien

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

    另一个问题是、

    PPS 输出生成的 Pps 信号是否考虑了路径延迟(由 ptp4l 日志指示)?

    Julien

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引述 userid="631916" url="~/support/processors-group/processors/f/processors-forum/1502724/tmds64evm-pps-offset/5787811 #5787811"]

    启动时一切正常-或者至少没有错误、但对于硬件时钟、我得到以下信息:

    全屏
    1.
    [失败]无法启动同步系统和硬件时钟。
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    这是预料之中的吗? 两个单独的 TMDS64EVM 上出现了"失败"错误。

    [/报价]

    我认为此消息是同步时钟服务的结果。 据我所知、我认为这对于本地 PTP 同步不是必要的。 根据我对该服务的作用进行的一些快速研究、我认为它只是为了将系统时钟和硬件时钟同步到远程时间服务器(例如互联网)。 据我所知、目前在 SDK 10.1上默认显示此消息、但实际上不会导致 PTP 同步出现任何功能问题。

    Starting Synchronize System and HW clocks...
    [FAILED] Failed to start Synchronize System and HW clocks.
    See 'systemctl status sync-clocks.service' for details.

    PPS 输出生成的 pps 信号是否考虑了路径延迟(由 ptp4l 日志指示)?

    据我所知、路径延迟是 PTP 同步报文从主时钟传输到跟随者时钟再返回并用于补偿时钟之间网络延迟所需的时间。 另一方面、据我所知、PPS 只是用于指示 PTP 网络中的器件之间的同步情况、应反映 ptp4l 使用路径延迟的同步情况。  

    我不确定这是否有助于解决您的问题。 如果没有、您能详细说明一下"根据 pps 信号考虑"的含义吗?

    -道林