STM32的以太网外设+PHY(LAN8720)使用详解(3):PHY寄存器详解

2023-12-22 21:36

本文主要是介绍STM32的以太网外设+PHY(LAN8720)使用详解(3):PHY寄存器详解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

0 工具准备

1.野火 stm32f407霸天虎开发板
2.LAN8720数据手册
3.STM32F4xx中文参考手册

1 PHY寄存器

前面介绍到,站管理接口(SMI)允许应用程序通过2线时钟和数据线访问任意PHY寄存器,同时该接口支持访问最多32个PHY,也就是说PHY地址共有5位。
应用程序可以从32个PHY中选择一个PHY,然后从任意PHY包含的32个寄存器中选择一个寄存器,发送控制数据或接收状态信息。任意给定时间内只能对一个PHY的一个寄存器进行寻址。
IEEE802.3定义了地址0-15这16个寄存器的功能,所有的PHY地址0-15寄存器bit的定义应当符合该标准,地址16-31的寄存器由芯片厂商自行定义。
在这里插入图片描述
对于LAN8720来说,PHY一共包含14个寄存器,定义如下:
在这里插入图片描述

1.1 IEEE802.3标准寄存器

1.1.1 Basic Control Register(地址0基本控制寄存器)

在这里插入图片描述
这里用的最多的就是bit15,软件复位。

1.1.2 Basic Control Register(地址1基本状态寄存器)

在这里插入图片描述
bit2非常有用,用来判断网卡是否建立了有效连接。

1.1.3 PHY Identifier 1 Register(地址2 PHY ID 1寄存器)

在这里插入图片描述
默认值为0x0007。

1.1.4 PHY Identifier 2 Register(地址3 PHY ID 2寄存器)

在这里插入图片描述
可以和PHY ID 1寄存器组合用来区分PHY型号。

1.1.5 Auto Negotiation Advertisement Register(地址4自动协商的能力通告寄存器)

在这里插入图片描述

1.1.6 Auto Negotiation Link Partner Ability Register(地址5自协商对端能力寄存器)

在这里插入图片描述

1.1.7 Auto Negotiation Expansion Register(地址6自动协商扩展寄存器)

在这里插入图片描述

1.2 LAN8720自定义寄存器

1.2.1 Mode Control/Status Register(地址17模式控制/状态寄存器)

在这里插入图片描述

1.2.2 Special Modes Register(地址18特殊模式寄存器)

在这里插入图片描述

1.2.3 Symbol Error Counter Register(地址26错误标志计数器寄存器)

在这里插入图片描述

1.2.4 Special Control/Status Indications Register(地址27特殊控制/状态指示寄存器)

在这里插入图片描述

1.2.5 Interrupt Source Flag Register(地址29中断来源标志寄存器)

在这里插入图片描述

1.2.6 Interrupt Mask Register(地址30中断屏蔽寄存器)

在这里插入图片描述

1.2.7 PHY Special Control/Status Register(地址31PHY特殊控制/状态寄存器)

在这里插入图片描述

2 总结

(1)LAN8720一共有14个寄存器,包括7个IEE802.3标准寄存器和7个厂家自定义寄存器。
(2)中断输出引脚通常都被用于50MHz时钟输出,因此不必关注有关中断的寄存器。

这篇关于STM32的以太网外设+PHY(LAN8720)使用详解(3):PHY寄存器详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/525562

相关文章

解决Maven项目idea找不到本地仓库jar包问题以及使用mvn install:install-file

《解决Maven项目idea找不到本地仓库jar包问题以及使用mvninstall:install-file》:本文主要介绍解决Maven项目idea找不到本地仓库jar包问题以及使用mvnin... 目录Maven项目idea找不到本地仓库jar包以及使用mvn install:install-file基

一文详解Java异常处理你都了解哪些知识

《一文详解Java异常处理你都了解哪些知识》:本文主要介绍Java异常处理的相关资料,包括异常的分类、捕获和处理异常的语法、常见的异常类型以及自定义异常的实现,文中通过代码介绍的非常详细,需要的朋... 目录前言一、什么是异常二、异常的分类2.1 受检异常2.2 非受检异常三、异常处理的语法3.1 try-

Java中的@SneakyThrows注解用法详解

《Java中的@SneakyThrows注解用法详解》:本文主要介绍Java中的@SneakyThrows注解用法的相关资料,Lombok的@SneakyThrows注解简化了Java方法中的异常... 目录前言一、@SneakyThrows 简介1.1 什么是 Lombok?二、@SneakyThrows

Java中字符串转时间与时间转字符串的操作详解

《Java中字符串转时间与时间转字符串的操作详解》Java的java.time包提供了强大的日期和时间处理功能,通过DateTimeFormatter可以轻松地在日期时间对象和字符串之间进行转换,下面... 目录一、字符串转时间(一)使用预定义格式(二)自定义格式二、时间转字符串(一)使用预定义格式(二)自

Redis Pipeline(管道) 详解

《RedisPipeline(管道)详解》Pipeline管道是Redis提供的一种批量执行命令的机制,通过将多个命令一次性发送到服务器并统一接收响应,减少网络往返次数(RTT),显著提升执行效率... 目录Redis Pipeline 详解1. Pipeline 的核心概念2. 工作原理与性能提升3. 核

Python正则表达式语法及re模块中的常用函数详解

《Python正则表达式语法及re模块中的常用函数详解》这篇文章主要给大家介绍了关于Python正则表达式语法及re模块中常用函数的相关资料,正则表达式是一种强大的字符串处理工具,可以用于匹配、切分、... 目录概念、作用和步骤语法re模块中的常用函数总结 概念、作用和步骤概念: 本身也是一个字符串,其中

Python使用getopt处理命令行参数示例解析(最佳实践)

《Python使用getopt处理命令行参数示例解析(最佳实践)》getopt模块是Python标准库中一个简单但强大的命令行参数处理工具,它特别适合那些需要快速实现基本命令行参数解析的场景,或者需要... 目录为什么需要处理命令行参数?getopt模块基础实际应用示例与其他参数处理方式的比较常见问http

C 语言中enum枚举的定义和使用小结

《C语言中enum枚举的定义和使用小结》在C语言里,enum(枚举)是一种用户自定义的数据类型,它能够让你创建一组具名的整数常量,下面我会从定义、使用、特性等方面详细介绍enum,感兴趣的朋友一起看... 目录1、引言2、基本定义3、定义枚举变量4、自定义枚举常量的值5、枚举与switch语句结合使用6、枚

Nginx location匹配模式与规则详解

《Nginxlocation匹配模式与规则详解》:本文主要介绍Nginxlocation匹配模式与规则,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、环境二、匹配模式1. 精准模式2. 前缀模式(不继续匹配正则)3. 前缀模式(继续匹配正则)4. 正则模式(大

使用Python从PPT文档中提取图片和图片信息(如坐标、宽度和高度等)

《使用Python从PPT文档中提取图片和图片信息(如坐标、宽度和高度等)》PPT是一种高效的信息展示工具,广泛应用于教育、商务和设计等多个领域,PPT文档中常常包含丰富的图片内容,这些图片不仅提升了... 目录一、引言二、环境与工具三、python 提取PPT背景图片3.1 提取幻灯片背景图片3.2 提取