ALPHA开发板上PHY网络芯片LAN8720:常用的几个寄存器功能

一. 简介

正点原子的开发板 ALPHA开发板,有线网络硬件方案所使用的也是最常用的一种方案,IMX6ULL芯片内部是自带 MAC网络芯片的,所以,也就是采用 "SOC内部集成网络MAC外设+ PHY网络芯片方案"。

前面一篇文章简单了解了(ALPHA开发板上的) PHY网络芯片 的特性,PHY地址,工作模式等,文章如下:

ALPHA开发板上PHY网络芯片LAN8720-CSDN博客

本文简单了解一下LAN8720网络芯片的几个常用的寄存器。

二. ALPHA开发板上PHY网络芯片LAN8720:常用的几个寄存器

1. BCR控制寄存器

LAN8720A 的前 16 个寄存器满足 IEEE 的要求,在这里我们只介绍几个常用的寄存器,首先是 BCR(Basic Control Rgsister)寄存器,地址为 0,BCR 寄存器各位如下表所示。

|---------|---------------------------------------------------|----------|
| ##### 位 | ##### 描述 | ##### 类型 |
| 15 | 软件复位 1:软件复位,此位自动清零 | R/W |
| 14 | 回测 0:正常运行 1:使能回测模式 | R/W |
| 13 | 速度选择 0:10Mbps 1:100Mbps 注意:当使用自动协商功能时此位失能 | R/W |
| 12 | 自动协商功能 0:关闭自动协商功能 1:打开自动协商功能 | R/W |
| 11 | 掉电(power down) 0:正常运行 1:进入掉电模式 注意:进入掉电模式前自动协商必须失能 | R/W |
| 10 | 隔离 0:正常运行 1:PHY 的 RMII 接口电气隔离 | R/W |
| 9 | 重启自动协商功能 0:正常运行 1:重启自动协商功能 注意:此位会被自动清零 | R/W SC |
| 8 | 双工模式 0:半双工 1:全双工 注意:开启自动协商功能后此位失效 | R/W |
| 7:0 | 保留 | RO |

我们说的配置 PHY 芯片,重点就是配置 BCR 寄存器,由于 LAN8720A 是个 10/100M 的 PHY ,因此,上面的表 中没有体现出 1000M 相关的配置。但是 10/100M 相关的配置是和 IEEE 的规定完全相符的,大家可以选择一个其他的 10/100M 的 PHY 芯片对比看一下,比如 NXP 官 方 EVK 开发板使用的 KSZ8081 。

2. BSR状态寄存器

接下来看一下 BSR(Basic Status Register) 寄存器,地址为 1 。此寄存器为 PHY 的状态寄存器,通过此寄存器可以获取到 PHY 芯片的工作状态, BSR 寄存器各位如表 69.2.2.4 所示:

|-------------|---------------------------------------------------------|----------|
| ##### | ##### 描述 | ##### 类型 |
| 15 | 100BAST-T4 0 :不支持 T4 1 :支持 T4 | RO |
| 14 | 100BAST-TX 全双工 0 :不支持 TX 全双工 1 :支持 TX 全双工 | RO |
| 13 | 100BAST-TX 半双工 0 :不支持 TX 半双工 1 :支持 TX 半双工个 | RO |
| 12 | 10BAST-T 全双工 0 :不支持 10Mbps 全双工 1 :支持 10Mbps 全双工 | RO |
| 11 | 10BAST-T 半双工 0 :不支持 10Mbps 半双工 1 :支持 10Mbps 半双工 | RO |
| 10:6 | 保留 | RO |
| 5 | 自协商功能完成 0 :自动协商未完成 1 :自动协商完成 | RO |
| 4 | 远端错误 0 :无远端错误 1 :检测到远端错误 | RO/HL |
| 3 | 自协商功能 0 :不能执行自协商功能 1 :可以执行自协商功能 | RO |
| 2 | 连接状态 0 :连接断开 1 :连接建立 | RO/LL |
| 1 | Jabber 检测 0 :未检测到 jabber 1 :检测到 jabber | RO/LH |
| 0 | 扩展功能 0 :不支持扩展寄存器 1 :支持扩展寄存器 | RO |

上表中可以看出,和 IEEE 标准规定相比, LAN8720A 的 BSR 寄存器少了几个位, 这个没关系的,不管什么 PHY 芯片,只要它实现了的位和 IEEE 规定相符就行。通过读取 BSR 寄存器的值,我们可以得到当前的连接速度、双工状态和连接状态等。

3. PHY地址寄存器

接下来看一下 LAN8720A 的 PHY ID 寄存器 1 和 ID 寄存器 2 ,地址为 2 和 3 ,后面就成为寄存器 2 和寄存器 3 。这两个寄存器都是 PHY 的 ID 寄存器。
IEEE 规定寄存器 2 和寄存器 3 为 PHY 的 ID 寄存器,这两个寄存器组成一个 32 位的唯一 ID 值。
IEEE 规定了一叫做 OUI 的 ID 组成方式,全称是 Organizationally Unique Identifier , OUI 一共 32 位,分为三部分: 22 位的 ID+6 位厂商型号 ID+4 位厂商版本 ID 。组成如图 69.2.2.5 所示:

LAN8720A 的 ID 寄存器 2 如下表 所示:

ID 寄存器 3 如下表 所示:

4. LAN8720A 的特殊控制/状态寄存器

最后来看一下 LAN8720A 的特殊控制 / 状态寄存器,此寄存器地址为 31 ,寄存器内容是 LAN8720A 厂商自定义的,此寄存器的各个位如表 69.2.2.7 所示 :

|-------------|--------------------------------------------------------------------------------------|--------------|
| ##### | ##### 描述 | ##### 类型 |
| 15:13 | 保留 | RO |
| 12 | 自协商完成 0 :自协商未完成或者自协商关闭 1 :自协商完成 | RO |
| 11:5 | 保留 | R/W |
| 4:2 | 速度指示 001 : 10BASE-T 半双工 101 : 10BAST-T 全双工 010 : 100BAST-TX 半双工 110 : 100BAST-TX 全双工 | RO |
| 1:0 | 保留 | RO |

特殊控制 / 状态寄存器中我们关心的是 bit2~bit4 这三位,因为通过这 3 位来确定连接的状态和速度,关于 LAN8720A 这个 PHY 就讲解到这里。

相关推荐
大耳朵土土垚16 分钟前
【Linux 】开发利器:深度探索 Vim 编辑器的无限可能
linux·编辑器·vim
极客小张24 分钟前
基于STM32MP157与OpenCV的嵌入式Linux人脸识别系统开发设计流程
linux·stm32·单片机·opencv·物联网
x66ccff29 分钟前
【linux】4张卡,坏了1张,怎么办?
linux·运维·服务器
网络研究院41 分钟前
攻击者将恶意软件分解成小块并绕过您的安全网关
网络·网关·安全·攻击·技术·分块·分析
jjb_2361 小时前
LinuxC高级作业2
linux·bash
OH五星上将1 小时前
OpenHarmony(鸿蒙南向开发)——小型系统内核(LiteOS-A)【扩展组件】上
linux·嵌入式硬件·harmonyos·openharmony·鸿蒙开发·liteos-a·鸿蒙内核
小哈里1 小时前
【云网络】软件定义网络SDN的概念与应用(以PVE8用户隔离,TLS证书介绍,自签证书等为例)
网络·https·云计算·虚拟化·sdn
拾光师2 小时前
linux之网络命令
linux·服务器·网络
我命由我123452 小时前
GPIO 理解(基本功能、模拟案例)
linux·运维·服务器·c语言·c++·嵌入式硬件·c#
皓月盈江2 小时前
Linux ubuntu debian系统安装UFW防火墙图形化工具GUFW
linux·ubuntu·debian·防火墙·ufw·gufw