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.

[参考译文] MCU-PLUS-SDK-AM243X:DP83826E 驱动器不会根据需要设置 LED2。

Guru**** 2393935 points
Other Parts Discussed in Thread: DP83826E, DP83826I, AM2434

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1185696/mcu-plus-sdk-am243x-dp83826e-driver-does-not-set-led2-as-needed

器件型号:MCU-PLUS-SDK-AM243X
主题中讨论的其他器件:DP83826EDP83826IAM2434

您好!

我们使用的是 MCU 和 SDK 08.04.00.01。

我们板上有 DP83826-以太网 PHY。 我们使用直接连接到 PHY 的 LED:LED0用于 Rx/Tx、LED2用于链路/100Mbit 信令。
SDK 中提供了 DP83826E 驱动程序、我想它也可用于 DP83826衍生产品。

因此、我尝试如下设置:

                ETHPHY_DP83826E_LedSourceConfig ledConfig;
                ETHPHY_DP83826E_LedBlinkRateConfig_s ledBlinkConfig;
                /* ACT-LED */
                ledConfig.ledNum = ETHPHY_DP83826E_LED0;
                ledConfig.mode = ETHPHY_DP83826E_LED_MODE_LINK_OK_AND_BLINK_ON_RX_TX;
                ETHPHY_command(&ethPhyConfig_, ETHPHY_CMD_CONFIGURE_LED_SOURCE, (void *)&ledConfig, sizeof(ledConfig));

                /* LK-LED */
                ledConfig.ledNum = ETHPHY_DP83826E_LED2;
                ledConfig.mode = ETHPHY_DP83826E_LED_MODE_SPEED_100BTX;
                ETHPHY_command(&ethPhyConfig_, ETHPHY_CMD_CONFIGURE_LED_SOURCE, (void *)&ledConfig, sizeof(ledConfig));

                ledBlinkConfig.rate = ETHPHY_DP83826E_LED_BLINK_RATE_200_MS;
                ETHPHY_command(&ethPhyConfig_, ETHPHY_CMD_CONFIGURE_LED_BLINK_RATE, (void *)&ledBlinkConfig, sizeof(ledBlinkConfig));

遗憾的是、LED2保持关闭状态。 我还尝试将其设置为 ETHPHY_DP83826E_LED_MODE_LINK_OK、但也未成功。

我检查了驱动程序实现、看不出它为什么不起作用。

然后、我检查了数据表、也无法确定问题所在。

驱动程序似乎正确初始化了 LEDCFG 寄存 器、LED2_GPIO_CFG (无论如何设置为0008h = LED2为默认值)也是如此。

然后、我尝试将 LEDCFG2 (0x469)寄存器直接设置为0xFFFF、以检查 PHY 是否正常工作、我们可能会遇到硬件问题。 但 LED 会突然亮起。 因此、将 LED2_drv_val 设置为1即可正常工作。

我不确定是否需要额外配置一些特殊功能、但数据表并未指示要执行任何其他操作、SDK 中的编译器也不会提供有关此功能的任何其他选项。

PHY 本身是否也存在错误?

我们的新布局基于此实现、正确运行此实现非常重要。

此致

Felix

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

    你(们)好、Fel

    我们已经开始研究这个问题。

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

    您好、Felix、

    [引用 userid="453845" URL"~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1185696/mcu-plus-sdk-am243x-dp83826e-driver-does-not-set-led2-as-needed "] SDK 中提供了 DP83826E 驱动程序,我想它也可用于 DP83826-derivate。

    由于 phy 特定的驱动程序访问 phy 特定的寄存器、此假设可能不正确。 您能否主动为您正在使用的特定 phy 获取驱动程序。

    您能否还提到您使用的是 dp83826 phy 的哪个派生品吗?

    BR

    Nilabh A.

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

    您好 Nilabh、

    我刚刚检查过、两个导数的数据表完全相同。 因此、83826的数据表总共只有一个:  数据表中的 www.ti.com/.../DP83826E 不同的导数是不同的:

    我们不确定从何处获取"无 E"推导的驱动程序、但如前所述、寄存器应始终相同。 我们使用的是 DP83826I。

    此致

    Felix

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

    您好、Felix、

    您在这里使用此 phy 驱动程序的示例是什么? 此 phy 驱动程序只能与基于 ICSS EMAC 的示例配合使用。 如果与基于 Enet 的示例或基于 Kunbus 堆栈的示例一起使用、此驱动程序将无效、因为它们具有自己的 phy 驱动程序实现方式。

    BR

    Nilabh A.

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

    你好、Nilabh、

    我们不对其使用任何示例。 我们将其与 ICSS-EMAC 结合使用。 它与 PRU-ICSS 和 ethphy-drivers 一起使用、然后由第三方堆栈(而不是 Kunbus)使用。 由于我们可以访问源代码、因此我们检查了是否有任何其他 phy-config 完成或任何其他操作、但情况并非如此。 只针对 MDIX、全双工、自动协商和物理层标识检查了一些(与 LED 无关)物理层配置。
    这是通过相同的驱动程序函数(MDIO_phyRegRead / MDIO_phyRegWrite)完成的。

    此致
    Felix

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

    嗨、Felix、

    在这种情况 下、您可以参考 MCU_PLUS_SDK\examples\industrial_comms\EtherCAT_slave_Beckhoff_ssc_demo\am263x-cc\tisoc.c、其中显示了 EtherCAT 示例中相同物理层的用法。 您应该能够找到您可能缺少的任何配置、因为此演示已成功显示配置此 LED。

    如果 您需要任何其他信息、请告诉我。

    BR

    Nilabh A.

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

    您好 Nilhab、

    谢谢。 这正是我在第一个帖子中用于获取我提到的代码的示例。 代码是否有问题? 我使用了函数 itic_ethphyInit 作为参考。

    例如、我们可以为活动 LED 配置闪烁速率。 只有 LED2上指示的链路/100Mbits 无法正常工作。

    此致
    Felix

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

    好的、我在这里有几个问题、您使用的是哪种板、是 AM263x、如果没有、请确保您使用的引脚连接到实际的 LED。  

    我将在 am263的末尾尝试该驱动程序,以确保代码或驱动程序没有任何问题。

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

    我们将自己的电路板与 AM2434搭配使用。
    我只需提供一个片段:

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

    如果 LED2信号映射到实际 LED、您能否验证上述原理图。

    此外、Felix、请提供完整的原理图供审核。 您可以在个人 e2e 消息中共享它。

    BR

    Nilabh A.

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

    因此、我重新检查了数据表。
    它指出:

    因此、可以将 COL (在原理图中、引脚28)配置为 LED2。
    这是通过寄存器完成的。
    那么、我们的号召

    跳至驱动程序以:

    更改为

    更改为


    ETHPHY_DP83826E_LED2_GPIO_CFG_REG 的值为0x0305。
    根据数据表、它是正确的寄存器:

    phyRegVal 为0。 因此它必须是 LED2。

    在同一函数中、配置了模式、其中 ETHPHY_DP83826E_LEDCFG_LED2_SHIFT 为0x0008:


    根据数据表、这里的一切都是正确的:


    数据表未提及配置任何其他内容。

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

    您好、Felix、

    审核完成后、我将返回。 感谢您的耐心。