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.

[参考译文] AM2434:DP83822 驱动程序

Guru**** 2680595 points

Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1587578/am2434-dp83822-driver

器件型号: AM2434
主题: DP83869SysConfig 中讨论的其他部分

如果 DP83822 版本的驱动程序位于 mcu_plus_sdk/source/board/ethphy/ICSS_emac/ethphy_dp83869.c、如果您能提供该驱动程序、我们将不胜感激。
 
我们的电路板采用 DP83822 作为 PHY。 示例程序似乎假设使用 DP83869。 运行 CiA402 示例程序时、mdio_phyRead () 不会接收到来自 PHY 的 ACK。 一个可能的原因是实现的 PHY 与在 SysConfig 中配置的 PHY 不同。
我们将 SYSCONFIG > ETHPHY (ICSS-EMAC)> CONFIG_ETHPHY0 > ETHPHY 器件更改为 CUSTOM、并将 Custom Device Name 设置为 DP83822、但构建失败。
我们认为原因是 mcu_plus_sdk/source/board/ethphy/ss_emac/下不存在 ethphy_dp83822.c 和 ethphy_dp83822.h。
如果您有 ethphy_dp83822.c 和 ethphy_dp83822.h、请提供它们。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Shimondome Ryo:

    目前、我们不支持  ICSS_EMAC 选项中的 dp83822 PHY 驱动程序作为 SDK 的一部分。 但是、您可以根据   mcu_plus_sdk/source/board/ethphy/enet/rtos_drivers/php83822.c 中提供的 dp83822 src 驱动程序来实现相应的版本  

    除此之外、我想澄清以下意见:

    示例程序似乎采用 DP83869

    这是否意味着在 PHY 启动期间、DP83822 将被识别为 DP83869? 如果是、则无法正确处理驱动程序绑定。 您必须使用工作区中可用的相应器件型号和驱动程序文件来更新可用的 PHY 驱动程序列表。

    如果您需要更多支持来启用此功能、请告知我们。

    谢谢。此致、
    Teja。

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

    尊敬的 Teja:

    感谢您的留言。

    如果您能在基础上引导我完成相应版本的实施步骤、我将dp83822.c不胜感激。

    关于我的评论:“示例程序似乎假设使用 DP83869、“
    我想澄清一下、我当前正在修改 AM243x-LP ICSDK 示例程序、以在我设计的定制电路板上运行。
    由于 AM243x-LP 电路板包含 DP83869 PHY、因此对 ICSDK 进行了相应的配置。
    但是、我的定制电路板使用的是 DP83822 Phy、所以我想了解如何正确配置 ICSDK 以支持 DP83822。

    再次感谢您的持续支持。

    此致、
    Ryo Shimodome

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

    尊敬的  Ryo Shimodome:

    您可以按照 MCU PLUS SDK 的 Enet 部分中给出的指南集成自定义 PHY。 在 ICSS-EMAC 和 ENET 之间链接驱动程序所需的过程相同。 您可以在以下链接中找到该资源。

    https://software-dl.ti.com/mcu-plus-sdk/esd/AM243X/latest/exports/docs/api_guide_am243x/custom_enetphy_guide.html

    您还必须移植驱动程序以在新驱动程序中公开与现有 ethphy_dp83869.c 相同的 API 功能。

    谢谢。此致、
    Teja。

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

    请允许我确认程序。 如果有任何错误或步骤缺失、请指出这些错误。

    • 编辑 ETHPHY (ICSS-EMAC) 而不是 ETHPHY (Enet CPSW/ICSS)

      • ETHPHY 器件 :自定义
      • 自定义设备名称 : DP83822
    • 将多个文件复制到main.c所在的目录中:

      • C:\ti\mcu_plus_sdk_am243x_11_01_00_17\source\board\ethphy\enet\rtos_drivers\src\dp83822.c
      • C:\ti\mcu_plus_sdk_am243x_11_01_00_17\source\board\ethphy\enet\rtos_drivers\src\dp83822_priv.h
      • C:\ti\mcu_plus_sdk_am243x_11_01_00_17\source\board\ethphy\enet\rtos_drivers\src\phy_common_priv.c
      • C:\ti\mcu_plus_sdk_am243x_11_01_00_17\source\board\ethphy\enet\rtos_drivers\src\phy_common_priv.h
      • C:\ti\mcu_plus_sdk_am243x_11_01_00_17\source\board\ethphy\enet\rtos_drivers\include\dp83822.h
      • C:\ti\mcu_plus_sdk_am243x_11_01_00_17\source\board\ethphy\enet\rtos_drivers\include\phy_common.h
    • 使用进行构建 CCS 中完成

    它的格式

    • 基本示例程序是 EtherCAT CiA402 示例 符号链接。
    • 构建时、会发生以下错误:
    undefined           first referenced
    symbol                 in file
    ---------           ----------------
    gEthPhyFxns_DP83822 ./syscfg/ti_board_open_close.o
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Ryo Shimodome:

    请让我再次详细介绍一下、并确认流程。 本文档讨论了与 MCU Plus SDK 的集成、其中对 RTOS 驱动程序的维护方式略有不同。 由于这是一个周末、请允许我花几天时间验证所需的更改并更新您。  

    谢谢。此致、
    Teja。

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

    尊敬的 Ryo Shimodome:

    请按照以下步骤、从启用 DP83822 对 ethphy 的支持开始:

    1. 编辑  ETHPHY (ICSS-EMAC)  而不是  ETHPHY (Enet CPSW/ICSS)

      • ETHPHY 器件 :自定义
      • 自定义设备名称 : DP83822
    2. 制作现有 ethphy_dp83869/83826e 驱动程序的副本、并将文件和函数重命名为 dp83822
    3. 将新的 C 文件添加到 make 文件中的编译中:$(MCU_PLUS_SDK)/source/board/makefile. 。 。
      (例如:MCU_PLUS_SDK/source/board/makefile.am243x.r5f.ti-arm-clang.freertos)
    4. 将必要的宏定义更新为 DP83822 的正确偏移
    5. 更新所提供 API 的相应功能以适应 DP83822 并按预期运行。
    6. 清理并重新构建库
    7. 清理并重建示例

    完成以下步骤后、您应该能够为 DP83822 驱动 EMAC 驱动程序启用 ethphy 驱动程序。 如果您对此问题有其他疑问、敬请告知。

    谢谢。此致、
    Teja。

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

    除了您指出的步骤之外、我还执行了以下操作:

    • 已创建 CUST_PHY_dp83822.c CUST_PHY_dp83822.h

    但是、当运行 EtherCAT CiA402 示例时、它无法正常工作:

    • 从 EtherCAT 主设备扫描期间未检测到子设备。
    • EC_SLV_APP_cia402Application () (使用注册的回调函数 EC_API_SLV_CiA402_registerApplication() ) 未被调用。

    以下是我的问题:

    • 类型 ethphy_dp83822.c CUST_PHY_dp83822.c 、和 CUST_PHY_dp83822.h 是否提供?
    • 是否有任何其他项目需要在 SysConfig 中配置?
    • 在什么条件下注册回调函数 EC_API_SLV_CiA402_registerApplication() 调用了? (数据包接收?)
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Ryo Shimodome:

    您能否检查您添加的驱动程序是否也在 ti_board_config.c 中的可用驱动程序中提供? (例如:gEnetPhyDrvs 列表)

    如果没有、PHY 器件仍会使用列表中提供的通用 PHY 驱动程序。 请确保通用驱动程序始终是可用驱动程序列表中的最后一个条目。

    关于 EtherCAT 应用程序的问题、我会将此主题指派给相应的专家来帮助您解决问题。

    谢谢。此致、
    Teja。

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

    我检查sysconfig/ti_board_config.c,但几乎没有什么写在它. 同样适用于sysconfig/ti_board_config.h

    ```μ s

    TI_board_config.c

    #include “ti_board_config.h"</s>“

    /*
     *自动生成的文件
     */

    void Board_init (void)
    }

    void Board_deinit (void)
    }

    ```μ s

    ```μ s

    ti_board_config.h

    /*
     *自动生成的文件
     */

    #ifndef TI_Board_CONFIG_H
    #define TI_Board_CONFIG_H

    #include “ti_drivers_config.h"</s>“

    #ifdef _cplusplus
    extern “C"{“{
    #endif

    void Board_init (void);
    void Board_deinit (void);

    /*
     * EEPROM
     */
    #include

    /* EEPROM 实例宏*/
    #define CONFIG_EEPROM0 (0U)
    #define CONFIG_EEPROM_NUM_Instances (1U)

    /*
     *闪存
     */
    #include

    /*闪存实例宏*/
    #define CONFIG_FLASH0 (0U)
    #define CONFIG_FLASH_NUM_Instances (1U)

    /*
     LED
     */
    #include

    /* LED 实例宏*/
    #define CONFIG_LED0 (0U)
    #define CONFIG_LED_STATUS (1U)
    #define CONFIG_LED_ERROR (2U)
    #define CONFIG_LED_NUM_Instances (3U)

    /*
     * ETHPHY
     */
    #include
    /* ETHPHY 具体包括*/

    /* ETHPHY 实例宏*/
    define CONFIG_ETHPHY0 (0U)
    #define CONFIG_ETHPHY1 (1U)
    #define CONFIG_ETHPHY_NUM_Instances (2U)


    #ifdef _cplusplus
    }
    #endif

    #endif /* TI_Board_CONFIG_H */

    ```μ s

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

    您好、

    请让我查看工业通信 SDK、并返回给您、了解如何配置以使用 SysConfig GUI 中的自定义 phy 驱动程序。 此输出看起来与预期不同。 能否详细介绍一下您所使用的 SDK 版本? 这将有助于重现问题并找到正确的步骤以进一步解锁您。  

    谢谢。此致、

    Teja

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

    抱歉、以下问题已解决。  

    [引用 userid=“675123" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1587578/am2434-dp83822-driver/6122418
    • 从 EtherCAT 主设备扫描期间未检测到子设备。
    • EC_SLV_APP_cia402Application () (使用注册的回调函数 EC_API_SLV_CiA402_registerApplication() ) 未被调用。
    [/报价]

    原因是 PHY LED0 配置。 我将自动加载 (bootstrap) 引脚 CRS 从更改为  Mode2  最终目的  模式 4
    Mode2 :对于良好的链路、闪烁表示 TX/RX 活动
    模式 4 :开表示链路良好、关表示无链路

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

    抱歉、以下问题已解决。  

    [引用 userid=“675123" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1587578/am2434-dp83822-driver/6122418
    • 从 EtherCAT 主设备扫描期间未检测到子设备。
    • EC_SLV_APP_cia402Application () (使用注册的回调函数 EC_API_SLV_CiA402_registerApplication() ) 未被调用。
    [/报价]

    原因是 PHY LED0 配置。 我将自动加载 (bootstrap) 引脚 CRS 从更改为 Mode2 最终目的 模式 4
    Mode2 :对于良好的链路、闪烁表示 TX/RX 活动
    模式 4 :开表示链路良好、关表示无链路

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

    您好、

    感谢您的确认。 如果您还有其他疑问、敬请告知。

    谢谢。此致、
    Teja。

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

    AM243x-LP 的 EtherCAT 子器件示例中包含 DP83869 驱动程序、该驱动程序使用 CUST_PHY_DP83869_readExtendedRegister () 和 CUST_PHY_DP83869_writeExtendedRegister () 函数。 DP83822 是否需要等效功能? 此外、必须为 DP83822 正确配置哪些扩展寄存器?

    感谢你能抽出时间。 我自己解决了这个问题。

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

    您好、

    感谢您的更新。 如果您需要进一步说明、请告知我们。

    谢谢。此致、
    Teja。