以太网调试经验总结

news2024/10/2 20:27:03

1.MDC时钟捕获

        在bringup时,首先需要确认MDC/MDIO控制通道是否正常,通过捕获MDC时钟以确认MDC/MDIO的工作状态是否正常,MDC时钟频率由具体的PHY芯片决定,不同的PHY芯片支持的MDC时钟频率范围不通。

        注意1:MDC时钟频率不固定且值一般不大,仅几兆而已,使用示波器抓取波形时要注意参数的设置,参数设置不当时MDC波形容易被忽略,从导致对当前MAC工作状态的误判。

        注意2:MDC时钟波形只在MDC/MDIO上有数据通信时才有,所以抓取波形最好使用触发方式,否则很容易抓不到波形导致对当前MAC工作状态的误判。

        以下是MDC时钟的波形:

2.PHY ADDR配置

        通常PHY ADDR都是通过硬件加上下拉电阻进行配置,将硬件配置的PHY ADDR加到设备树或MAC驱动代码中,如果PHY ADDR配置错误,MDC/MDIO通信是无法成功的。

        注意:当设备树或MAC驱动代码中配置了PHY ADDR,MDC/MDIO通信依旧无法成功,可以通过软件方式轮询0~31这个32个PHY ADDR上的PHY的可操作寄存器,如此也可以找到PHY ADDR,将该PHY ADDR重新配置到设备树中或代码中。

3.PHY_ID配置

        PHY_ID是固化在PHY芯片里的,MAC驱动会通过PHY_ID来匹配对应的PHY driver,如果PHY_ID配置错误,ping 其他网络设备也是无法成功的;PHY_ID可以在设备树中进行配置,也可以在代码中通过MDC/MDIO读写PHY寄存器获取。

        注意:代码中默认获取PHY_ID的方式是通过读写0~15这个16个通用寄存器实现的,但不是所有厂家的PHY芯片都支持0~15这16个通用寄存器,如果使用代码自动获取PHY_ID需要开发人员修改驱动代码进行适配。

        以marvell 88q1110为例,代码中需要添加以下代码进行适配:

4. clause 22 与 clause 45

        clause 22和clause 45协议可以在设备树中进行配置,高通8155平台默认是不支持clause 45协议读写的,如果需要使用clause 45协议操作PHY芯片,需要对读写接口进行适配。

5.MAC工作状态

        MAC工作状态主要关注点为speed和duplex,通常情况下,MAC会根据自动协商的结果去设置MAC的speed和duplex,所以一般情况下speed和duplex是不需要另外配置的,这是一个自动的过程。

        注意1:MAC和PHY芯片一般都是默认开启自动协商功能的,但不是绝对的,所以bringup时一定要确认MAC和PHY芯片是否支持自动协商功能的使用。比如dp83tc811和88q1110都具备自动协商能力,但是自动协商功能不能使用,所以MAC无法获取PHY的协商结果,MAC会一直工作在10M状态。

        注意2:可以通过fixed-link的方式来绕过自动协商的流程,将MAC配置为一种固定的工作状态,比如88q1110只能工作在100M状态,那么MAC就不会有工作在10M和1000M的场景,直接将MAC配置在100M和全双工模式即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/380249.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【3.1】MySQL锁、动态规划、Redis缓存,过期删除与淘汰策略

5.4 MySQL死锁了,怎么办? RR隔离级别下,会存在幻读的问题,InnoDB为了解决RR隔离级别下的幻读问题,就引出了next-key 锁,是记录锁和间隙锁的组合。 Record Lock,记录锁,锁的是记录本身…

常用的“小脚本“-json数据处理

小背景: 我们公司项目中的小脚本是一些工具类,比如常用的是MapUtil工具类的一些方法 写公司的MapUtil工具类的方法要注意,方法名的命名,因为方法名,在公司的项目的某个业务流程有对方法名的进行String截取开头字符串然…

考研机试 | C++ | 王道复试班 | map专场

目录关于map查找学生信息(清华上机)题目代码:魔咒词典(浙大机试)题目:代码英语复试常用话题关于map map的一些基本操作: 判空 :map.empty()键值对的个数: map.size()插入…

进程、线程、协程详解

目录 前言: 一、进程 进程的概念 进程内存空间 二、线程 线程的定义 内核线程 用户线程 内核线程和用户线程的比较 线程的状态 三、协程 协程的定义 协程序相对于线程优势 运用场景 四、线程、协程、进程切换比较 前言: 有时候无法…

JPA之实体之间的关系

JPA之实体之间的关系 10.1.1实体类创建 注解的应用 Table,Entity IdGeneratedValue指定主键,Column P174 实体类编写规范 Table(name "t_user") Entity(name "User") public class User implements Serializable {IdGeneratedVa…

王道操作系统课代表 - 考研计算机 第二章 进程与线程 究极精华总结笔记

本篇博客是考研期间学习王道课程 传送门 的笔记,以及一整年里对 操作系统 知识点的理解的总结。希望对新一届的计算机考研人提供帮助!!! 关于对 “进程与线程” 章节知识点总结的十分全面,涵括了《操作系统》课程里的全…

机器学习——线性学习

提及线性学习,我们首先会想到线性回归。回归跟分类的区别在于要预测的目标函数是连续值线性回归假定输入空间到输出空间的函数映射成线性关系,但现实应用中,很多问题都是非线性的。为拓展其应用场景,我们可以将线性回归的预测值做…

SQL的优化【面试工作】

SQL的优化 最近看到群友在讨论这块的优化,感觉不管工作和面试,都是用上的,记录下吧!(不然又记不住) 优化点: 处理和优化复杂的 SQL 查询可以有以下几个方向: 1.优化查询语句本身 首先,可以优化 SQL 查询语句本身,尽量让其更加简洁、高效。 …

Go程序当父进程被kill,子进程也自动退出的问题记录

平常我们启动一个后台进程,会通过nouhp &的方式启动,这样可以在退出终端会话的时候,进程仍然可以继续在后台执行(进程的父进程id会从原来的bash进程变成1) 在go程序中,通过nouhp &的方式启动子进程,预期是即使…

干货| Vue小程序开发技术原理

目前应用最广的三大前端框架分别是Vue、 React 和 Angular 。其中,不管是 BAT 大厂,还是创业公司,Vue 都有广泛的应用。如今,再随着移动开发小程序的蓬勃发展,Vue也广泛应用到了小程序开发当中。今天,就来详…

嵌入式 STM32 SHT31温湿度传感器

目录 简介 1、原理图 2、时序说明 数据传输 起始信号 结束信号 3、SHT31读写数据 SHT31指令集 读数据 温湿度转换 4、温湿度转换应用 sht3x初始化 读取温湿度 简介 什么是SHT31? 一主机多从机--通过寻址的方式--每个从机都有唯一的地址&…

linux--多线程(一)

文章目录Linux线程的概念线程的优点线程的缺点线程异常线程的控制创建线程线程ID以及进程地址空间终止线程线程等待线程分离线程互斥进程线程间的互斥相关概念互斥量mutex有线程安全问题的售票系统查看ticket--部分的汇编代码互斥量的接口互斥量实现原理探究可重入和线程安全常…

三重积分为何不能直接带入积分区域?搞懂这些,重积分基本可以了

积分的积分区域及被积表达式 重点:积分的结果均为数值,仅与被积表达式和积分区间有关!!! 1.如何一下子区分一重积分,二重积分,三重积分? 看积分区间和被积表达式: 一重…

React教程详解一(props、state、refs、生命周期)

文章略长,耐心读完,受益匪浅哦~ 目录 前言 简介 JSX 面向组件编程 state props refs 组件生命周期 前言 简介 React框架由Facebook开发,和Vue框架一样,都是用于构建用户界面的JavaScript库; 它有如下三个特…

PHP - ChatGpt 学习 仅供参考

由于最近ChatGpt 大火,但是门槛来说是对于大家最头疼的环节, 由此ChatGpt 有一个API 可以仅供大伙对接 让我来说下资质: 1:首先要搞得到一个 ChatGpt 的账户, 会获得一个KEY,该key为访问API核心&#xff0…

jenkins漏洞集合

目录 CVE-2015-8103 反序列化远程代码执行 CVE-2016-0788 Jenkins CI和LTS 远程代码执行漏洞 CVE-2016-0792 低权限用户命令执行 CVE-2016-9299 代码执行 CVE-2017-1000353 Jenkins-CI 远程代码执行 CVE-2018-1000110 用户枚举 CVE-2018-1000861 远程命令执行 CVE-2018…

ChatGPT文章自动发布WordPress

WordPress可以用ChatGPT发文章吗?答案是肯定的,ChatGPT官方有提供api接口,多以目前有很多的SEO工具具有自动文章生成自动发布的功能,使用SEO工具,我们可以通过疑问词和关键词进行文章生成,并定时发布到我们…

软测入门(三)Selenium(Web自动化测试基础)

Selenium(Web端自动测试) Selenium是一个用于Web应用程序测试的工具:中文是硒 开源跨平台:linux、windows、mac核心:可以在多个浏览器上进行自动化测试多语言 Selenium WebDriver控制原理 Selenium Client Library…

Linux基础——连接Xshell7

个人简介:云计算网络运维专业人员,了解运维知识,掌握TCP/IP协议,每天分享网络运维知识与技能。座右铭:海不辞水,故能成其大;山不辞石,故能成其高。个人主页:小李会科技的…

复位理论基础

先收集资料,了解当前常用的基础理论和实现方式 复位 初始化微控制器内部电路 将所有寄存器恢复成默认值确认MCU的工作模式禁止全局中断关闭外设将IO设置为高阻输入状态等待时钟趋于稳定从固定地址取得复位向量并开始执行 造成复位的原因 有多种引起复位的因素&…