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:通过 MCU+ SDK 禁用 MAC 侧延迟

Guru**** 2774995 points

Other Parts Discussed in Thread: AM6442, SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1617881/am6442-disable-mac-side-delay-through-mcu-sdk

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

我想确认 CPSW RGMII 接口上的 AM6442 Mac 端口没有延迟。 我在网上看到了几个通过设备树执行此操作的示例、这些示例通过设置“rgmix"而“而不是“rgmii-id",“,如下、如下所示:

&cpsw_port1 {

phy-mode = "rgmii"; /* Change this to disable MAC delays */

phy-handle = <&phy0>; };

当通过 R5 处理器使用 MCU+ SDK 时、哪里可以确认 RGMII 设置了且没有 MAC 延迟? 如果您可以在 enet_layer2_cpsw 示例中指出如何处理该问题、可以将其应用到我们的自定义电路板配置中。

谢谢、

Ryan

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

    您好、Ryan、

    所有带有 R5 (RTOS) 的 MCU+ SDK 示例都将默认配置标准延迟。 如果您的电路板设计允许无延迟运行、您可以使用相应的值更新 SysConfig、应用程序会将其配置为您没有延迟。 您可以在 SysConfig-GUI 的以下位置找到延迟配置:

    ETHPHY (ENET CPSW/ICSS)> 扩展配置> Tx/ENET Rx 延迟(以 ps 为单位)

    您可以将延迟调整到亚纳秒级。

    您能告诉我们您为什么希望消除延迟吗? 通过了解您的用例、我们可以为您推荐任何更好的替代方案(如有)。

    谢谢。此致、
    Teja。

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

    我们看到 TX 时钟和 TX 数据从 CPU 到 PHY 之间存在~9.90ns 的延迟。 从 PHY 到 CPU 的 Rx 时钟和数据正确、为 2ns。 根据 TI 示例、使用以下 PHY 配置:

    static const Dp83867_Cfg gEnetCpbBoard_dp83867PhyCfg =
    {
    /* The delay values are set based on trial and error and not tuned per port of the evm */
        .txClkShiftEn         = false,
        .rxClkShiftEn         = true,
        .txDelayInPs          = 250U,   /* 0.25 ns */
        .rxDelayInPs          = 2000U,  /* 2.00 ns */
        .txFifoDepth          = 4U,
        .impedanceInMilliOhms = 35000,  /* 35 ohms */
        .idleCntThresh        = 4U,     /* Improves short cable performance */
        .gpio0Mode            = DP83867_GPIO0_LED3,
        .gpio1Mode            = DP83867_GPIO1_COL, /* Unused */
        .ledMode              =
        {
            DP83867_LED_LINKED,         /* Unused */
            DP83867_LED_LINKED_100BTX,
            DP83867_LED_RXTXACT,
            DP83867_LED_LINKED_1000BT,
        },
    };

    我们尝试将 txClkShiftEn 设置为 false 和 true。 尝试确定来自 AM6442 侧的延迟源。

    我没有看到您通过 CCS 在 SYSCFG 中提到的设置、但我想这包含了上面所示的定制电路板文件。  

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

    您好、

    是的、这是我所指的配置。 9.9ns 延迟高于预期。 您能否 确认“skipExtendedCfg"选项“选项是否设置为 false?  txClkShiftEn 的延迟值是否为 true 和 false 相同?  

    请提供 RGMII 延迟控制寄存器 (0x0086) 和 RGMII 控制寄存器 (0x0032) 的 PHY 寄存器转储。 此外、您能否提供有关在电路板上进行延迟测量的确切位置的信息?

    谢谢。此致、
    Teja。

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

    是、skip ExtendedCfg 设置为 false。

    设置为 true 或 false 时、txClkShiftEn 的延迟值相同。

    我们使用的是 linkCfg->SPEED   = ENET_SPEED_100Mbit; linkCfg->双工= ENET_DUPLEX_FULL;

    测试点为 R310 和 R314、电阻器非常靠近驱动器(小于 100mil)。

    我将发布 PHY 寄存器输出的另一个更新。

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

    您好、Ryan、

    链接配置和 skip ExtendedCfg 看起来正确。 txClkShiftEn 的行为看起来可疑。 一旦我们有可用的寄存器转储、我将尝试邀请 PHY 团队专家来提供支持。

    谢谢。此致、
    Teja。

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

    尊敬的 Teja:

    在启用自动协商的情况下、我能够以千兆速度访问更好的范围和测试。 在较快的速度下、我看到时钟和数据之间的延迟是 2ns 或者更小。 我们的硬件团队希望延迟时间在任何速度下都是相同的。 您是否知道这是 AM64x 的一项功能、其延迟是否会随速度而变化?

    谢谢、

    Ryan

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

    您好、Ryan、

    AM64x 的设计是在考虑目标中的 1Gbps 运行速率来完成的。 默认配置还针对 1 千兆位速度进行了校准。 我必须咨询我们的硬件团队、以便更好地了解 100Mbps 链路情况下的延迟行为。

    您的应用在以 100Mbps 配置传输数据包时是否观察到任何错误?  

    我将与我们的团队核实,并在 3-4 个工作日内恢复 1G 和 100 米链路之间的这种行为。  

    谢谢。此致、
    Teja。