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.

[参考译文] TMS320F28388D:检测 TMDSCNCD28388D 上的以太网链路状态

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1115465/tms320f28388d-detecting-ethernet-link-status-on-tmdscncd28388d

器件型号:TMS320F28388D
主题中讨论的其他器件:TMDSCNCD28388DC2000WARE

尊敬的支持团队:

 

我的应用程序在 TMDSCNCD28388D 板上运行。

CM 软件 基于 C2000Ware exaple“enet_lwip_udp”。

 运行“enet_lwip_udp”并自定义某些功能并不困难。

 

我一直在寻找可提供当前以太网链路状态但尚未提供的 C2000Ware API。

请告诉我如何检测当前以太网链路状态吗?

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

    Daniel:

    链路状态/检测必须由 PHY 层完成。 在 TMDSCNCD28388D 控制卡中、F28388D 芯片上有一个外部 PHY (DP83822)。  您必须使用 MDIO 查询该信息。 EtherNet_readPHYRegister () API 可用于读取 PHY 地址0x0001处的基本模式状态寄存器(BMSR)。它包含一个位字段 Link Status、用于指示链路是否正常运行。  

    此致

    Siddharth

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

    非常感谢。

    我在 lwiplib.c 中找到了该代码

    在 hw_memmap.h 中:  

      #define EMAC_BASE 0x400C0000U

    在 f2838xif.h 中:

      #define EPHY_BMSR 0x00000001 //以太网 PHY 基本模式状态
      #define EPHY_BMRS_LINKSTAT 0x00000004 //链接状态

    当 LwIP 运行良好时、  

    我 调用了"Ethnet_readPHYRegister (EMAC_BASE、EPHY_BMSR)"并输出了返回值。

    无论实际链路状态如何、它始终为0xFFFF。

    您能猜到为什么?

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

    您好!  

    请参阅此帖子  

    https://e2e.ti.com/support/interface-group/interface/f/interface-forum/550756/problems-reading-dp83822-register-0x0001-basic-mode-status-register

    它提到寄存器0x01 (BMSR)始终需要两次读取。  寄存器中的该位是 LL (锁存低电平)。 因此、需要进行两次读取才能获得正确的实时状态。

    此致

    Siddharth