一. 简介
正点原子的开发板 ALPHA开发板,有线网络硬件方案所使用的也是最常用的一种方案,IMX6ULL芯片内部是自带 MAC网络芯片的,所以,也就是采用 "SOC内部集成网络MAC外设+ PHY网络芯片方案"。
ALPHA开发板使用的PHY网络芯片是 LAN8720,本文简单了解一下 LAN8720芯片特性与常用的寄存器。
二. ALPHA开发板上PHY网络芯片LAN8720
 虽然本文讲解的是  LAN8720A  这颗  PHY 网络芯片,但是前面说了, IEEE  规定了  PHY  的前  16  个  寄存器的功能(即所有的 PHY芯片的前16个寄存器的功能必须要保持统一),因此,如果你所使用的板子用的其他厂家的  PHY  芯片,也是可以看本文。 
 
 
1. LAN8720A 简介
 LAN8720A  是低功耗的  10/100M  单以太网  PHY  层芯片,可应用于机顶盒、网络打印机、嵌入式通信设备、 IP  电话等领域。 
 
 I/O  引脚电压符合  IEEE802.3-2005  标准。 LAN8720A  支持通  过  RMII  接口与以太网  MAC  层通信,内置  10-BASE-T/100BASE-TX  全双工传输模块,支持  10Mbps  和  100Mbps 。 LAN8720A  可以通过自协商的方式选择与目的主机最佳的连接方式 ( 速度  和双工模式 ) 。支持  HP Auto-MDIX  自动翻转功能,无需更换网线即可将连接更改为直连或交叉 连接。  
 
 
 LAN8720A  的主要特点如下:  
 
 · 高性能的  10/100M  以太网传输模块  
 
 · 支持  RMII  接口以减少引脚数  
 
 · 支持全双工和半双工模式  
 
 · 两个状态  LED  输出 
 
 · 可以使用  25M  晶振以降低成本  
 
 · 支持自协商模式  
 
 · 支持  HP Auto-MDIX  自动翻转功能  
 
 · 支持  SMI  串行管理接口  
 
 · 支持  MAC  接口 
 
 
 
 
2. LAN8720A 中断管理
 LAN8720A  的器件管理接口支持非  IEEE 802.3  规范的中断功能。当一个中断事件发生并且相应事件的中断位使能, LAN8720A  就会在  nINT(14  脚 ) 产生一个低电平有效的中断信号。  
 
 
 LAN8720A  的中断系统提供两种中断模式:主中断模式和复用中断模式。 
 
 主中断模式是默认中 断模式, LAN8720A  上电或复位后就工作在主中断模式,当模式控制 / 状态寄存器 ( 十进制地址  为  17) 的  ALTINT  位为  0  时,  LAN8720A  工作在主模式,当  ALTINT  位为  1  时,工作在复用中断模  式。 
 
 
 正点原子的  ALPHA  开发板虽然讲  LAN8720A  的中断引脚连接到了  I.MX6ULL  上,但是并 没有使用中断功能,关于中断的具体用法可以参考  LAN8720A  数据手册的  29~30  页。  
 
 
 
 
3. PHY 地址设置
 MAC  层通过  MDIO/MDC  总线对  PHY  进行读写操作, MDIO  最多可以控制  32  个  PHY  芯片,通过不同的  PHY  芯片地址来对不同的  PHY  操作。 LAN8720A  通过设置  RXER/PHYAD0  引脚来设置其  PHY  地址,默认情况下为  0 ,其地址设置如下表所 示。  
 
 

 正点原子  ALPHA  开发板的  ENET1  网络的  LAN8720A  上的  RXER/PHYAD0  引脚为默认状态 ( 网络硬件原理图上有个  10K  下拉,但是没有焊接 ) ,因此,  ENET1  上的  LAN8720A  地址为  0 。 
 
 ENET2  网络上的  LAN8720A  上的  RXER/PHYAD0  引脚接了个  10K  上拉电阻,因此,  ENET2  上的  LAN8720A  地址为  1 。 
 
 
 
 
4. nINT/REFCLKO 配置
 nINTSEL  引脚 (2  号引脚 ) 用于设置  nINT/REFCLKO  引脚 (14  号引脚 ) 的功能。 nINTSEL  配置如下表   所示。 
 
 

对于正点原子的 ALPHA 开发板的两个 LAN8720A 而言,全都工作在默认的 REF_CLK In 模式下。当 LAN8720A 工作在 REF_CLK In 模式时,50MHz 的外部时钟信号应接到 LAN8720 的 XTAL1/CLKIN 引脚(5 号引脚)上,如下图所示:

为了降低成本,LAN8720A 可以从外部的 25MHz 的晶振中产生 REF_CLK 时钟。到要使用此功能时应工作在 REF_CLK Out 模式时。当工作在 REF_CLO Out 模式时 REF_CLK 的时钟源 如下图所示。

 前面说了,正点原子的  ALPHA  开发板工作在  REF_CLK In  模式下,因此需要外部  50MHz  时钟信号。 
 
 I.MX6ULL  有专用的网络时钟引脚,因此,  ALPHA  开发板是通过  I.MX6ULL  的 ENET1_REF_CLK  和  ENET2_REF_CLK  这两个网络时钟引脚,来为  LAN8720A  提供  50MHz  的 时钟。  
 
 
 
接下来了解一下 LAN8720芯片(PHY网络芯片)的几个常用的寄存器。