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

Document created by Const Yu Employee on Dec 15, 2013
Version 1Show Document
  • View in full screen mode

本文分享自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模式。

11.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初始化调用,可以保证系统代码的可移植性。

22.PNG

33.PNG

 

测试结果:

 

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

Attachments

    Outcomes