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.
尊敬的支持团队:
我的应用程序在 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。
您能猜到为什么?
您好!
请参阅此帖子
它提到寄存器0x01 (BMSR)始终需要两次读取。 寄存器中的该位是 LL (锁存低电平)。 因此、需要进行两次读取才能获得正确的实时状态。
此致
Siddharth