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.

[FAQ] [参考译文] 【常见问题解答】LP-AM261:在 AM261x LaunchPad 上运行 gPTP Timesync 应用程序

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1532115/faq-lp-am261-running-gptp-timesync-applications-on-am261x-launchpad

器件型号:LP-AM261

工具/软件:

尊敬的专家:

您能帮我解决以下有关使用 v10.02 SDK 在 AM261x-LP 上运行 gPTP (IEEE802.1AS) 示例的问题吗?

  1. 使用 DP83826 工业 PHY 附加电路板运行 gPTP 示例时、我看不到“Any Time Sync“?
  2. 在启用两个 MAC 端口的情况下运行 gPTP 示例(例如对于 AM263x 和 AM263Px)时、我会遇到 ti_board_config.c 中的一些断言)?

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

    在 AM261x-LP PROC E1 和 PROC E2 版本上、RMII 接口中存在已知的连接问题。 使用 DP83826 工业附加 PHY 进行测试时、建议在 100M MII 接口模式下试用。  这需要在 SDK 中进行一些基本的更改和检查。

    步骤 1:在以下文件 (mcu_plus_sdk_am261x_10_02_00_15\source\networking\tns\tns-stack\tns_combase\tilld\Sitara\lldenet.c) 中、将函数 (LLDEnetGetLinkInfo ())) 替换为以下定义、以启用 MII 模式支持。

    int LLDEnetGetLinkInfo(LLDEnet_t *hLLDEnet, uint8_t portNum,
        uint32_t *speed, uint32_t *duplex)
    {
    #if !ENET_ENABLE_PER_ICSSG
        EnetPhy_GenericInArgs phyInArgs;
     
        EnetMacPort_LinkCfg phyOutArgs;
     
        Enet_IoctlPrms prms;
     
        int32_t status;
     
        if ((hLLDEnet == NULL) || (speed == NULL) || (duplex == NULL)) {
            return LLDENET_E_PARAM;
        }
     
        /* Get port link state (speed & duplexity) from PHY */
     
        phyInArgs.macPort = (Enet_MacPort)(ENET_MACPORT_NORM(portNum));
     
        ENET_IOCTL_SET_INOUT_ARGS(&prms, &phyInArgs, &phyOutArgs);
     
        ENET_IOCTL(hLLDEnet->hEnet, hLLDEnet->coreId,
     
        ENET_RPHY_IOCTL_GET_LINK_MODE, &prms, status);
     
    #else
     
        Enet_MacPort phyInArgs;;
        EnetMacPort_LinkCfg phyOutArgs;
        Enet_IoctlPrms prms;
        int32_t status;
     
        if ((hLLDEnet == NULL) || (speed == NULL) || (duplex == NULL)) {
            return LLDENET_E_PARAM;
        }
     
        /* Get port link state (speed & duplexity) from PHY */
        phyInArgs = (Enet_MacPort)(ENET_MACPORT_NORM(portNum));
        ENET_IOCTL_SET_INOUT_ARGS(&prms, &phyInArgs, &phyOutArgs);
        ENET_IOCTL(hLLDEnet->hEnet, hLLDEnet->coreId,
        ENET_PER_IOCTL_GET_PORT_LINK_CFG, &prms, status);
     
    #endif
        if (status != ENET_SOK) {
            UB_LOG(UBL_ERROR,"Failed to get link info: %d\n", status);
            return LLDENET_E_IOCTL;
        }
     
        if (phyOutArgs.speed == ENET_SPEED_10MBIT) {
            *speed = 10;
        } else if (phyOutArgs.speed == ENET_SPEED_100MBIT) {
            *speed = 100;
        } else if (phyOutArgs.speed == ENET_SPEED_1GBIT) {
            *speed = 1000;
        } else {
            *speed = 0;
        }
     
        if (phyOutArgs.duplexity == ENET_DUPLEX_FULL) {
            *duplex = 1;
        } else {
            *duplex = 0;
        }
     
        return LLDENET_E_OK;
    }

    步骤 2: 使用以下命令重新构建 TSN 堆栈:

    # TO CLEAN
    gmake -sj -f makefile.am261x tsn_combase-freertos_r5f.ti-arm-clang_clean
    gmake -sj -f makefile.am261x tsn_gptp-freertos_r5f.ti-arm-clang_clean
    gmake -sj -f makefile.am261x tsn_unibase-freertos_r5f.ti-arm-clang_clean
    gmake -sj -f makefile.am261x tsn_uniconf-freertos_r5f.ti-arm-clang_clean
     
    # TO BUILD
    gmake -sj -f makefile.am261x tsn_combase-freertos_r5f.ti-arm-clang
    gmake -sj -f makefile.am261x tsn_gptp-freertos_r5f.ti-arm-clang
    gmake -sj -f makefile.am261x tsn_unibase-freertos_r5f.ti-arm-clang
    gmake -sj -f makefile.am261x tsn_uniconf-freertos_r5f.ti-arm-clang
     
    add PROFILE=debug flag for a debug build

    步骤 3:如果使用两个 MAC 端口、请在 gptp_cpsw_app 的 example.syscfg 中确保 MAC Port-2 已启用并设置了 pinmux(您应该会看到两个端口都勾选了所有复选框)。 如果仅使用 1 个端口、请确保在 syscfg 中选择所需的端口并禁用其他端口。 在运行时、确保通过 PHY 活动日志看到 MAC 端口链路建立。

    步骤 4: 在 example.syscfg 中、如果您在 ti_board_config.c 第 408 行中观察到断言、请将 MAC 地址分配更改为 MANUAL。 这表示 EEPROM 的 MAC 地址分配失败。

    步骤 5: 在 example.syscfg 中、确保在 DP83826 工业附加电路板的 Enet (CPSW) pinmux 中选择了 MII 模式

    第 6 步:Re 构建应用程序以使用更新的堆栈

    步骤 7:使用 AM261x 进行测试。

    要了解有关测试 gPTP 的更多信息、请遵循 AM261x gPTP 测试的详细常见问题解答: e2e.ti.com/.../faq-am2612-how-to-test-gptp-on-am261x-launchpad

    此致、
    Shaunak