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/AM3359:EtherCAT 从站 PHY 问题

Guru**** 2558250 points
Other Parts Discussed in Thread: TLK110, AM3359, AMIC110

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

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

器件型号:AM3359
主题中讨论的其他部件:TLK110AMIC110

工具/软件:TI-RTOS

您好!

我们拥有具有 TLK110和 DP83848 PHY 的定制板。  具有 TLK 的电路板在具有 DP83848的电路板无法正常工作的情况下工作。 我们有以下配置:  

使用的配置:

  • PROCESSOR_SDK_RTOS_AM335x_3_03_00_04
  • PDK_AM335x_1_0_6
  • PRU-ICSS-EtherCAT_Slave_01.00.03.01
  • Code Composer Studio 7.1.0

 

我们尝试过的更改列表   

 

请在随附的文件中找到详细信息

  1. PHY 更改
  • 注释除0x2外的所有 PHY 寄存器访问
  • PHY 地址为1 (端口:- 1/IN)和3 (端口:-2/OUT)
  • 增强型链路检测已启用

 

序号

寄存器地址

位编号

用途

备注

更改了 DP83848的 be SW

1

0x19

位15

"1"

启用 PHY 自动 MDIX

在 be V1中提供硬件搭接、用于启用自动 MDIX

在 SW 中注释此内容

2.

0x17

所有位

"0"

关闭 RMII 模式

硬件搭接在 BI V1中可用于启用 MII 模式/禁用 RMII 模式

在 SW 中注释此内容

3.

0x2.

所有位

只读

检查它是否等于"0x2000"

与 TLK110相同

软件无变化

4.

0xA

位5

"1"

强制使用100Base-TX 全双工模式

在 DP83848中不可用

在 SW 中注释此内容

5.

0xA

位1

"1"

奇数可检测禁用

不需要/不可用

在 SW 中注释此内容

6.

0x19

位5

"0"

LED 模式3

不需要

在 SW 中注释此内容

7.

0x19

位6

"1"

LED 模式3

不需要

在 SW 中注释此内容

8.

0x18

位9

"0"

LED 闪烁速度

不需要

在 SW 中注释此内容

9.

0x18

位10

"1"

LED 闪烁速度

不需要

在 SW 中注释此内容

10.

0xB

位0

"1"

快速下行链路模式-信号/能量损失

在 DP83848中不可用

在 SW 中注释此内容

11.

0xB

位3

"1"

快速下行链路模式- RX 错误计数

在 DP83848中不可用

在 SW 中注释此内容

12.

0x9.

位15

"1"

SW 搭接配置完成

在 DP83848中不可用

在 SW 中注释此内容

 

我们认为这与链路检测有关、我们已经完成了以下操作、但仍然提供了这些提示帮助。

  

另一种奇怪的行为是、如果以太网电缆首先连接到 OUT 端口、然后连接到 IN 端口、则随后在 IN 端口上进行通信。 这是否表示存在上述问题? 或者,您能帮助理解这种行为吗? 还有助于 DP83848正常工作?  

此致、

Mohit

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

    我知道您已经根据 PHY 团队的输入进行了一些更新。
    您在这些更新中看到了哪些问题?
    您使用的软件配置是什么?

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

    您能否发送原理图? DP83848和 TLK110具有自启动器。 我需要查看原理图、以确保 PHY 配置正确。
    您是否看到端口0和端口1链接?
    当您将配置文件注释掉时、寄存器0x0h 至0x1Fh 的读数是多少?

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

    您好、David / Ross、

    我们有两个定制板:

    使用 TLK110 PHY 芯片和

    2、DP83848 PHY 芯片

    即 PSDK 和 PRU 工业配置

    配置1:

    •PROCESSOR_SDK_RTOS_AM335x_3_03_00_04

    •PDK_AM335x_1_0_6

    •PRU-ICSS-EtherCAT_Slave_01.00.03.01

    •EtherCAT_SLAVE_FULL_AM335x_ARM 项目

    •Code Composer Studio 7.1.0

    配置2:

    •PROCESSOR_SDK_RTOS_AM335x_4_00_00_04

    •PDK_AM335x_1_0_7

    •PRU-ICSS-EtherCAT_Slave_01.00.04.02

    •EtherCAT_SLAVE_FULL_AM335x_ARM 项目

    •Code Composer Studio 7.1.0

    我们已在具有 TLK110 PHY 芯片的定制板上测试了上述配置、并且 EtherCAT 通信正常。

    另一个唯一不同的电路板是 PHY 芯片、即 DP83848、它无法正常工作。 未与 TwinCAT (或任何其他 EtherCAT 主站)建立 EtherCAT 通信。

    根据其他 e2e 论坛的输入、我们在第二个定制板(DP83848)上尝试了以下操作:

    在 tisebsp.c、bsp_init ()中、在调用 bsp_pruss_mdio_init ()之前、我们更新了以下内容

    mdioParamsInit.enhancedlink_enable = TIESC_MDIO_RX_LINK_DISABLE;

    我们比较了 TLK110和 DP83848之间的寄存器。 根据上述分析、我们对示例应用代码写入 TLK 寄存器的代码进行了注释。

    之后、PHY 寄存器的值为:

    PHY 寄存器地址 PHY_AD-1 (输入端口)的值 PHY_ADD-3 (输出端口)的值
    0 0x3100 (十六进制) 0x3100 (十六进制)
    1 0x786D (十六进制) 0x7849 (十六进制)
    2. 0x2000 (十六进制) 0x2000 (十六进制)
    3. 0x5C90 (十六进制) 0x5C90 (十六进制)
    4. 0x01E1 (十六进制) 0x01E1 (十六进制)
    5. 0xCDE1 (十六进制) 0x0000 (十六进制)
    6. 0x000D (十六进制) 0x0004 (十六进制)
    7. 0x2801 (十六进制) 0x2001 (十六进制)
    10. 0x0615 (十六进制) 0x0000 (十六进制)
    11. 0x0000 (十六进制) 0x0000 (十六进制)
    12. 0x0000 (十六进制) 0x0000 (十六进制)
    13. 0x0000 (十六进制) 0x0000 (十六进制)
    14. 0x0000 (十六进制) 0x0000 (十六进制)
    15. 0x0000 (十六进制) 0x0000 (十六进制)
    16. 0x0100 (十六进制) 0x0100 (十六进制)
    17. 0x0001 (十六进制) 0x0001 (十六进制)
    18 0x0000 (十六进制) 0x0000 (十六进制)
    19. 0x8021 (十六进制) 0x8023 (十六进制)
    1A 0x0804 (十六进制) 0x0804 (十六进制)
    1b 0x0000 (十六进制) 0x0000 (十六进制)
    1c. 0x0000 (十六进制) 0x0000 (十六进制)
    一维 0x6011 (十六进制) 0x6011 (十六进制)

    此致

    Mohit

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

    你(们)好、Mohit

    MDIO MDIO 活动寄存器和链路寄存器在评估 EtherCAT 状态时非常有用

    AM335x TRM http://www.ti.com/lit/pdf/spruh73的第14.3.8节 MDIO 中介绍了 MDIO

    PRU-ICSS MDIO 寄存器集从@ 0x4a33_2400开始

     

    如果 PHY 确认了读取、MDIO 活动寄存器将由 MII 管理 I/F 模块更新

    通用状态寄存器的说明。 此外、主机发起的任何 PHY 寄存器读取事务也是如此

    导致 MDIOAlive 寄存器更新。

     

    将为相应的 PHY 地址设置活动位   

    MDIO PHY 活动状态寄存器(MDIOALIVE)可以轮询方式读取、直到连接到系统的 PHY 响应、MDIO PHY 链路状态寄存器(MDIOLINK)可以确定该 PHY 是否已有链路

     

    验证 MDIO 用户 PHY 选择寄存器(MDIOUSERPHYSELn)中是否设置了相应的 PHY 地址、

     

    如果启用了增强型链路检测、则链路极性对于 EtherCAT 至关重要、可在 MDIO 初始化期间通过禁用宏而不是启用来禁用链路极性。 这是在 tiescbsp.h   tisebsp.c 中定义的

     

    最好的方法是使用 MDIO 链接寄存器检查此情况、并将以太网电缆从 PC 插入 DUT 端口并观察任何变化。 如果链路寄存器为零且未连接端口、则两个链路都将处于高电平有效状态。 如果端口0链路已连接且已连接、则端口0为低电平有效、您需要在 MDIO 初始化期间在链路极性字段中对此进行调整。

     

     MDIO 由 bsp_pruss_mdio_init 初始化http://processors.wiki.ti.com/index.php/PRU_ICSS_EtherCAT_firmware_API_guide#bsp_pruss_mdio_init 中记录了该 API

     

    David

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

    尊敬的 David:

    在 MDIOUSERPHYSELn 中设置正确的 PHY 地址

    我们使用的是 PHY 地址1和3。

    此处、我附上端口0 (具有 PHY 地址1)连接到 EtherCAT 主站时 MDIO 寄存器的屏幕截图。 我们已使用 tiescbsp.h 宏禁用了增强型链接

    此致

    Mohit

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

    Mohit
    您好像在并行、我们将在 ICE 上看到增强型链路检测已禁用的情况。
    让我快速与我们的团队确认一下。
    David

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

    他们确认这是正确的。

    您是否仍在看到:
    另一种奇怪的行为是、如果以太网电缆首先连接到 OUT 端口、然后连接到 IN 端口、则随后在 IN 端口上进行通信。 这是否表示存在上述问题?

    如果是、则更改文件
    {InstallDirectory}\PRU-ICSS-ETHERCAT_Slave_01.00.04.02\protocols\EtherCAT_SLAV\ecat_Appl\EcatStack\itichw.c
    作者
    注释掉第190行#ifdef iceAMIC11x
    注释掉第206行 #endif
    要为*port 0*检测问题启用变通办法,请更改行为?


    David
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 David:
    是的、该行为与我们在禁用增强型链路检测后在定制板(AM3359 + DP83848 PHY)中观察到的行为类似。
    在构建中启用“AMIC110的*端口0*检测问题变通办法”代码后,通信将在端口0上工作。

    •您能向我们解释一下为 AMIC110添加的权变措施吗?
    •解决方法是否特定于 DP PHY 芯片、因为我们看到 AM3359存在相同的问题?
    •为什么它称为解决方法? 是否有计划发布新版本的 DP PHY、将修复此问题?
    •对于上述权变措施期间观察到的 DP PHY 芯片、是否还有其他需要考虑的事项?

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

    感谢您的确认。
    我们在将其与 DP83822 PHY 配合使用时在 AMIC110上遇到了这种情况。 我们的初始评估是、这与 AMIC110的300MHz 速度有关、而不是 DP83822 PHY。 之所以将此称为权变措施、是因为在对 AMC110和 DP83822 PHY 组合进行进一步评估的同时、快速发现了此修复、以解决此问题。
    您的调查结果是对此调查的良好反馈、有助于发现根本案例和最佳整体解决方案。
    DP83822 phy 没有其他已知问题。

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

    您是否遇到过任何其他问题?

    David
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 David:
    到目前为止、借助端口0检测的权变措施、它可以正常工作。
    但是、如果您更清楚地了解此变通办法/问题、请告知我们。 因此、当我们有合适的解决方案时、我们必须相应地更新 PRU 固件或 PHY 芯片版本。

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

    你好,Mohit

    谢谢你。 我会尽快更新您的信息。

    David