MQX4.0如何自适应10/100Mbps网络(How to self-adapte to 10/100Mbps ethernet in MQX4.0)

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

MQX4.0如何自适应10/100Mbps网络(How to self-adapte to 10/100Mbps ethernet in MQX4.0)

MQX4.0如何自适应10/100Mbps网络(How to self-adapte to 10/100Mbps ethernet in MQX4.0)

本文分享自China-FAE Team,谢谢同事的sharing!

MQX如何自适应10/100Mbps网络   

 

    Kinetis K60 媒体接入控制器MAC(Media Access Layer)实现了数据链路层,同时支持10Mbps和100Mbps两种速率。MAC通过MII/RMII接口与PHY芯片连接。     

   现有的MQX4.0 RTCS协议栈在K60  Tower System Board无法支持与10Mbps交换机等网络设备通信。问题的原因是MQX4.0 BSP初始化代码macnet_init.c默认将MAC配置为100Mbps/Full Duplex模式。

8014_8014.PNG11.PNG

    MQX4.0 BSP针对TWR-SER所使用的PHY芯片(KSZ8041NL)的初始化代码没有考虑用户指定链路速率的情况,仅由PHY做默认设置。为了能够自适应链路速率,不仅需要设置KSZ8041NL的控制寄存器(0.13 Speed Select、0.8 Duplex Mode),还要设置K60的ENET_RCR/ENET_TCR寄存器。

解决办法:

修改MQX4.0 BSP代码,使能PHY芯片与网络设备端进行链路速率自动协商,然后读取PHY协议好的链路速率,通过这个链路速率设置MAC的相关寄存器ENET_RCR/ENET_TCR。MQX4.0的 PHY的接口函数已经提供了speed和duplex函数,可供MAC初始化调用,可以保证系统代码的可移植性。

8021_8021.PNG22.PNG

8022_8022.PNG33.PNG

测试结果:

修改后的MQX4.0 BSP代码能够自适应10/100Mbps网络,网络通信正常。

Comments

With this code, have you tested the following condition?


1) Boot up K60 with 100/Full Duplex device connected.

2) Disconnect the ethernet

3) Plug in 10/Half duplex device and verify connectivity.

No ratings
Version history
Last update:
‎12-15-2013 06:43 AM
Updated by: