1.PHY芯片简介

从硬件上来看,一般的PHY芯片为模数混合电路负责接收光、电一类的模拟信号,经过解调和A/D转换通过MII/RMII接口将信号交给MAC内核处理
PHY芯片的作用
RJ45就是网口,用来接收光电信号;然后经过解调和AD转换,PHY芯片把这个数据交付给MAC内核。

2.LAN8720A与YT8512

都是低功耗的10/100M以太网PHY层芯片,支持MII以及RMII接口与以太网MAC层通信。
支持Auto MDIX自动翻转功能,无需更换网线即可将连接更改为直连或交叉连接。
主要特性:

  1. 自动翻转:支持Auto MDIX自动翻转功能,可实现例如:对等线和交叉线连接;
  2. 多种接口:支持MII和RMII介质接口;
  3. 传输速率:支持10/100Mbit/s传输速率;
  4. 低功耗:支持低功耗运行。

3.PHY地址设置

SMI站管理接口就是通过PHY地址来访问指定的PHY芯片,故PHY地址也可简称为:PHY芯片的标识。
SMI最多可以管理32个PHY芯片,就是通过PHY地址来进行管理的。

LAN8720A的PHY地址设置

LAN8720A的PHY地址相关引脚
从图中可以看到,地址仅与PIN10相关默认下拉,相当于0x00,高电平则变成0x01。

YT8512C的PHY地址设置

YT8512C的PHY设置相关引脚
YT8512C通过PIN24和PIN25来控制PHY地址,与LAN8720A相比,可以设置的地址数更多。

4.RMII模式选择

LAN8720A与YT8512C在RMII介质接口下延伸出两个连接方式。
RMII的连接方式
对于LAN8720A而言:

  • REF_CLK In模式,通过外部提供的50MHz,给PHY和MAC提供50MHz的时钟源;
  • RED_CLK Out模式,则是外部的晶振给PHY一个25MHz的时钟源,而PHY会输出50MHz给MAC内核。

对于YT8512C而言:

  • RMII1模式,外部给25MHz到PHY芯片,PHY自己内部可以倍频到50MHz;但是MAC内核还需要另一个外部晶振来提供50MHz,也就是说要两个外部时钟源;
  • RMII2模式,PHY也是外接25MHz,但是PHY的PIN15(TXC)会输出50MHz的时钟给到MAC内核。

LAN8720A设置

设置的时钟框图
这两种的模式选择,是通过PHY的PIN2进行设定的,低电平就是Out模式(REF_CLK输出时钟),而高电平就是In模式(中断)。

YT8512C设置

设置模式框图
这两种模式,通过PHY的PIN8和PIN12进行选择,PIN8高电平而PIN12低电平,硬件电路就会选择RMII2模式

5.PHY寄存器简介

LAN8720A和YT8512C均有32个寄存器,每个寄存器都是16位。
寄存器
前16个寄存器用于配置PHY,后16个寄存器来判断网络参数(例如双工、网速等)
ST已经把主要框架打好了(前16个寄存器配好了),我们的使用只需要负责设置双工和网速参数即可

特殊功能寄存器

HAL库配置
通过确认网速以及双工模式来配置BCR寄存器的bit8和bit13(10/100Mbit/s,全双工还是半双工),
需要去翻阅相关的手册来确定配置方法。

LAN8720A特殊功能寄存器

LAN8720A的特殊功能寄存器配置
第31号寄存器,所以PHY_SR是0x1F;
PHY_SPEED_STATUS配置为0x11;
PHY_DUPLEX_STATUS配置为0x08。
只能把PHY_SPEED_STATUS配置为0x11,因为HAL库的代码中,为了进100Mbit/s的配置if语句,就一定要这么做,不然因为PHY的地址问题就会被配成10Mbit/s。

YT8512C特殊功能寄存器

YT8512C特殊功能寄存器配置

选择PHY芯片

通过宏定义来进行选择:
宏定义选择PHY芯片

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐