正点原子lwIP学习笔记——PHY芯片简介
正点原子的lwIP协议学习笔记,这是第三篇
1.PHY芯片简介
从硬件上来看,一般的PHY芯片为模数混合电路,负责接收光、电一类的模拟信号,经过解调和A/D转换后通过MII/RMII接口将信号交给MAC内核处理。
RJ45就是网口,用来接收光电信号;然后经过解调和AD转换,PHY芯片把这个数据交付给MAC内核。
2.LAN8720A与YT8512
都是低功耗的10/100M以太网PHY层芯片,支持MII以及RMII接口与以太网MAC层通信。
支持Auto MDIX自动翻转功能,无需更换网线即可将连接更改为直连或交叉连接。
主要特性:
- 自动翻转:支持Auto MDIX自动翻转功能,可实现例如:对等线和交叉线连接;
- 多种接口:支持MII和RMII介质接口;
- 传输速率:支持10/100Mbit/s传输速率;
- 低功耗:支持低功耗运行。
3.PHY地址设置
SMI站管理接口就是通过PHY地址来访问指定的PHY芯片,故PHY地址也可简称为:PHY芯片的标识。
SMI最多可以管理32个PHY芯片,就是通过PHY地址来进行管理的。
LAN8720A的PHY地址设置
从图中可以看到,地址仅与PIN10相关,默认下拉,相当于0x00,高电平则变成0x01。
YT8512C的PHY地址设置
YT8512C通过PIN24和PIN25来控制PHY地址,与LAN8720A相比,可以设置的地址数更多。
4.RMII模式选择
LAN8720A与YT8512C在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个寄存器配好了),我们的使用只需要负责设置双工和网速参数即可。
特殊功能寄存器
通过确认网速以及双工模式来配置BCR寄存器的bit8和bit13(10/100Mbit/s,全双工还是半双工),
需要去翻阅相关的手册来确定配置方法。
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特殊功能寄存器
选择PHY芯片
通过宏定义来进行选择:
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)