尊敬的 TI 专家:
我们在固件中使用自定义 PHY 驱动程序(使用 SDK 8.4.0.17与 lwip)、并且我们在以太网端口没有与其他以太网端口的链接时遇到意外行为。
我们需要在第一次复位后配置链路/操作 LED、以使这些指示灯正常工作。 但对于未连接的以太网端口、我们观察到~ 8秒后出现短暂闪烁。
在启用 PHY 状态的日志记录后、我们发现似乎有一个自动协商超时、这会导致一个复位、然后是该 PHY 端口的新配置。
[17222] DebugP: EnetPhy_phyTimeout: PHY 3: timeout has occurred [17222] DebugP: EnetPhy_setNextState: PHY 3: NWAY_WAIT -> FOUND (0 ticks) [17322] DebugP: EnetPhy_setNextState: PHY 3: FOUND -> RESET_WAIT (10 ticks) [17422] DebugP: EnetPhy_setNextState: PHY 3: RESET_WAIT -> ENABLE (0 ticks) [17522] DebugP: EnetPhy_enableState: PHY 3: enable [17524] DebugP: EnetPhy_enableState: PHY 3: req caps: FD100 HD100 FD10 HD10 [17524] DebugP: EnetPhy_enableState: PHY 3: PHY caps: FD100 HD100 FD10 HD10 [17524] DebugP: EnetPhy_enableState: PHY 3: MAC caps: FD1000 FD100 HD100 FD10 HD10 [17524] DebugP: EnetPhy_enableState: PHY 3: refined caps: FD100 HD100 FD10 HD10 [17524] DebugP: EnetPhy_enableState: PHY 3: PHY is NWAY-capable [17524] DebugP: EnetPhy_enableState: PHY 3: setup NWAY [17524] DebugP: EnetPhy_setupNway: PHY 3: NWAY advertising: FD100 HD100 FD10 HD10 [17524] DebugP: EnetPhy_setupNway: PHY 3: config is needed [17525] DebugP: EnetPhy_setupNway: PHY 3: restart autonegotiation [17525] DebugP: EnetPhy_setNextState: PHY 3: ENABLE -> NWAY_START (50 ticks) [17622] DebugP: EnetPhy_setNextState: PHY 3: NWAY_START -> NWAY_WAIT (80 ticks) [25722] DebugP: EnetPhy_phyTimeout: PHY 3: timeout has occurred [25722] DebugP: EnetPhy_setNextState: PHY 3: NWAY_WAIT -> FOUND (0 ticks) [25822] DebugP: EnetPhy_setNextState: PHY 3: FOUND -> RESET_WAIT (10 ticks) [25922] DebugP: EnetPhy_setNextState: PHY 3: RESET_WAIT -> ENABLE (0 ticks) [26022] DebugP: EnetPhy_enableState: PHY 3: enable [26024] DebugP: EnetPhy_enableState: PHY 3: req caps: FD100 HD100 FD10 HD10 [26024] DebugP: EnetPhy_enableState: PHY 3: PHY caps: FD100 HD100 FD10 HD10
在该 SDK 的文档(AM243x MCU+ SDK:以太网 PHY 集成指南)中、我找不到有关超时和该状态转换的信息。
增加 nwayWaitStateTicks 可能是某种变通办法、但我应该配置什么来完全禁用自动协商超时?
ptPhyCfg->timeoutCfg.nwayWaitStateTicks = 0xFFFFFFFF;
此致
Alex