系统框图
LAN8720是一款PHY芯片,寄存器配置与数据传输的接口是相互独立的,寄存器配置接口为SMI,数据传输接口为RMII,SMI接口为一根时钟线,一根数据线,被称做串行管理接口,RMII接口用来传输数据,相比MII接口,更加精简,被称做精简MII接口,其中字母R即reduced。
功能说明
收发器
PHY芯片具备的基础功能。
自动协商
纯粹是物理层活动,其执行与MAC控制器无关。
自动MDIX
此功能意味着发送、接收数据线接错后,PHY芯片会自动调整。
MAC接口
即RMII接口,与MAC进行数据传输的接口。
串行管理接口
寄存器配置接口。
配置引脚
用于配置PHY的硬件地址。
工作流程
分析芯片的驱动流程,我们可以从网获取相关程序代码,代码有所不同,但是分析方式一致,即从寄存器入手,定位PHY芯片的初始化函数。
获取了一份基于STM32F427芯片的工程,在stm32f4xx_hal_conf.h中找到PHY寄存器相关定义。
查找寄存器相关引用,发现在stm32f4xx_hal_eth.c文件HAL_ETH_Init()中,对PHY进行了初始化操作。
注意要点
1、此工程中使用了LAN8720的扩展寄存器PHY_SR,如果换成RTL8201芯片,需要调整寄存器的定义以及调用此寄存器的函数。比如函数ethernetif_update_config()、HAL_ETH_Init()。