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:PRU_ICSSG 工业以太网分布式时钟同步输出

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1586804/am6442-pru_icssg-industrial-ethernet-distributed-clock-sync-output

器件型号: AM6442

您好、

根据此文档 www.ti.com/.../am6442.pdf、有多个 OUT 信号

PRG0_IEP0_EDC_SYNC_OUT0
PRG0_IEP0_EDC_SYNC_OUT1
PRG0_IEP1_EDC_SYNC_OUT0
PRG0_IEP1_EDC_SYNC_OUT1
PRG1_IEP0_EDC_SYNC_OUT0
PRG1_IEP0_EDC_SYNC_OUT1
PRG1_IEP1_EDC_SYNC_OUT0
PRG1_IEP1_EDC_SYNC_OUT1

 

在 AM64X-EVM 上、我们测试了 DTS 中提供的一个引脚、这很好

https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/arch/arm64/boot/dts/ti/k3-am642-evm.dts?h=ti-linux-6.12.y#n487

 

您能否确认 PRU 固件支持列表中的所有其他引脚作为 PPS 的输出引脚

谢谢

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

    您好、Milan、

    感谢您的查询!

    我将重新分配给 Sitara U-Boot / Linux 时间同步路由器 (CPTS) 软件专家。 请预计可能会有一些延迟。

    谢谢

    此致、

    Anastas Yordanov

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

    您可以使用 Timesync 路由器灵活地将这些信号中的任何信号路由到物理输出针脚。 这样、您就可以在不更改硬件连接的情况下选择特定引脚上显示的 EDC_SYNC 信号。

    请参阅 AM64x TRM 中的 10.3.2.3.1.2.1、了解时间同步路由器

    如下所示、可将 Timesync 路由器配置为将不同的信号路由到同一输出引脚(例如连接器 J18 上的 SYNC0_OUT 引脚):

    /* Base address for Timesync Event Introuter */
    #define CSL_TIMESYNC_EVENT_INTROUTER0_CFG_BASE  0xa40000UL
    
    /* Route ICSSG0_EDC0_SYNC0 to SYNC0_OUT pin */
    HWREG(CSL_TIMESYNC_EVENT_INTROUTER0_CFG_BASE + 0x4C) = 0x00010019;
    
    /* To switch to ICSSG0_EDC0_SYNC1 on the same pin */
    HWREG(CSL_TIMESYNC_EVENT_INTROUTER0_CFG_BASE + 0x4C) = 0x00010020;

    这些信号的 Timesync 路由器输入通道为:

    • Timesync_INTRTR0_IN_25:PRU_ICSSG0_PR1_EDC0_SYNC0_OUT_0
    • Timesync_INTRTR0_IN_26:PRU_ICSSG0_PR1_EDC0_SYNC1_OUT_0
    • Timesync_INTRTR0_IN_27:PRU_ICSSG0_PR1_EDC1_SYNC0_OUT_0
    • Timesync_INTRTR0_IN_28:PRU_ICSSG0_PR1_EDC1_SYNC1_OUT_0
    • Timesync_INTRTR0_IN_29:PRU_ICSSG1_PR1_EDC0_SYNC0_OUT_0
    • Timesync_INTRTR0_IN_30:PRU_ICSSG1_PR1_EDC0_SYNC1_OUT_0
    • Timesync_INTRTR0_IN_31:PRU_ICSSG1_PR1_EDC1_SYNC0_OUT_0
    • Timesync_INTRTR0_IN_32:PRU_ICSSG1_PR1_EDC1_SYNC1_OUT_0

    您可以通过将相应的输入通道编号写入输出通道的配置寄存器、将这些输入中的任何一个路由到所需的输出通道(例如 TIMESYNC_EVENT_INTROUTER0_OUTL_24)。

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

    请注意、您可以在 Linux 器件树文件中配置时间同步路由器。

    例如、
    arch/arm64/boot/dts/ti/k3-am642-evm.dts

    &timesync_router {
            /* Use Time Sync Router to map GENF1 input to HW8_TS_PUSH output. */
            mux-reg-masks-state = <
                    /* pps [cpts genf1] in22 -> out37 [cpts hw8_push] */
                    K3_TS_OFFSET(37, 0x0001ffff, 22)
                    /* iep-pps [iep sync_out0] in29 -> out23 [navss cpts hw8_push] */
                    K3_TS_OFFSET(23, 0x0001ffff, 29)
                    >;
            status = "okay";
    };
    

    几年前、您可以在 AM64x 时间同步路由器常见问题解答中找到更多信息:
    【常见问题解答】AM64x:时间同步路由器有什么用? 如何使用它? 

    此致、

    Nick

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

    尊敬的 Jayachandran:

    我知道您可以将这些信号路由到 CPTS、但 PRU 固件会在所有这些信号上生成 PPS 作为同步 PTP 信号?

    提前感谢

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

    只能根据您使用的 ICSS 实例启用 EDC0_SYNC0 和 EDC0_SYNC1。  您必须  在固件中启用 SYNC1 功能。

    //Write to memory to enable SYNC1 every cycle
    HWREGB(sharedDramBaseaddress + TIMESYNC_FW_WC_ISOM_PIN_SIGNAL_EN_OFFSET) = 0x01

    BR
    Jc.