一. 简介
正点原子的开发板 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网络芯片)的几个常用的寄存器。