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.

[参考译文] AM2432:EtherCAT 从器件连接到 Keyence KV7500失败

Guru**** 2455560 points
Other Parts Discussed in Thread: AM2432, SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1485196/am2432-ethercat-slave-connecting-to-keyence-kv7500-not-successful

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

工具与软件:

尊敬的 TI 专家:

我们在将驱动器(AM2432)连接到  Keyence KV7500 PLC 时遇到问题 但我们的其他产品(Infeneon XMC4800)还行。

问题是、

1.如果 KV7500  仅连接到1  AM2432、则驱动器可以切换到 OP。

2.如果 KV7500连接到 AM2432、则其他一些驱动器(AM2432、XMC4800或其他公司的驱动器)不会将该帧传递给 XMC4800。

在视频中、从左到右的输入端口闪烁、但输出端口不闪烁。 网络分析器被放置在两个驱动器之间、没有任何数据被捕获。

e2e.ti.com/.../out_5F00_port_5F00_not_5F00_blink.mp4

3.如果 KV7500连接到 XMC4800、则 AM2432在首次连接时不会返回任何帧。

网络分析器位于 KV7500和 XMC4800之间、捕获的结果已连接。

e2e.ti.com/.../KV7500_5F00_CDHD2_5F00_CD3E_5F00_no_5F00_return_5F00_first.zip

此外、连接后、如果移除 AM2432、则可以将 XMC4800连接到 KV7500。

AM2432需要下电上电才能连接到 KV7500。

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

    下面是在案例2中捕获的网络软件包、其中分析仪位于 KV7500和 AM2432之间。 封装就像仅连接了一个驱动器一样。  

    两个驱动器之间不能捕获任何数据。

    e2e.ti.com/.../KV7500_5F00_CD3E_5F00_Inovance_5F00_fail.zip

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

    您好、建宇、

    [报价用户 id="622144" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1485196/am2432-ethercat-slave-connecting-to-keyence-kv7500-not-successful "]

    3.如果 KV7500连接到 XMC4800、则 AM2432在首次连接时不会返回任何帧。

    [报价]
    • 因此、在第一个连接中、不会观察到任何返回帧、而 PLC 第二次尝试建立通信时、AM243x 会按预期返回帧? 或者在第3种情况中是否始终必须执行下电上电?

    对于情况2、您能否提供中的值  MDIO_LINK_REG 非常重要 (0x300B240C) 当器件连接到 AM243x 的端口1且没有器件连接到 AM243x 的端口1时。 这是为了检查相应的 PHY 是否已建立链路(当 XMC4800时)。  

    我将查看日志并查看更多详细信息。

    此致、
    亚伦

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

    还共享从连接到  XMC4800的端口的 PHY 寄存器转储(0x0至0x1F)

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

    大家好、我们发现了另一个问题、因此该测试链接是1个 PLC 连接到2个 AM2432。

    如果断开电缆连接、则第一个驱动器的输出端口的链路/操作指示灯熄灭。 但是、当我检查 ESC 寄存器0x110 DLstatus 时、会发现输出端口仍然连接、这会导致第一个驱动器不再返回 PLC 发送的帧

    我不知道为什么我们的驱动器无法检测到断开连接。 连接了 PHY 输出端口设计。  

    你们有什么建议吗? 今天、我将探测 ecat_out_link 信号。 我假设此信号是正确的、因为链路/操作 LED 会响应此信号。

    谢谢!

    建宇

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

    LED1已配置为哪种模式?  它必须是一个稳定的链路(LED_SPEED 或 LED_LINK (没有活动闪烁))

    检查链路的极性、也需要相应地通过 API 进行配置。

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

    LED_LINK、高电平有效。 我们已基于 SDK 重建 EtherCAT 从站、DLstatus 是正确的。 关于检查失败的项目是否还有其他建议?

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

    您好、建宇、

      如  CASE2前面所述、请从连接到 XMC4800的端口共享 PHY 寄存器值(0x0至0x1F)。

    此外、您是否可以共享 ESC Reg.0x101 (AM243x 中为0x30090101)和 ESC 寄存器 0x30090300至 0x30090313中的值。这是为了查看主器件是如何配置子器件的、还可以查看是否分别观察到任何无效帧。

    有关这些寄存器的详细信息、请参阅此处: EtherCAT 子器件控制器寄存器列表

    此致、
    亚伦

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

    大家好、Aaron:

    目前、我将重点讨论  1 PLC 连接到2个 AM2432问题。 我们已经测试了另一个基于 SDK 的 EtherCAT 从站(无402或其他功能)、它可与 Keyence KV7500 - AM2432 - XMC4800协同工作。 所以我假设问题在项目中、但不确定原因。

     

    [报价 userid="550875" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1485196/am2432-ethercat-slave-connecting-to-keyence-kv7500-not-successful/5708794 #5708794"]

    此外、您是否可以共享 ESC Reg.0x101 (AM243x 中为0x30090101)和 ESC 寄存器 0x30090300至 0x30090313中的值。这是为了查看主器件是如何配置子器件的、还可以查看是否分别观察到任何无效帧。

    有关这些寄存器的详细信息、请参阅此处: EtherCAT 子器件控制器寄存器列表

    [报价]

    好的、我会更新(如果有)。

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

    您好、建宇、

    目前我正在关注  1个 PLC 连接至2个 AM2432问题。 我们已经测试了另一个基于 SDK 的 EtherCAT 从站(无402或其他功能)、它可与 Keyence KV7500 - AM2432 - XMC4800协同工作。 因此,我认为问题在项目中,但不确定原因。[/报价]
    • 好的、之前您曾看到 AM243x 驱动器未将帧转发到  XMC4800、但在移除 CiA402或其他功能/配置文件后、未发现该问题、对吗? 我可以知道您的产品指的是哪个 EtherCAT 演示和 SDK 吗?
    好的、如果我找到任何内容、我将会更新。
    • 好的、谢谢。

    此致、
    亚伦

    [/quote]
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的、您之前发现 AM243x 驱动器未能将帧转发到  XMC4800这一问题、但在移除 CiA402或其他功能/配置文件后、未发现该问题、对吗? 我想知道您的产品指的是哪个 EtherCAT 演示和 SDK 吗?[/QUOT]

    此演示基于 ind_comms_sdk_am243x_09_01_00_03

    [报价 userid="550875" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1485196/am2432-ethercat-slave-connecting-to-keyence-kv7500-not-successful/5708794 #5708794"]此外、您能否共享 ESC Reg.0x 101 (AM243x 中为0x30090101)和 ESC 寄存器 0x30090300至0x30090313中的值 。这是为了查看主器件是如何配置子器件的、以及是否分别观察到任何无效帧

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

    你(们)好

    我们进行了以下测试:

    1. 我们将引脚 T2 (网络 ECAT_IN_LINK)的配置更改为 GPIO1_8 (根据下表)、初始多路复用模式为1。
    2. 如果我们通过 GPIO_IN_DATA (地址0x00601020)在位8中读取它,我们将看到链路指示(插入/拔下电缆)。

    a)您能否确认 PRU 是否使用 T2 (PRG0_PRU0_GPI8)进行链路指示检测?

    b) PRU 中是否有某些条件可以屏蔽引脚 T2上的链路指示?

    谢谢

    Raste.

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

    嗨 Raster, Jianyu,

    [报价 userid="359686" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1485196/am2432-ethercat-slave-connecting-to-keyence-kv7500-not-successful/5709725 #5709725"]

    a)您能否确认 PRU 是否使用 T2 (PRG0_PRU0_GPI8)进行链路指示检测?

    [报价]
    • PRG1_PRU0_GPO8和  PRG1_PRU1_GPO8   分别对应于 MII0_RXLINK 和 MII1_RXLINK。 启用 增强链路需要这些引脚。 您能否确认是否在您的应用中启用了此功能? 如果需要、那么您是否能够确保链路极性配置正确? 我在 tiescsoc.c 文件中指的是以下配置:(配置极性的步骤在上面的文档中提到)
    • #define TIESC_LINK0_POL                         TIESC_LINK_POL_ACTIVE_HIGH
      #define TIESC_LINK1_POL                         TIESC_LINK_POL_ACTIVE_HIGH
          
          
          bspInitParams->enhancedlink_enable = TIESC_MDIO_RX_LINK_ENABLE;
          bspInitParams->link0_polarity = TIESC_LINK0_POL;
          bspInitParams->link1_polarity = TIESC_LINK1_POL;

    此外、请提供 PHY 寄存器值(0x0至0x1F)以了解 PHY 配置。

    此致、
    亚伦

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

    你(们)好

    我确认这一点  

    1.我们尝试了 TIESC_MDIO_RX_LINK_ENABLE、得到了相同的结果

     TIESC_LINK0_POL 和 TIESC_Link1_POL 为高电平

    3.使用示波器验证链路信号(高电平有效)

    4.如果引脚配置为常规 GPIO、则可以从引脚 T2读取链路信号

    5.最重要的是我们使用 PRG0、 不会 PRG1  PRG0 _PRU0_GP I 8和  PRG0 _PRU1_GPI8

    6.为什么提到 PRG1_PRU1_GPO8 ,它应该是输入,而不是输出?

    PHY 配置相关性较低(IMHO)、因为链路信号(连接到 LED1)的行为已确认为数字示波器。

    其他 想法?

    谢谢

    Raste.

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

    嗨、Rasty、

    5. 最重要的是、我们使用 PRG0、 不会 PRG1  PRG0 _PRU0_GP I 8和  PRG0 _PRU1_GPI8[/报价]
    • 感谢您提供这些信息。 看上去、当 启用 MDIO 手动模式后、我们的应用程序中针对 ICSSG0演示上的 EtherCAT 存在配置错误。 您能否确认它是否在您的应用中启用?  
    • 如果启用此功能、则必须更新 tiescsoc.c 文件中存在的 tic_mdioManualModeSetup()中的以下代码行:
    •     /* Pass value to R10 of TX_PRU core for MDIO FW WA Configuration */
          CSL_REG32_WR(CSL_PRU_ICSSG1_DRAM0_SLV_RAM_BASE + CSL_ICSS_G_PR1_PDSP_TX0_IRAM_DEBUG_REGS_BASE + PRU_REG_10, MDIO_MANUAL_MODE_FW_CONFIG_VALUE);
          /* Pass value to R12 of TX_PRU core for emulated MDIO Base Address */
          CSL_REG32_WR(CSL_PRU_ICSSG1_DRAM0_SLV_RAM_BASE + CSL_ICSS_G_PR1_PDSP_TX0_IRAM_DEBUG_REGS_BASE + PRU_REG_12, MDIO_MANUAL_MODE_BASE_ADDRESS);
          
          should be changed to
          
          /* Pass value to R10 of TX_PRU core for MDIO FW WA Configuration */
          CSL_REG32_WR(CSL_PRU_ICSSG0_DRAM0_SLV_RAM_BASE + CSL_ICSS_G_PR1_PDSP_TX0_IRAM_DEBUG_REGS_BASE + PRU_REG_10, MDIO_MANUAL_MODE_FW_CONFIG_VALUE);
          /* Pass value to R12 of TX_PRU core for emulated MDIO Base Address */
          CSL_REG32_WR(CSL_PRU_ICSSG0_DRAM0_SLV_RAM_BASE + CSL_ICSS_G_PR1_PDSP_TX0_IRAM_DEBUG_REGS_BASE + PRU_REG_12, MDIO_MANUAL_MODE_BASE_ADDRESS);
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你(们)好

    我看不出  MDIO_MANUAL_MODE_ENABLED 在哪里。

    我们 在所有位置将 CSL_PRU_ICSSG1全局替换为 CSL_PRU_ICSSG0、假设如果我们将 EtherCAT 从 ICSSG1迁移到 ICSSG1 、再加上 PRU 事件调整和 SysConfig、则无需其他调整。

    除链路指示外、它的工作效率为99%。

    谢谢

    生锈

    #ifdef MDIO_MANUAL_MODE_ENABLED
    void tiesc_mdioManualModeSetup()

    int32_t status;
    /*------------------------------------------------------- */
    /*在 PRU 内核上加载 MDIO 固件二进制文件;*/
    /*------------------------------------------------------- */
    /*重置内核*/
    STATUS = PRUICSS_resetCore (pruIcss1Handle、PRUICSS_PRUx);
    DebugP_ASSERT (SystemP_SUCCESS == status);
    /* Disabe Core */
    状态= PRUICSS_disableCore (pruIcss1Handle、PRUICSS_PRUx);
    DebugP_ASSERT (SystemP_SUCCESS == status);

    /*加载固件。 设置 buffer =写入 PRU 存储器*/
    状态= PRUICSS_writeMemory (pruIcss1Handle、PRUICSS_IRAM_TX_PRU (0)、0、
    (uint32_t *) PRUFirmware、sizeof (PRUFirmware);
    DebugP_assert (status!= 0);

    /*为 MDIO FW WA 配置的 TX_PRU 内核的 R10传递值*/
    CSL_REG32_WR (CSL_PRU_ICSSG0_DRAM0_SLV_RAM_BASE + CSL_ICSS_G_PR1_PDSP_TX0_IRAM_DEBUG_REGS_BASE + PRU_REG_10、MDIO_MANUAL_MODE_FW_CONFIG_VALUE);
    //将值传递给模拟 MDIO 基址的 TX_PRU 内核的 R12 *
    CSL_REG32_WR (CSL_PRU_ICSSG0_DRAM0_SLV_RAM_BASE + CSL_ICSS_G_PR1_PDSP_TX0_IRAM_DEBUG_REGS_BASE + PRU_REG_12、MDIO_MANUAL_MODE_BASE_ADDRESS);

    /*运行固件*/
    状态= PRUICSS_enableCore (pruIcss1Handle、PRUICSS_PRUx);
    DebugP_ASSERT (SystemP_SUCCESS == status);
    }
    #endif

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

    嗨、Rasty、

    我看不到  MDIO_MANUAL_MODE_ENABLED 的位置。
    • 在 EtherCAT SysConfig 中选中该复选框时、会定义 MDIO_MANUAL_MODE_ENABLED。
    [报价 userid="359686" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1485196/am2432-ethercat-slave-connecting-to-keyence-kv7500-not-successful/5712292 #5712292"]我们 在所有地方都用 CSL_PRU_ICSSG0全局替换了 CSL_PRU_ICSSG1、假设我们将 EtherCAT 从 ICSSG1移到 ICSSG1、加上 PRU 事件的调整、再加上 SysConfig、不需要其他调整、即可
    • 我认为、复位序列适用于用于 利用 ICSSG 外设的 PRU_ICSSG0实例的定制电路板。
    除链路指示外、它工作效率为99%。
    • 要澄清当前状态、您在进行上述更改后仍然会看到相同的问题?

    此致、
    亚伦

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

    你(们)好

     该 复选框 (以及函数 itic_mdioManualModeSetup)与"i2329 MDIO:MDIO 接口损坏(CPSW 和 PRU-ICSS)"相关、并将其他固件加载到 PRU。

    这是出乎意料的情况。 我觉得 PRU 通过 GPIO (8)直接采样链路状态。 因为引脚功能设置为(1、直接输入到本地 IO PRU)。 该引脚没有其他书面功能。

    我们来试一下。

    谢谢

    生锈

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

    嗨、Rasty、

    我们来试用一下。
    • 有任何更新吗?

    此致、
    亚伦

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

    大家好、Aaron:

    我们现在进行检查。

    另一个问题。

    我们使用调试器测试了 PRU 的寄存器 R30/R31的行为。

    根据我的理解、 R30应反映状态 PRU 本地输入。 引脚配置为 PRU_IN8

    当我们更改链路状态(我们在电路板和 EVB 上对其进行了测试)时、我没有看到 R30的值发生变化。

    在这两种情况下均无相关性。

    我该怎么做?

    谢谢

    Raste.

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

    你好、Aaron

    我们测试了您的建议、没有帮助。 寄存器0x110不会反映链接中的变化。 通过示波器确认信号。

    其他想法?

    谢谢

    Raste.

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

    嗨、Rasty、

    您能否提供 ICSS 存储器转储。 我指的是以下部分:

    • PRU_ICSSG_RAM:0x30010000 - 0x30010ECF
    • PRU_MII_RT_MII_RT: 0x30032000至0x3003206C  
    • PRU_MDIO_MDIO:0x30032400至0x30032484

    此致、
    亚伦

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

    e2e.ti.com/.../ECMemoryDump20_5F00_3.zip

    内存转储

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

    嗨、Rasty、

    文件类型看起来错误、因此我无法查看这些值。 如果您使用的是 CCS、您能否提供.dat 格式或任何其他可读格式的转储? 您可以在 CCS 中按照以下步骤操作:

    • 选择 TI 数据   文件类型  在"View"->"Memory Browser"->"Save Memory"中:  
      •   
    • 然后选择  System_View  如  存储器页  在下一个窗口中:

     此致、
    亚伦

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

    该文件以原始二进制格式保存 、您可以使用 任何十六进制 viwer 将其打开。  

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

    大家好、Aaron:

    我想了解为什么链路指示连接到 PRU、而引脚的功能设置为 PRU 本地数字输入  未反映在 R30中?

    我们在卡片和评估板上检查了它、在两种情况下、它们都未按我的预期反映在 PRU 中。

    我该怎么做?

    谢谢

    Raste.

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    根据我的理解、 R30应反映状态 PRU 本地输入。 引脚配置为 PRU_IN8

    这取决于 ICSSG_GPCFG0/1_REG 寄存器中的 ICSS 内部多路复用器模式- EtherCAT 使用 MII 与 GP

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [报价 userid="359686" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1485196/am2432-ethercat-slave-connecting-to-keyence-kv7500-not-successful/5723629 #5723629"]

    ECMemoryDump20_3.zip

    内存转储

    [报价]

    电路板上电后看起来就像这样、您是否能够在问题发生时分享这些转储。 您可以共享完整的 ICSSG0地址空间- 0x3000_0000至0x3003_4000

     由于您怀疑 PHY LED_LINK 未到达 ICSS、因此禁用 MDIO_MANUAL_MODE_ENABLED 和增强链路检测也很适合检查此设置。

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

    你(们)好

    我将代表 Raster's 共享内存转储。

    我无法选择"system_view"内存页(可能正在运行较旧的版本).e2e.ti.com/.../PRU_5F00_ICSSG_5F00_RAM_5F00_0x30000000_5F00_0x30034000.dat

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

    我绝对确信链路信号是由 PHY 产生并到达正确的引脚。 请在此主题中阅读我之前的消息。

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

    嗨、Rasty、

    从您提供的日志中、看起来像是已启用 MDIO 手动模式(设置了0x0E35.bit0)、并已禁用增强链路检测(0x0E36.bit0为0)。 和应用程序 SysConfig 中、请确保 MDIO 手动模式链路状态更新 范围 基于 PHY 轮询

    如果启用 MDIO 手动模式并禁用增强链路、则需要执行此操作。 您能否确认这一配置是否在您这边完成? 如果没有、您可以尝试使用此选项并更新状态吗?

    此致、
    亚伦

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

    你(们)好

    我们尝试了所有组合-不起作用。

    我提醒、链路指示来自 PHY 中的专用引脚、并使用示波器进行检查。

    我不明白的是、为什么在手动模式下它仍然是  PRUICSS_GPI_MODE_MII_RT。

    PRUICSS_setGpiMode (pruIcss0Handle、PRUICSS_PRU0、PRUICSS_GPI_MODE_MII_RT);
    PRUICSS_setGpiMode (pruIcss0Handle、PRUICSS_PRU1、PRUICSS_GPI_MODE_MII_RT);

    我希望在手动模式下、引脚通过 R30和 R31直接由 PRU 控制。

    谢谢

    Raste.

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

    大家好、团队成员:

    总而言之 、离线讨论之所以存在 DL 状态在建立/断开链路时未更新(即使 PHY 链路已更新)的问题、是因为 MDIO_USER_PHY_SEL_REG (偏移量0x84)未配置为启用链路更改中断(位6)。 此外、没有对相应的链路状态确定(位7)进行编程以进行基于 MLINK/MDIO 的确定。

    处理上述配置的 tiesc_ethphyInit()中相应的代码部分被注释掉、从而导致固件无法检测到链路更改。

    MDIO 配置代码到位后、问题就会得到解决、DL 状态寄存器会在链路建立/断开时更新。

    作为经验教训的一部分、为了改进未来的调试和实现、我们将改进 EtherCAT 实现的文档并提供更详细的调试指南、以帮助更高效地识别和解决类似问题。

    将该线程标记为已关闭。

    此致、
    亚伦

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

    @TI 团队  

    非常感谢您的帮助。

    我想对故障排除做出贡献。

    链路指示来自 PHY 引脚、无法使用 TwinCAT 完全检查、因为您需要断开 EtherCAT 电缆来检查寄存器0x110的状态。

    即使没有正确的链路指示、EtherCAT 也可以"正常"工作。 即使没有链路指示、系统也可以达到 OP。 链路缺失或反转指示可能会被长时间忽略。

    如果我们讨论 ICSS0、则  可以使用调试器从存储器位置0x30010110读取寄存器0x110。

     如果 手动将 PRU0_GPI_MODE/PRU1_GPI_MODE 设置为0、则可以在 PRU 的寄存器 R31 (位8)中看到链路引脚的实际状态。