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.

[参考译文] AM625:通过 CPTS 生成外部事件的时间戳

Guru**** 2399305 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1485758/am625-timestampe-externel-events-via-cpts

器件型号:AM625

工具与软件:

您好!

我想使用 CPTS 模块的 HW-TS-Push 功能以特定频率对事件进行时间戳。

为此、我使用了 TSR 的引脚 CP_GEMAC_CPTS0_HW1TSPUSH 作为输入(TSR 输入12)、然后将信号路由到 CPTS 的 CPTS-HW1-TS-Push (TSR 输出10)

所有引脚多路复用配置都在相应 DTS 中正确完成。

但是、我无法使用 testptp 工具测量任何输入事件。

我怎么可能做错了?

BR

Zain

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

    您好、Zain、

    请提供补充信息。

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

    2)您对 DTS 文件进行了哪些更改?

    3) 3)您将输入信号连接到哪个引脚/接头?

    4) 4)您是如何从软件端运行测试的?

    此时、我还没有使用 testptp 作为常规时间戳。 乍一看、我不确定它是否可以这样使用、或者它是否专门用于以太网 PTP 通信。

    此致、

    Nick

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

    您好、Nick。

    • 版本 09.02.01.10
    • 我将此添加到 DTS 中:
      • &timesync_router {
                status = "okay";
                pinctrl-names = "default";
                pinctrl-0 = <&cpsw_cpts>;
        
                cpsw_cpts: cpsw-cpts {
                        pinctrl-single,pins = <
                                     .
                                     .
                                     .
                                /* TS Push Pin [CP_GEMAC_CPTS0_HW1TSPUSH] in12 -> out12 [cpsw cpts hw1_push] */
                                K3_TS_OFFSET(10, 12)
                                >;
                };
        };
        
        
      • &main_pmx0 {
                
                .
                .
                .
                cpsw3g1_pins_default: cpsw3g1-default-pins {
                        pinctrl-single,pins = <
                                AM62X_IOPAD(0x01c0, PIN_INPUT, 1) /* (B13) SPI0_D0.CP_GEMAC_CPTS0_HW1TSPUSH */
                        >;
                };
        
        
        
        };
        
    • 我使用 Variscite 的合成板。 我使用了 J10。 首先、我禁用了用于消化道接触的 SPI 接口、因为我使用相同的  CP_GEMAC_CPTS0_HW1TSPUSH 引脚、但我根本不使用它。
      • &main_spi0 {
                status = "disable";
                pinctrl-names = "default";
                pinctrl-0 = <&main_spi0_pins_default>;
                ti,pindir-d0-out-d1-in = <1>;
        
                ads7846@0 {
        
                        status = "disable";
                };
        };
        
        
    • 我使用 testptp 工具和以下命令运行 testes:
      •     testptp -d /dev/ptp0 -e 10 -i 2   
        

    当然、testptp 特定于 PTP。 我有 ptp0接口已准备就绪、它工作正常。

    您是否还有 其他工具来测量时间戳?

    BR

    Zain

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

    您好、Zain、

    问得好。 在 drivers/net/ti 之外、我没有看到任何使用 CPTS 进行时间戳的内核驱动器。 请给我几天时间、询问是否存在我不知道的预先存在的代码。

    您能详细介绍一下您的用例吗?

    当然、我们也支持使用 ECAP 来采集时间戳。 因此、这可能是适用于您用例的更简单的解决方案。 有关更多信息、请参阅该主题:
    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1242640/am625-ecap/4766153#4766153

    此致、

    Nick

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

    您好、Nick。

    您有任何新信息吗?

    在 /sys/class/ptp/ptp0中、我可以启用 exts_enable。 我收到以下错误:

    root@am62x-var-som:~# echo 1 > /sys/class/ptp/ptp0/extts_enable 
    -bash: echo: write error: Invalid argument
    
    root@am62x-var-som:/sys/class/ptp/ptp0# cat extts_enable 
    cat: extts_enable: Permission denied

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

    您好、Nick。

    我想使用 CPTS 中的 HW-TS 功能来为外部频率设置时间戳。 我已经成功实现了 eCAP、但是发现时间戳只引用了一个32位计数器。 因此、输入事件根据计数器值添加时间戳、而不是像 CPT 那样基于系统时间。 当然、我可以测量每个时间戳的当前时间。 我不想这样做、因为 CPT 的 HW TS 会自动执行、并且比 eCAP 精确得多。

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

    您好、Zain、

    我还没有玩 exts_enable 功能。 似乎您需要写入信道索引、后跟一个"1"以从该信道启用时间戳: https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-ptp

    还可以、一般般…… 每个通道是什么?

    看起来像 entry n_external_timestamp、告知我们提供了多少个外部时间戳通道。 我不清楚到底有多少个通道、以及它们如何映射到 CPTS 输入、就在我头顶。 但是、通过试错、我们有望确定是否有与 HWxTSPUSH 关联的通道。

    此致、

    Nick