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.

[参考译文] AM3357:启动时链路丢失计数器获取0x0101

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1159234/am3357-lost-link-counter-is-getting-0x0101-at-boot-up

器件型号:AM3357
主题中讨论的其他器件:SYSBIOSTLK100TLK110

客户看到启动时 ESC 寄存器中的“链路计数器丢失”0x0310出现0x0101问题。

默认值应为0x0000、但客户看到电阻器已在启动时序中计数、他们现在正在尝试找出根本原因。

 

客户在 E2E 网站上发现了类似情况。 问题是否与 AM335x 有关?

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/982573/dp83822h

 

客户请参阅以下链接获取 ESC 寄存器。

https://software-dl.ti.com/processor-industrial-sw/esd/docs/indsw/EtherCAT_Slave/PRU_ICSS_EtherCAT_Slave_Controller_Register_List.html

 

谢谢、此致、

米希亚基塔尼

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

    你(们)好
    客户在此处使用哪种 EtherCAT 从站封装?

    此致
    Dhaval

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

    您好 Dhaval、

     

    以下是客户对软件版本的反馈

     

    • ESC 版本:0x03b3
    • 开发软件的基础软件:AM335x SYSBIOS SDK 1.0.0.8

     

    在他们的最终客户中发现了此问题、他们需要尽快报告如何处理此问题。

    请了解我们的情况、我们需要您的帮助来解决该问题。

    我们非常感谢您的理解。

    米希亚基塔尼

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

    你(们)好
    您能否让客户在"protocol/EtherCAT_SLAVE/include/tesc_pruss_intc_mapping.h"文件和测试中进行以下更改?

    第147行

    -{MII_LINK0_EVENT、Channel1、SYS_EVT_POLARY_HIGH、SYS_EVT_TYPE_PULSE}、\

    +{MII_LINK0_EVENT、Channel1、SYS_EVT_POLARY_HIGH、SYS_EVT_TYPE_EDGE}、\

    第152行

    -{MII_Link1_EVENT、Channel1、SYS_EVT_POLARY_HIGH、SYS_EVT_TYPE_PULSE}、\

    +{MII_Link1_EVENT、Channel1、SYS_EVT_POLARY_HIGH、SYS_EVT_TYPED_EDGE}、\

    此致
    Dhaval

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

    您好 Dhaval、

     

    客户已根据附件更改 tiesc_pruss_intc_mapping.h。

    请参阅随附的、它基于 AM335x SYSBIOS SDK 1.0.0.8。

     

    *行号与第147行和第152行不匹配。

     

    他们还发现以下 ESC 版本存在相同的问题。

    0x03b3

    0x03e3

    0x04ef

     

     

    您能否告知您的假设、找出根本原因需要多长时间?

    客户需要在我们可以解决问题时向最终用户报告。

     

    我们非常感谢您的理解。

    米希亚基塔尼

    e2e.ti.com/.../0777.tiesc_5F00_pruss_5F00_intc_5F00_mapping.h

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

    您好 Dhaval、

     

    客户尽快需要您的帮助、因为最终用户发现了问题、他们需要报告问题的解决方法。

    请了解我们的情况、我们非常感谢您的及时响应。

     

    米希亚基塔尼

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

    您好 Dhaval、

    您能否向我们提供您的情况或任何更新?

    谢谢、此致、

    米希亚基塔尼

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

    地狱塔尼-圣

    这项工作仍在调查之中。  Dhaval 是这方面的主题专家、但他将从今天开始到11月2日。 因此、遗憾的是、我们需要更多时间来完成调查并发布一些指导。 在 Dhaval 不任职时,我将无法将这一情况分配给其他人。  

    我们将在11月4日尝试提供另一个更新。  

    此致

    Mukul  

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

    Tani-San

    您能否让 客户尝试将 LED_LINK 极性配置为高电平有效? 我们怀疑、如果 PHY 的 LINK 引脚的极性为低电平有效、则会出现此问题。

    此致
    Dhaval

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

    Tanii-San、

    让我总结一下迄今为止我们的分析和状况,并对宰瓦尔的问题采取后续行动,并提供一些更详细的情况。 您能帮助回答以下问题吗?

    1. 我们了解到 LINK_LOSS 计数器从1开始、预期为0。 是这样吗? 请注意、我们正在尝试在 TI EVM 上重现此问题。
    2. LED_LINK 极性–您能否 与客户确认其硬件是否为 ACTIVE_HIGH 或 ACTIVE_LOW?
    3. 多年来、我们一直与客户合作使用 Sitara MPU 器件进行 EtherCAT 设计。 为什么客户现在报告此问题? –这是新的团队/新的硬件/硬件变更吗?
    4. 他们最终的结果是什么–中断的认证? 损坏的用例?
    5. 我们可以直接请求在 E2E 中跟进讨论吗? 如果客户工程师可以直接参与 E2E、将会很好。

    您可能会注意 到、我们仍在处理此问题;一旦发现任何发现、我们可以在 E2E 中提供更新。

    此致、

    Girish

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    1. 我们了解到 LINK_LOSS 计数器从1开始、预期为0。 是这样吗? 请注意、我们正在尝试在 TI EVM 上重现此问题。

      是的。 有关更多详细信息、Lost Link Counter 与上电时的预期值不同。  
      链路计数器丢失@00310    
      -预期值:0x0000  
      -实际值   :0x0101

    2. LED_LINK 极性–您能否 与客户确认其硬件是否为 ACTIVE_HIGH 或 ACTIVE_LOW?

      客户的设置为 ACTIVE_LOW。

       LED_LINK 信号处理哪种角色?
      当 从 ACTIVE_LOW 更改为 ACTIVE_HIGH 时、您是否会让我们了解更详细的机制、为什么它可以作为一种权变措施?

    3. 多年来、我们一直与客户合作使用 Sitara MPU 器件进行 EtherCAT 设计。 为什么客户现在报告此问题? –这是新的团队/新的硬件/硬件变更吗?

      客户今天刚从他们的最终客户那里得到这种行为。  
      不知道它是从大规模生产开始还是最近发生。
      客户之前使用过 TI Ether PHY、现在他们正在使用 Microchip Ether PHY。
      但是、在 TI 和 Microchip 上都可以看到这种意外行为。
      TI Ether PHY         :TLK100
      Microchip Ether PHY  :KSZ8081MLX

    4. 他们最终的结果是什么–中断的认证? 损坏的用例?

      因此没有任何信息。 将与客户核实。

    5. 我们可以直接请求在 E2E 中跟进讨论吗? 如果客户工程师可以直接参与 E2E、将会很好。

      当然。 让我们使用 E2E。


      其他信息  
      SDK 版本:SYSBIOS SDK 1.0.0.8
       发生 ESC Link Lost 计数器问题的版本:0x03b3 0x03e3 0x04ef  
      2.4. PRU ICSS EtherCAT 从站控制器寄存器列表—适用于 Sitara 处理器的 PRU-ICSS 工业软件(TI.com)

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

    你(们)好

    [引用 userid="540505" URL"~/support/processors-group/processors---internal/f/processors---internal-forum/1159234/am3357-lost-link-counter-is-getting-0x0101-at-boot-up/4427398 #4427398]LED_LINK 信号应承担何种角色?
    [/报价]

    LED_LINK 信号负责向 PRU-ICSS 提供链路状态指示、并负责链路丢失计数器增量。

    来自 PHY 的 LED_LINK 信号为 PRU-ICSS 的 MDIO 提供 MII 链路加/减信息。 如果在 MDIO 中启用了 MLINK 模式(这是情况)、则 LED_LINK 中的任何更改都将用于触发一个进入 PRU-ICSS 的中断。 PRU-ICSS 使用此中断使该链路丢失计数器递增。

    从我们到目前为止的调试中、我们怀疑 LED_LINK 的极性低电平有效可能与此问题有关。 因此、我们希望客户尝试将极性更改为 ACTIVE_HIGH 并观察行为。 与此同时、我们正在努力确认我们的怀疑并获取更多详细信息。  

    此致
    Dhaval

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

    让我总结一下情况。

    1. 行为  
      在上电后、链路计数器始终变为0x0101。 Lost Link Counter 变为 Always 0x0101。 从未看到其他值。

      条件

      硬件

      Ether CAT 主站

      TwinCAT3

      MPU (EtherCAT 从站)

      TI:AM3357BZCZD30

       

      乙醚 PHY  (EtherCAT 从站)

      TI           :TLK110 (以前)
      Microchip :KSZ8081MLX (现货)

      软件

      SDK 版本:

      SYSBIOS SDK 1.0.0.8

       

      发生了 ESC 链路丢失计数器的版本问题

      0x03b3 0x03e3 0x04ef

      结果

      问题

      链路计数器丢失

      上电时链路计数器与预期值不同。
      链路计数器丢失@00310   
      -预期值:0x0000
      -实际值     :0x0101

    2. 向您的答案提问
      感谢你的答复。
      有点难理解 LED_LINK 的极性和链路丢失计数器之间的关系。
      1) 1)您是否会在此方框图中告知我们 LED_LINK 的极性如何影响链路计数器的丢失?
      2) 2)当软件将极性从高电平更改为低电平时、PRU-ICSS 硬件行为如何变化? 如果通过时序图显示、可以很清楚地了解它。

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

    你(们)好

    [引用 userid="540505" URL"~/support/processors-group/processors/f/processors-forum/1159234/am3357-lost-link-counter-is-getting-0x0101-at-boot-up/4431214 #4431214]1)在此方框图中、您能告诉我们 LED_LINK 的极性如何影响链路计数器的丢失?
    [/报价]

    如上所示、该寄存器通过监测 MDIOLINK 寄存器来指示链路中断。

    当我们使用基于 LED_LINK 的链路检测时、我们将  MDIOUSERPHYSEL0 和 MDIOUSERPHYSEL1寄存器中的 LINKSEL 位更新为1、如上所示。

    LINKSEL 位的默认值为0。 因此、如果任何端口中都没有链路、则 MDIOLINK 寄存器值将为0x0。

    AM335x ICE 板在地址0x1和0x3处有两个以太网 PHY、MLINK/LED_LINK 的极性为"低电平有效"。 如果任何端口中没有链路、当我们配置 MDIOUSERPHYSEL0/MDIOUSERPHYSEL1 寄存器时、MDIOLK 寄存器从0x0变为0xA (位1和位3置位)、因为对于这些 PHY、不应将链路意味着位设为1。 现在 MDIOLINKINTRAW 将其视为链路状态变化并设置中断。 EtherCAT 固件将此视为实际链路更改、并使链路丢失计数器(0x310)递增。  

    以上说明仅适用于"低电平有效"极性。 如果是"高电平有效"极性、则不会看到此类中断。

    因此、您能否尝试 将 LED_LINK 的极性更改为"高电平有效"并进行检查?

    此致
    Dhaval

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

    1.  谁 更改 LINKSEL 位?   
        
      您说过
      "如果在 MDIO 中启用了 MLINK 模式(属于这种情况)、LED_LINK 中的任何更改都将用于触发一个中断、该中断将进入 PRU-ICSS "
       " MDIO 中启用了 MLINK 模式"="LINKSEL 位= 1"?

      为什么该 LINKSEL 位发生更改?  

      LINKSEL 位= 0使用 MDIO 状态机确定链路状态(默认)  -> 1:  使用从 MLINK 引脚确定链路状态  

    2.  MLINK/LED_LINK 作为"低电平有效"    
       3-1
       您回答 " MDIOLINK 寄存器从0x0变为0xA (位1和位3已设置)、因为没有链接意味着对于这些 PHY、位应设置为1。"
       "低电平有效"是什么意思? 下面的底纹是否正确?   

       -当有低电平有效的链路时、MDIOLINK 寄存器= 0  
       -当没有低电平有效的链路时、 MDIOLINK 寄存器= 1  

      3-2
       -谁将 MLINL/LED_LINK 设置为"工作/低电平"? 是构建配置吗? 或通过固件设置?  

      3-3.
       - 
       “Active/High”(活动/高电平)的确切设置是什么? 您之前回答如下。 客户是否应该将代码更改为 beloew?

      "protocol/EtherCAT_SLAVE/include/tesc_pruss_intc_mapping.h"文件和测试?

      第147行

      -{MII_LINK0_EVENT、Channel1、SYS_EVT_POLARY_HIGH、SYS_EVT_TYPE_PULSE}、\

      +{MII_LINK0_EVENT、Channel1、SYS_EVT_POLARY_HIGH、SYS_EVT_TYPE_EDGE}、\

      第152行

      -{MII_Link1_EVENT、Channel1、SYS_EVT_POLARY_HIGH、SYS_EVT_TYPE_PULSE}、\

      +{MII_Link1_EVENT、Channel1、SYS_EVT_POLARY_HIGH、SYS_EVT_TYPED_EDGE}、\


      客户尝试了以下两种方法

      1) LINKSEL 位= 0使用 MDIO 状态机确定链路状态(默认)  -> 1:  使用 fromMLINK 引脚确定链路状态
      结果  
       链路输出器启动增量从0x0000丢失。 使用 TwinCAT3时、它可以正常工作、但客户的主软件无法进行通信。  
      2) 2)将 link0pol adn ink1pol 直接设置为高电平

      在:μ s 之前

             pmdio_params->link0pol = TIESC_LINK_POL_ACTIVE_LOW;

             pmdio_params->link1pol = TIESC_LINK_POL_ACTIVE_LOW;

      在:之后

             pmdio_params->link0pol = TIESC_LINK_POL_ACTIVE_HIGH;

             pmdio_params->link1pol = TIESC_LINK_POL_ACTIVE_HIGH;


      没有改善。 链路计数器丢失从 0x0101开始。  TwinCAT3无法检测 AM335。 通信也失败了。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    很抱歉、我写的客户测试结果有误。 让我纠正一下。

    客户尝试了以下两种方法

    1) 1)将"enhancedlink_enable"从"enable"更改为"disable"

    在:mdioParamsInit.enhancedlink_enable = TIESC_MDIO_RX_LINK_ENABLE 之前;

    在:mdioParamsInit.enhancedlink_enable = TIESC_MDIO_RX_LINK_DISABLE 之后;


    链路中断计数器从0x0000开始计数。  

    但是、尽管使用 TwinCAT3的 EtherCAT 通信成功、但 EtherCAT 通信在客户的设备上开始失败。 TwinCAT3可能会处理一些问题、以涵盖一些性能下降。


    2) 2)将 link0pol adn ink1pol 直接设置为高电平

    在:μ s 之前

           pmdio_params->link0pol = TIESC_LINK_POL_ACTIVE_LOW;

           pmdio_params->link1pol = TIESC_LINK_POL_ACTIVE_LOW;

    在:之后

           pmdio_params->link0pol = TIESC_LINK_POL_ACTIVE_HIGH;

           pmdio_params->link1pol = TIESC_LINK_POL_ACTIVE_HIGH;


    没有改善。 链路计数器丢失从 0x0101开始。  TwinCAT3无法检测 AM335。 通信也失败了。

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

    对于 LED_LINK 信号和极性、我们想 更详细地阐明 MLINK 引脚(PHY)与链路计数器(AM335)之间的关系。

    根据先前的答案、  

    在 MLINK 模式下(LINKSEL 位= 1)、  LED_LINK 用于触发一个进入 PRU-ICSS 的中断。

    在这种情况下、当  MLINK 极性="Active_low"时、

    增加链路丢失计数器的触发器是什么? 如果下面有任何错误、您会纠正吗?
      例如、当 MLINK 引脚= H 到 L 时  
      ->通过 MDIO (PHY)传输 LED_LINK 信号
      -> PRU-ICSS (AM335)
      ->中断(AM335)
      ->链路计数器增量丢失(AM335)  

    不递增 丢失链接计数器的状态或触发器是什么?  如果下面有任何错误、您会纠正吗?
     例如,当 MLINK 引脚= L 到 H 时,保持 H 或保持 L  
     -> 通过 MDIO (PHY)无 LED_LINK 信号  

    谢谢。