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:CPSW3G 上支持 RGMII 的10Mbps 速率

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1291655/am2434-supports-10-mbps-with-rgmii-on-cpsw3g

器件型号:AM2434
主题中讨论的其他器件:TMDS243EVMDP83867IR

TRM 描述 AM243x 通过 CPSW3G 上的 RGMII 支持10Mbps 速率。

AM64x/AM243x 技术参考手册(修订版 H)
12.2.1.4.6.10.3 RGMII 接口
12.2.1.4.6.10.3.1特性
"支持1000/100/10Mbps 速度"

PHY 在 CPSW3G 下以10Mbps 速率与 RGMII 搭配使用是否有任何要求?

要在 CPSW3G 下配合 RGMII 以10Mbps 速率使用、是否需要使用带内模式和支持带内状态的 PHY?

AM64x/AM243x 技术参考手册(修订版 H)
12.2.1.4.6.10.3 RGMII 接口
12.2.1.4.6.10.3.3带内工作模式

带有 DP83867IR 的 TMDS243EVM 是否支持10Mbps 以及 CPSW3G 上的 RGMII?

如果是、您能否告诉我如何使用最新的 MCU+ SDK 09.00.00.00.35、以10Mbps 的速率和 CPSW3G 上的 RGMII 运行 TMDS243EVM?

此致、

大辅

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

    您好、Daisuke、

    由于这一问题的专家于2015年11月14日至11月放假,因此答复可能会拖延。 感谢您的耐心。
    此致、

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

    尊敬的 Maeda Daisuke:

    对于延迟回复深表歉意。 是的、10Mbps RGMII 需要带内模式。

    要在10 Mbps RGMII 模式下运行,请在" EnetApp_initLinkArgs "项目中的函数:

    更改、如下所示:

    之后、重新编译您的项目。 如果您在这方面遇到任何问题、敬请告知。

    此致、
    Shaunak

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

    尊敬的 Shaunak-san:

    感谢您的答复。

    您还可以回答我的其他问题吗?

    PHY 在 CPSW3G 下以10Mbps 速率与 RGMII 搭配使用是否有任何要求?

    要在 CPSW3G 下配合 RGMII 以10Mbps 速率使用、是否需要使用带内模式和支持带内状态的 PHY?

    [/报价]

    此致、

    大辅

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

    尊敬的 Shaunak-san:

    我手头没有 EVM、因此无法立即进行检查。

    我发现一个文章尝试了更改"EnetApp_initLinkArgs"、但存在问题。

    e2e.ti.com/.../am243x-cpsw-10mbps-packet-transmission-error

    你说让我尝试在本地重现它。

    请尝试使用其他示例或最新的 MCU+ SDK 09.00.00.35。

    此致、

    大辅

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

    尊敬的 Daisuke-San:

    是的、需要带模式下才能使10Mbps RGMII 工作。 如果您想了解更多相关信息、我会在这里留下几个参考文献:

    我们  现在正在研究有关10Mbps UDP 通信的另一个问题。 我会在做一些内部测试后继续张贴内容。 我会在下周早些时候与您讨论。

    此致。
    Shaunak

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

    尊敬的 Shaunak-san:

    感谢您的答复。

    如何修改代码以设置 CPSW_PN_MAC_CONTROL_REG_k 寄存器中的 EXT_EN 位?

    在 MCU+ SDK 中、CSL_cpgmac_sl.c 中提供了"CSL_CPGMAC_SL_enableExtControl ()"、用于设置 CPSW_PN_MAC_CONTROL_REG_k 寄存器中的 EXT_EN 位、并定义了其他函数和宏以访问 ENET 寄存器、但它们似乎未使用、并且似乎是通过 IOCTL 接口访问的。

    如何通过 IOCTL 接口设置 CPSW_PN_MAC_CONTROL_REG_k 寄存器中的 EXT_EN 位?

    相关的 ENET 寄存器似乎是在 EnetApp_driverOpen ()中设置的。

    是否可以在 EnetApp_driverOpen ()之后添加"CSL_CPGMAC_SL_enableExtControl ()"?

    此致、

    大辅

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

    尊敬的 Shaunak-san:

    感谢您的支持。 我们的客户正在等待您的回复。

    请尽快回答。 请您及时回复。

    此致、

    大辅

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

    尊敬的 Shaunak-san:

    很抱歉。 我们的客户正在等待您的回复。

    请尽快回答。 请您及时回复。

    此致、

    大辅

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

    您好、Daisuke、
    你可以在 EnetApp_driverOpen ()之后调用它,但从软件的角度来看,调用它似乎不是一个好主意,
    我们建议在以下 函数中对驱动程序源代码进行修改。
     
    文件:'source/networking/enet/core/nore src mod/cpsw_macport.c':

    static int32_t CpswMacPort_setInterface(CSL_Xge_cpswRegs *regs,
                                            Enet_MacPort macPort,
                                            const EnetMacPort_Interface *mii)
    {
    
    ....
    
        else if (EnetMacPort_isRgmii(mii))
        {
    -       CSL_FINS(macControl, XGE_CPSW_PN_MAC_CONTROL_REG_EXT_EN, 0U);
    +       CSL_FINS(macControl, XGE_CPSW_PN_MAC_CONTROL_REG_EXT_EN, 1U);
            CSL_FINS(macControl, XGE_CPSW_PN_MAC_CONTROL_REG_GIG_FORCE, 1U);
            status = ENET_SOK;
        }
    ...
    }


    完成上述更改后、必须清理并重新编译库:

    gmake -s DEVICE:=am243x PROFILE:=release libs-clean
    gmake -s DEVICE:=am243x PROFILE:=release libs
    gmake -s DEVICE:=am243x PROFILE:=debug libs-clean
    gmake -s DEVICE:=am243x PROFILE:=debug libs-clean

    然后重新编译您的应用程序/项目以及在 " EnetApp_initLinkArgs "用于将链路速度设置为10Mbps 的功能-

    谢谢。此致、

    普拉德普

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

    Pradeep-San、您好!

    感谢您的答复。

    我修改了代码、构建了下面的库和示例、并在 EVM 上运行它、但它仍然以1Gbps 的速率进行链接。

    C:\ti\mcu_plus_sdk_am243x_09_00_00_35\examples\networking\enet_layer2_cpsw

    运行后、CPSW_PN_MAC_CONTROL_REG_0寄存器(0802 2330h)中的 EXT_EN 位设置为1b。

    此外、我将 CPSW_PN_MAC_CONTROL_REG_0寄存器(0802 2330h)中的 gig_force 位清除为0b、但它仍以1Gbps 进行链接。

    是否对您建议的修改进行了测试?

    以10M-bps 的速率进行链接还需要哪些修改?

    此致、

    大辅

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

    Pradeep-San、您好!

    我怀疑 PHY (DP83867)仍设置为1Gbps。

    下面的更改是否也会强制 PHY 侧达到10Mbps?

    linkCfg->speed = ENET_SPEED_10Mbit;

    如果不是、如何修改以强制 PHY 达到10Mbps?

    此致、

    大辅

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

    Pradeep-San、您好!

    很抱歉。 我们的客户正在等待您的回复。

    要以10Mbps 的速率连接 DP83867、需要设置以下寄存器中的位。

    ANAR[8].TX_FD = 0b:不支持100Base-TX 全双工
    Anar[7].tx = 0b:不支持100Base-TX
    Anar[6].10_fd = 1b:本地器件支持10BASE-Te 全双工
    Anar[5].10BASETE_EN = 1b:本地器件支持10BASE-Te。

    CFG1[9].1000BASE-T 全双工= 0b:不广播1000Base-T 全双工功能
    CFG1[8].1000BASE-T 半双工= 0b:不广播1000Base-T 半双工功能

    DP83867IR/CR 耐用型高抗扰度10/100/1000以太网物理层收发器数据表(修订版 G)
    表8-13. 自协商通告寄存器(ANAR)、地址0x0004 (页63)
    表8-18. 配置寄存器1 (CFG1)、地址0x0009 (页69)

    如何修改代码以设置 PHY 寄存器?

    下面的代码似乎用于设置 PHY 寄存器、但我找不到可以修改的代码。

    C:\ti\mcu_plus_sdk_am243x_09_00_00_35\source\networking\enet\core\solid\phy\phy\ src
    dp83867.c
    enetphy.c

    请尽快回答。 请您及时回复。

    此致、

    大辅

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

    您好、Daisuke、

    关于此

    下面的更改是否也会强制 PHY 侧达到10Mbps?

    linkCfg->speed = ENET_SPEED_10Mbit;

    [/报价]

    是的、要承担。

    您的 PHY 是否支持带内信令模式?  我们向另一位客户推荐了同样的解决方案并且它已经成功、更多详细信息- https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1292683/am243x-cpsw-10mbps-packet-transmission-error




    下面的代码似乎用于设置 PHY 寄存器、但我找不到可以修改的代码。

    C:\ti\mcu_plus_sdk_am243x_09_00_00_35\source\networking\enet\core\solid\phy\phy\ src
    dp83867.c
    enetphy.c

    请尽快回答。 请您及时回复。

    [/报价]


    感谢您的耐心! 我今天将对此进行重现、并在一天之内让您了解更多细节。

    此致、
    普拉德普

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

    Pradeep-San、您好!

    感谢您的答复。

    您的 PHY 是否支持带内信令模式?  我们向另一位客户推荐了同样的解决方案并且它已经成功、更多详细信息- https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1292683/am243x-cpsw-10mbps-packet-transmission-error

    我想他们是使用10Mbps 链路伙伴进行测试的。

    感谢您的耐心等待! 我今天将重新创建这个,让你在一天内了解更多细节。

    感谢您的支持!
    请尽快回答。 请您及时回复。

    此致、

    大辅

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

    您好、Daisuke、

    我已经浏览了您的日志、并且能够在我们的测试中重现该情形。


    要手动设置链路速度、在带内操作中、需要在应用程序中手动配置链路速度和链路双工。
    将链路速度或链路双工设置为"自动"将产生100M 和1G 以及10M 的广播功能。 我们将单独解决该问题。 但是、建议您 现在不要将速度和双工设置为"自动"。

    请在应用程序和驱动程序源代码中设置以下配置、以在带内模式下启用10Mbps:

    文件:'source/networking/enet/core/nore src mod/cpsw_macport.c':

    static int32_t CpswMacPort_setInterface(CSL_Xge_cpswRegs *regs,
                                            Enet_MacPort macPort,
                                            const EnetMacPort_Interface *mii)
    {
    
    ....
    
        else if (EnetMacPort_isRgmii(mii))
        {
    -       CSL_FINS(macControl, XGE_CPSW_PN_MAC_CONTROL_REG_EXT_EN, 0U);
    +       CSL_FINS(macControl, XGE_CPSW_PN_MAC_CONTROL_REG_EXT_EN, 1U);
            CSL_FINS(macControl, XGE_CPSW_PN_MAC_CONTROL_REG_GIG_FORCE, 1U);
            status = ENET_SOK;
        }
    ...
    }

    完成上述更改后、必须清理并重新编译库:

    gmake -s DEVICE:=am243x PROFILE:=release libs-clean
    gmake -s DEVICE:=am243x PROFILE:=release libs
    gmake -s DEVICE:=am243x PROFILE:=debug libs-clean
    gmake -s DEVICE:=am243x PROFILE:=debug libs

    然后重新编译您的应用程序/项目以及在 " EnetApp_initLinkArgs "将链路速度设置为 ENET_SPEED_10Mbit (10Mbps)并将链路双工设置为 ENET_DUPLEX_FULL 的函数-

    如果您在此主题方面还有其他问题、敬请告知。

    谢谢。此致、
    Teja.