常用的PHY芯片有DM9161AEP、RTL8201、DP83848CVV、LAN8720A、LAN8742A...
DM9161AEP、DP83848CVV支持RMII、MII接口,而RTL8201只支持MII接口。拿DM9161AEP例如,可以支持8条通信线(TXD0/TXD1/TXD2/TXD3/RXD0/RXD1/RXD2/RXD3)的MII接口还可支持4条通信线(TXD0/TXD1/RXD0/RXD1)的RMII接口。
因DM9161AEP工作还需要时钟,还有晶振输入引脚。在MII接口模式下,接入时钟频率为2.5MHz可在10岁工作Mbps当接入时钟频率为25时MHz可使用时间PHY工作在100Mbps速率。在RMII模式下,比MII如果需要以相同的速度工作,则需要以更高的时钟频率然需要更高的时钟频率,一般需要50MHz,使其工作在100Mbps速率。例如使用STM32F407与DM9161AEP有多种工作方法和电路设计方法种工作方法和电路设计方法。
MII在接口模式下,MCU消耗更多IO引脚资源,但要最高输入25MHz时钟频率可以工作到100Mbps在这种情况下,通常使用速率STM32的PA8的MCO时钟输出功能为其提供25MHz时钟可以节省使用外部晶振BOM但这种方法有一个前提,MCU外部必须连接25MHz晶振,这样MCO才能输出25MHz频率,如果使用8MHz晶振,MCU将无法输出25MHz频率。RMII在接口模式下,MCU节省了很多IO引脚资源,工作在10Mbps需要输入5的速率MHz时钟频率为100Mbps需要输入5的速率0MHz,在这种情况下,MCU一般来说,它不能满足要求,也不能提供如此高的时钟输出。外部晶振通常使用,频率为50MHz。
在RMII在模式下,需要注意的是,PHY由于没有单独的时钟同步信号(发送时钟和接收时钟),芯片需要输入时钟MCU内部的MAC因此,需要保持时钟同步PHY芯片有一个时钟输出引脚,然后返回MCU别被引脚了MCO由于时钟和时钟与输入频率混淆MCU内部的MAC没有连接,使用MCO外部晶振也可用于节省元件成本。
DP83848CVV在RMII模式下,MCO输出25MHz频率到PHY同时内部,PHY芯片25#引脚专门输出25M,用于接入到MCU的RMII_REF_CLK,用于时钟同步,如MCO输入或外部晶振输入50MHz从#34从#34引脚(X1)接入到MCU的RMII_REF_CLK,以上情况仅针对RMII模式。
在MII在模式下,没有必要去做PHY芯片处接时钟到MCU,用于数据同步,因为它在MII在模式下,有单独的引脚和PHY相连,ETH_MII_TX_CLK和ETH_MII_RX_CLK单独提供发送和接收时钟(这与PHY芯片需要的25MHz接入时钟不冲突,因为PHY芯片需要时钟源,但与数据同步信号不同,而MII具有,RMII没有,需要单独收回)RMII这两个引脚模式下否存在? 是的,这就是时钟同步接入的原因。
DM9161AEP芯片也有上述情况,#42引脚(XT2)可同时输入时钟,RMII在模式下,#42引脚需要与MCU的RMII_REF_CLK连接用于保持时钟数据同步。#42引脚输入的时钟可以是外部晶振或MCU的MCO输出,节约成本!
另外PHY芯片通常有一个中断输出引脚据功能要求确定是否使用。当反应状态发生变化时,输出中断信号。当然,如果没有,也可以读取PHY检查状态变化的内部寄存器。根据DM9161AEP引脚说明书描述每当有低电平、状态变化(链接、速度、双工)时,引脚具有高阻抗输出,需要2.2K当状态发生变化时,状态发生变化时,可以主动输出提示信号,不同于检查寄存器的被动方式,可以用于以太网唤醒。
RTL8201BL是单端口物理层收发器,只有一个MII/SNI(媒体独立接口/串行网络接口)接口,它实现了全部的10/100M以太网物理层功能。
LAN8720A它也是单端口物理层收发器,只有一个RMII接口也实现了所有10/1000Mbps以太网物理层功能。
LAN8742A是LAN8720A升级版,两者引脚兼容,LAN8742A比LAN8720A多了一个wol网络唤醒功能。