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.

[参考译文] LP-AM261:使用单个以太网附加电路板的 EtherCAT 示例问题

Guru**** 2763595 points

Other Parts Discussed in Thread: DP83826E

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1576675/lp-am261-issue-with-ethercat-example-using-single-ethernet-add-on-board

器件型号:LP-AM261
主题中讨论的其他器件:DP83826E

工具/软件:

您好、
我目前正在使用 SDK 版本 ind_comms_sdk_am261x_10_02_00_17 与 LP AM261x 合作、具体而言是 EtherCAT 子器件 Beckhoff SSC 演示示示例。 我在尝试仅连接一个以太网附加电路板的情况下运行示例时遇到问题。
设置详细信息:
  PHY:以太网附加组件仅连接在以太网连接器 0 上
  以太网连接器 1:留空(无 PHY)
  syscfg 配置片段:
  const EtherCAT     = scripting.AddModule(“/INDUSTRIAL_COMMs/EtherCAT/EtherCAT",“,{、{}、false);
  const ethercat1    = EtherCAT.addInstance ();
   
  ethercat1.name        =“CONFIG_ETHERCAT0";“;
  ethercat1.ethphy[0].$name  =“CONFIG_ETHPHY0";“;
  ethercat1.ethphy[0].name   =“DP83826E";“;
  ethercat1.ethphy[0].mdioPort = 1;
  ethercat1.ethphy[1].$name  =“CONFIG_ETHPHY1";“;
  ethercat1.ethphy[1].mdioPort = 3;
  ethercat1.ethphy[1].name   =“none";</s>“

  EtherCAT 主站:Beckhoff CTT 工具连接到 PORT0

问题:
  安装两个 PHY(在以太网连接器 0 和 1 上)时、EtherCAT 子器件示例可以很好地运行。
  但是、当移除以太网连接器 1 上的 PHY 后、EtherCAT 主站无法检测到子器件。

是否有任何人遇到了类似的问题、或者可以提供有关如何正确配置示例或 syscfg 以支持仅连接一个 PHY 的操作的建议? 是否有必要修改示例或 SDK 设置、以完全禁用或删除第二个以太网接口? 或者是否存在需要两个 PHY 的硬件或驱动程序依赖项?

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

    您好、

    感谢您提供详细信息。

    由于 PHY 未连接到以太网 CONNECTOR1、因此您必须 在{ICSDK_INSTALL_DIR}\examples\industrial_comms\ethercat_sullave_beckhoff ssc_demo\am261x-lp\tiescsoc.c 文件中处理 CONFIG_ETHPHY1 初始化(注释掉未使用的 PHY 的配置)。  

    在  esc_ethphyEnablePowerDown () 中有一个 检查、它通过检查标识符寄存器来确保 PHY 寄存器访问正常工作。 由于 移除了与 CONFIG_ETHPHY1 对应的 PHY、因此此检查将失败并卡在 while 循环中、我怀疑这是在您的用例中发生的。 确保按如下所示删除此检查:

    void tiesc_ethphyEnablePowerDown()
    {
        /*TODO: Need to enable the mux selection from the generated files*/
        /* Ensure that PHY register access is working by checking the Identifier register */
        while(SystemP_SUCCESS != ETHPHY_command(gEthPhyHandle[CONFIG_ETHPHY0], ETHPHY_CMD_VERIFY_IDENTIFIER_REGISTER, NULL, 0));
        /* Comment out this check for Port1 */
        //while(SystemP_SUCCESS != ETHPHY_command(gEthPhyHandle[CONFIG_ETHPHY1], ETHPHY_CMD_VERIFY_IDENTIFIER_REGISTER, NULL, 0));
    
        /* Enable IEEE Power Down mode so that PHY does not establish any link */
        ETHPHY_command(gEthPhyHandle[CONFIG_ETHPHY0], ETHPHY_CMD_ENABLE_IEEE_POWER_DOWN, NULL, 0);
        ETHPHY_command(gEthPhyHandle[CONFIG_ETHPHY1], ETHPHY_CMD_ENABLE_IEEE_POWER_DOWN, NULL, 0);
    }

    请告诉我这是否有助于您当前的问题。

    此致、
    Aaron

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

    您好、

    感谢您的答复。

     

    我已经在 tiscsoc.c 中注释掉了 CONFIG_ETHPHY1 的所有设置、因为否则工程将不会编译。 然而、单靠这一点似乎还不够。

    初始化显示成功—Board_ethPhyOpen () 返回成功状态,应用程序在主循环中运行。 尽管如此、EtherCAT 主器件 (Beckhoff EtherCAT CTT) 仍然无法检测器件。

    此问题是否与 PRU 固件有关? 本示例中提供的当前固件专为依赖两个 PHY 的 2 个 MII 端口(1 个输入端口和 1 个输出端口)而设计。 是否需要修改才能支持我们的设置?

     

    感谢您的指导。

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

    您好、

    初始化显示成功—Board_ethPhyOpen () 返回成功状态、应用程序在主循环中运行。

    感谢您的澄清。

    此问题是否与 PRU 固件有关? 本示例中提供的当前固件专为依赖两个 PHY 的 2 个 MII 端口(1 个输入端口和 1 个输出端口)而设计。 它是否需要修改才能支持我们的设置?

    默认固件也应适用于 1 端口方案。  此外、您还需要将未使用端口的链路极性 (TIESC_LINK1_POL) 设置为高电平(未使用的端口链路极性应配置为相反的)

    此致、
    Aaron

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

    您好 Aaron、

    我设置  TIESC_LINK1_POL = TIESC_LINK_POL_ACTIVE_HIGH(即 0)、它现在即可正常工作。 主设备查找并连接到子设备。  

    非常感谢您的支持。

    此致、

    Kramimir