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:如何检测是否存在以太网物理连接?

Guru**** 2540190 points
Other Parts Discussed in Thread: TMDSCNCD28388D, C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/926113/tms320f28388d-how-do-i-detect-whether-the-ethernet-physical-connection-is-present-or-absent

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

您好!

在 TMDSCNCD28388D F28388D controlCARD 的背景下 、如何在软件中检测该卡是物理连接还是从网络断开?

此外、我怀疑连接或断开事件会生成中断、那么我应该如何将函数附加到这些中断呢?

编辑:好的、我想我知道它是怎么发生的:

  1. 为 INT_EMAC 中断注册函数。
  2. 在该中断函数中、使用  EtherNet_readPHYRegister 检查链路状态的变化
  3. 如果发生更改、请读取  MAC_RevMII_Common_Status 寄存器以查看新的链路状态值。
  4. 使用新的链路状态值继续执行中断的其余部分。  

此致、

李孝华

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

    Howard、

    我们正努力让您找到最合适的人来回答您的问题。 我们将在7月27日之前回复您。

    目前、您是否正在使用任何软件示例? 这可能有助于回答您的问题。

    此致、
    Cody  

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

    [引用用户="Cody Watkins"]

    Howard、

    我们正努力让您找到最合适的人来回答您的问题。 我们将在7月27日之前回复您。

    目前、您是否正在使用任何软件示例? 这可能有助于回答您的问题。

    此致、
    Cody  

    [/报价]

    您好、Cody、

       以太网.c 中的 Ethernet_genericISR 函数 显示了如何检测链路状态的变化。

    我只需要知道如何读取 MAC_RevMII_Common_Status 寄存器的位2、那么我将会很好。

    编辑:好的、因此 Ethernet_readPHYRegister 也用于获取  MAC_RevMII_Common_Status 寄存器的值。

    那么、这就是它的正确实现方式吗?

    revmiiCmnStatus = Ethernet_readPHYRegister (ethernet_device_struct.baseAddes.enet_BASE、ethernet_REVMII_common_status);
    
    uint16_t lnkStatus = revmiCmnStatus & 0x4; 

    斯递增、

    李孝华

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

    您好 Howard、  

    只有当两个器件在没有 PHY 的情况下连接但希望通过以太网进行通信时、才会使用 RevMII 模式。 controlCARD 具有 PHY、因此 RevMII 接口无法与 controlCARD 配合使用。 您提到的代码片段是特定于 RevMII 模式的、不应在 controlCARD 上使用。 但您的逻辑正确。  

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

    C2000Ware 中的 Ethernet_ex2_phy_loopback 示例可用于访问控制卡上 PHY 寄存器的序列。  

    phyRegContent= Ethernet_readPHYRegister (EMAC_BASE、0x1);将允许您读取 BMSR 寄存器。  

    此致、

    Sudharsanan  

     

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

    大家好、我正在尝试执行同样的操作、检测电缆何时插入和拔出。

    您是否想为其共享代码? 它是否会产生中断?

    谢谢你

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

    您好!

    我没有尝试过任何代码、但我会根据这些代码创建一个:

    1. ETHERNET_EX2_phy_loopback -将此用作 PHY 寄存器访问序列的参考。

     2.阅读 F28388D 控制卡中 DP83822 PHY 的中断引脚功能。 它连接到 MCU 的 GPIO108。 启用外部 PHY 的中断引脚模式、使用链路状态更改后的中断。  

     在 MCU 中处理该中断。  

    此致、

    Sudharsanan