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.

[参考译文] RTOS/AMIC110:EtherCAT 从站 PHY 问题

Guru**** 2589275 points
Other Parts Discussed in Thread: AMIC110

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/638798/rtos-amic110-ethercat-slave-phy-issue

器件型号:AMIC110

工具/软件:TI-RTOS

大家好、

我的客户现在正在将 AMIC110用于 EtherCAT 从站项目。 软件版本为 Processor SDK RTOS 03_03_00_04、 PRU-ICSS-ETHERCAT-SLAVE 01_00_03_01。  

对于硬件设计、他们选择使用 Micrel Semiconductor KSZ8041NL遵 从 AMIC110 ICE EVM 的设计。

他们尝试使用 EtherCAT 完整应用演示、AMIC110 ICE 也能正常工作。但是、在他们的生产板上使用了生产板上的代码后、链路指示灯亮起、但 EtherCAT 无法正常工作。  

当跟踪 PHY 寄存器时、他们发现一些寄存器设置的值与 AMIC110 ICE 上的值不同。  

因此、他们想知道:

1.是否有任何文档可以帮助理解寄存器值? 我附上了一个示例。  

2.此 EtherCAT 从站演示是否有任何移植指南? 适用于  Micrel Semiconductor KSZ8041NL

3.是否有关于此问题调试的调试指南?  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    RTOS 团队已收到通知。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好 Steven

    遗憾的是,我们对此次会议的了解非常有限。

    Sitara 常见问题 解答 http://processors.wiki.ti.com/index.php/FAQ_Sitara_Industrial 是 Sitara 处理器的一个重要信息来源

    常见问题解答列出了 有关将工业应用从 TI Sitara EVM 移植到定制板的信息指南 、该指南可从 http://processors.wiki.ti.com/index.php/Industrial_SDK_EMAC_Porting_Guide 获取

    正在开发调试指南、预计将于12月底之前推出。

    Beckhoff 还在 https://www.beckhoff.com/english.asp?download/ethercat_development_products.htm 的 phy Selection Guide 和 Trouble Shooting Guide 中提出了一些建议

    您能否提供有关客户遇到的问题的更多详细信息?

    David

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

    David、  

    感谢您的反馈并提供有用的链接!  

    问题是、当客户更改为 KSZ phy 时、EtherCAT 通信将失败。 具体而言、即使链路指示灯亮起、EtherCAT 链路也无法正常工作。  

    经过几天的调试、发现 PHY 链路必须手动设置、然后才能连接到 EtherCAT 主站。 通过在 phy 初始化之后添加"while (bsp_pruss_mdio_phy_link_state (pruIcss1Handle、1)!= 2)"代码、 它可以正常链接。  但是、如果没有插入 EtherCAT 电缆、代码将停止等待。

    以下是问题:

    PRU EtherCAT 设计是否需要 PHY 的任何特殊定序? 由于 KSZ phy 可与 ET1100 (客户以前的设计)良好配合使用、但无法直接与 AMIC110配合使用。 因此、客户要求满足有关 PHY 器件的 AMIC110要求、例如定序。  

    2.他们对 某些操作很好奇,所以想要获取有关以下 AMIC 寄存器定义和操作/编程模型的文档。 我们能否提供这些文档?

      

    #define ESC_ADDR_TI_PORT0_ACTIVITY          0xE00

    #define ESC_ADDR_TI_Port1_ACTIVITY          0xE04

    #define ESC_ADDR_TI_PORT0_PHYADDR         0xE08

    #define ESC_ADDR_TI_Port1_PHYADDR         0xE09

    #define ESC_ADDR_TI_PDI_ISR_PINSEL           0xE0A

    #define ESC_ADDR_TI_PHY_LINK_POLARY       0XE0C

    #define ESC_ADDR_TI_PORT0_TX_START_DELAY  0xE10

    #define ESC_ADDR_TI_Port1_TX_START_DELAY  0xE12

    #define ESC_ADDR_TI_ESC_RESET              0xE14

    PS:以下是需要该文档的原因示例。  

    客户发现、如果他们注释了以下代码、从器件无法正常连接到主器件。 他们希望了解在这里发生了什么/操作是什么。

      //通过供应商特定的寄存器向固件指示 PHY 地址

      bsp_write_byte (pruIcssHandle、pmdio_params->addr0、ESC_ADDR_TI_PORT0_PHYADDR); //必须完成

      bsp_write_byte (pruIcssHandle、pmdio_params->addr1、ESC_ADDR_TI_Port1_PHYADDR);

      bsp_write_byte (pruIcssHandle、(1 << PDI_ISR_EDIO_NUM)、ESC_ADDR_TI_PDI_ISR_PINSEL);

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

    你好 Steven

    通常 、基本 phy 配置在电路板库和执行 MDIO 配置的代码中指定。  

    Board_phy.c

    Board_tlkphy.c

     和

    bsp_init.c

     

    请参阅 http://processors.wiki.ti.com/index.php/Industrial_SDK_EMAC_Porting_Guide

     

    PRU EtherCAT 设计是否需要 PHY 的任何特殊定序? 由于 KSZ phy 可与 ET1100 (客户以前的设计)良好配合使用、但无法直接与 AMIC110配合使用。 因此、客户要求满足 有关 PHY 器件的 AMIC110要求、例如定序。  

     

    对于 AMIC110 DP83822、必须 在启用引脚多路复用器之前执行 Phy 复位。

     

    2.他们对 某些操作很好奇,所以想要获取有关以下 AMIC 寄存器定义和操作/编程模型的文档。 我们能否提供这些文档?

     

    EtherCAT 从站控制器寄存器列表为 http://processors.wiki.ti.com/index.php/PRU_ICSS_EtherCAT_Slave_Controller_Register_List

     

    显示的地址是内部 PRU 接口地址、EtherCAT 控制器使用该地址与 PRU 之间传输值、而不是用于客户编程。

    #define ESC_ADDR_TI_PORT0_ACTIVITY 0xE00

    #define ESC_ADDR_TI_Port1_ACTIVITY 0xE04

    #define ESC_ADDR_TI_PORT0_PHYADDR   0xE08

    #define ESC_ADDR_TI_Port1_PHYADDR   0xE09

    #define ESC_ADDR_TI_PDI_ISR_PINSEL 0xE0A

    #define ESC_ADDR_TI_PHY_LINK_POLICITY   0XE0C

    #define ESC_ADDR_TI_PORT0_TX_START_DELAY   0xE10

    #define ESC_ADDR_TI_Port1_TX_START_DELAY   0xE12

    #define ESC_ADDR_TI_ESC_RESET       0xE14

     

    David