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.

[参考译文] AM6442:FreeRTOS 以太网可编程上电时强制速度和双工

Guru**** 2558250 points
Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1570064/am6442-freertos-ethernet-programmable-forced-speed-and-duplex-on-power-up

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

工具/软件:

正在寻找一种强制以太网端口启动的速度和双工的方法。  这将基于存储的属性。  

在双 Mac 模式下运行 ICSSG。  一切正常工作、将 syscfg MAC 端口配置设置为 ENET_SPEED_AUTO 和 ENET_DUPLEX_AUTO、将器件设置为 DP83869、将其地址设置为 3 和 15。 将 MDIO 配置设置为 MDIO_MODE_STATE_CHANGE_MON。

我找不到任何更改速度和双工的示例。

我知道我一定会想念一些东西。

Robert

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

    您好 Robert:

    在 SysConfig 中、您选择了  ENET_SPEED_AUTO 和 ENET_DUPLEX_AUTO 选项 、该 SysConfig 中提供了下拉选项、可用于选择各种速度和双工选项。 可用配置为 10M、100M 和千兆位(用于速度)、全双工和半双工(用于双工)。

    在 SysConfig 中更改这些选项后、保存更改并重新编译示例、此示例将以新配置的速度和双工模式进行设置。

    我们希望这可以解决您的问题。 如果您有任何其他疑问、请告知我们。

    此致、
    Teja。

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

    不需要、希望根据客户需求、在每次上电时都能改变不同的速度和双工模式。 它需要能够在运行时更改、而不是在编译时更改。  实际上、目标是能够随时更改速度和双工、然后通知 PHY 重新同步、现在以新的速度和双工进行连接。

    Robert

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

    你(们)好

    这可以通过以下一系列步骤来关闭端口、然后更新内部句柄以更新 PHY 链路配置、并再次启动端口来实现。 我想了解客户希望在运行时将速度和双工模式更改为固定链路而不是使用自动协商的用例。 您能否提供更多详细信息、以便我们能够提供更好的解决方案来满足要求?

    目前、由于不支持在运行时更新链路配置、因此用户必须关闭 PHY 句柄并更新链路配置、然后才能再次以更新的链路速度和双工模式重新打开 PHY。 还有其他可能的方法涉及向 enetphy 层添加额外的 API、这些 API 从我们这边并未进行测试 根据要求、我们可以提出任何其他可能的选择。

    此致、
    Teja。

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

    当我们生产工业控制时、我们的客户通常喜欢将交换机上的所有设备锁定(即连接到交换机上的哪个端口以及速度和双工)。 它们将此作为一个安全问题,如果端口上不应该有的东西可以关闭端口。)  

    不需要在上电时动态更改端口速度/双工、但在编译时未知设置。  自动生成的文件“ti_enet_open_close.c"中“中有一个很好的结构、除了是静态的、无法访问它、否则它会很有用。 我真的很讨厌修改生成的代码、因为任何更新/修复都可能会在以后破坏代码。 我可以建议以后的版本是使“static const EnetAppInst-Cfg Info_Link enetAppMacPortLinkCfg[]“不是“static const“。  这样就可以在堆栈启动并且一切都按预期运行之前完成更新。

    Robert

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

    您好 Robert:  

    我将把这一反馈意见反馈给开发团队。 同时、您可以尝试上述方法。 由于也必须更新 macport 配置、因此我需要做一些处理此用例的工作。 我将通过星期一更新您、因为接下来的 2 天是印度的公共假日。  

    感谢您的耐心。 请告诉我这个时间线是否对您有用。 我们将设法找到一种替代办法。

    此致、
    Teja。

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

    好的、我找到了一个解决方案、在 makefile 中复制/修改该文件以使结构成为非静态项、然后编译该文件、唯一的问题是没有在头文件中声明结构、我必须创建 typedef、在其中修改数据。

    #下面修改 ti_enet_open_close.c 文件以删除
    #结构中的静态部分,定义 enetAppMacPortLinkCfg[]实例。
    #这是为了允许在启动期间修改。
    ../lwip/services/ti_enet_open_close_DNE.c src:generated /ti_enet_open_close.c
                 SED -e 's/static const EnetAppInsts Info_Link Cfg/EnetAppInsti Info_Link Cfg/g'$<>$@

    Robert