T113-S3-RTL8211网口phy芯片调试

news2024/11/24 22:50:14


目录

前言

一、RTL8211介绍

二、硬件连接

三、设备树配置

四、内核配置

五、phy芯片配置

六、调试问题

总结


前言

        在嵌入式系统开发中,网络连接是至关重要的一部分。T113-S3开发板搭载了RTL8211系列的网口PHY芯片,用于实现以太网连接。在开发过程中,对于网口的稳定性和性能的调试至关重要。本篇博客将介绍如何调试T113-S3开发板中的RTL8211网口PHY芯片,以确保网络连接的正常工作。


一、RTL8211介绍

        Realtek(瑞昱半导体)公司的 RTL8211F-CG/RTL8211FD-CG/RTL8211FI-CG/RTL8211FDI-CG是符合10Base-T,100Base-TX和1000Base-T IEEE 802.3标准的高度集成的以太网收发器。它提供了通过CAT.5 UTP电缆发送和接收以太网数据包的所有必要的物理层功能。 RTL8211FI和RTL8211FDI符合工业级标准。

        RTL8211F(I)/RTL8211FD(I)使用先进DSP和模拟前端(AFE)技术,通过UTP电缆实现高速数据传输。在RTL8211F(I)/RTL8211FD(I)中实现诸如交叉检测和自动校正,极性校正,自适应均衡,串扰消除,回波消除,定时恢复和纠错的功能,以提供在10Mbps,100Mbps或1000Mbps时鲁棒发送和接收能力。

        MAC和PHY之间的1000Base-T,10Base-T和100Base-TX数据传输是通过RGMII接口实现的。RTL8211F(I)/RTL8211FD(I)支持多种RGMII信号电压,包括3.3,2.5,1.8和1.5V。

二、硬件连接

        T113-S3采用RGMII模式通过PG口与RTL8211-phy芯片连接,具体连接示意图如下所示:

三、设备树配置

        在SDK里面通过修改device/config/chips/t113/configs/evb1_auto/board.dts设备树配置文件,添加网口pinctl控制脚,并使能gmac网咯节点。

        添加pinctl控制脚:


&gmac0_pins_c{
	allwinner,pins = "PG0", "PG1", "PG2", "PG3", "PG4",
					 "PG5", "PG6", "PG7", "PG8", "PG9",
					 "PG10", "PG12", "PG14", "PG15";
	allwinner,function = "gmac0";
	allwinner,muxsel = <4>;
	allwinner,drive = <3>;
	allwinner,pull = <1>;
};

&gmac0_pins_d{
	allwinner,pins = "PG0", "PG1", "PG2", "PG3", "PG4",
					 "PG5", "PG6", "PG7", "PG8", "PG9",
					 "PG10", "PG12", "PG14", "PG15";
	// allwinner,function = "io_disabled";
	// bias-disable;
	allwinner,function = "gmac0";
	allwinner,muxsel = <4>;
	allwinner,drive = <3>;
	allwinner,pull = <1>;
};

使能gmac网络节点,并正确配置phy-rst复位管脚:

//RGMII
&gmac0 {
	pinctrl-0 = <&gmac0_pins_c>;
	pinctrl-1 = <&gmac0_pins_d>;
    pinctrl-names = "default", "sleep";
	phy-mode = "rgmii";
	use_ephy25m = <0>;
	tx-delay = <7>;
	rx-delay = <31>;
	phy-rst = <&pio PB 3 GPIO_ACTIVE_HIGH>; 
	status = "okay";
};

四、内核配置

        linux内核需要打开realtek phy驱动配置,具体路径如下图所示:

 具体路径为:Device Drivers > Network device support > PHY Device support and infrastructure 勾选Realtek PHYs驱动即可。

配置完成之后重新编译内核,烧写固件到开发板,rtl8211 phy正常驱动如下图所示:

 设备eth0节点启用正常:

 MDIO总线访问phy芯片寄存器正常,其中4为phy芯片地址

五、phy芯片配置

       phy芯片配置在linux系统里面一般使用phytool工具对phy芯片进行寄存器配置,根据我这个项目情况,需要修改phy芯片active、link指示灯状态,当网口插上时link灯常亮,有数据交互时active灯闪亮。

        通过读取RTL8211芯片手册可得知phy led配置寄存器为page 0xd04 0x10寄存器,寄存器说明如下所示:

 根据需求这个寄存器地址需要改为0x2F71,修改命令如下所示:

phytool write eth0/0/0x1F 0xd04
phytool write eth0/0/0x10 0x2F71

六、调试问题

       1、phy-RTL8211启动报错-hardware error:

        这个错误一般是由于phy-mode模式配置错误引起,由于官方sdk默认配置gmac为RMII模式,需要将RMII模式修改为RGMII模式即可正常识别:

2、网络异常:ifconfig显示能发不能收:

         在确认硬件本身没问题的情况下,一般是由于pinctl引脚配置错误,仔细根据原理图配置pinctl网口引脚即可,如上设备树配置章节所示:


总结

        调试T113-S3开发板中的RTL8211网口PHY芯片可能涉及多个方面,包括硬件连接、内核配置和驱动问题。通过仔细的步骤和有条理的排查,您可以确保网口连接稳定,系统正常工作。务必在调试过程中保持耐心,并参考相关文档和社区资源,以获取更多帮助和支持。这将有助于您成功实现网络连接并顺利完成开发工作。

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

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

相关文章

[C语言] 指针

1. 指针是什么 2. 指针和指针类型 3. 野指针 4. 指针运算 5. 指针和数组 6. 二级指针 7. 指针数组 目录 1. 指针是什么&#xff1f; 2. 指针和指针类型 2.1 指针-整数 2.2 指针的解引用 3. 野指针 3.1 野指针成因 3.2 如何规避野指针 4. 指针运算 4.1 指针…

《Java-SE-第三十六章》之枚举

前言 在你立足处深挖下去,就会有泉水涌出!别管蒙昧者们叫嚷:“下边永远是地狱!” 博客主页&#xff1a;KC老衲爱尼姑的博客主页 博主的github&#xff0c;平常所写代码皆在于此 共勉&#xff1a;talk is cheap, show me the code 作者是爪哇岛的新手&#xff0c;水平很有限&…

预知未来:揭示公司倒闭的隐秘迹象

引言 在商业世界中&#xff0c;公司的倒闭是一种常见的现象。然而&#xff0c;对于那些在公司中工作的人来说&#xff0c;这可能是一场灾难。作为一名资深的人力资源专业人员&#xff0c;我认为我们有责任提前察觉公司可能倒闭的迹象&#xff0c;以便我们可以采取适当的行动来…

一起学SF框架系列7.2-spring-AOP-AOP使用

Spring AOP有两种使用模式&#xff1a;AspectJ配置模式和xml配置模式。 AspectJ配置模式 配置 1、加入依赖包&#xff1a; <!--spring aop依赖--><dependency><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId&…

Gartner发布2023年的存储技术成熟曲线

技术路线说明 Gartner自1995年起开始采用技术成熟度曲线&#xff0c;它描述创新的典型发展过程&#xff0c;即从过热期发展到幻灭低谷期&#xff0c;再到人们最终理解创新在市场或领域内的意义和角色。 一项技术 (或相关创新)在发展到最终成熟期的过程中经历多个阶段&#xff1…

接口也默认继承Object类

目标&#xff1a; 1. 知道接口也默认继承Object类 2. 感受继承和重写在向上转型中的作用有多大 引出问题&#xff1a; 在我用 List接口的引用list 接收ArrayList这个集合类的实例时&#xff08;此处发生向上转型&#xff09;&#xff0c;偶然发现&#xff0c;咦&#xff0c…

【Python常用函数】一文让你彻底掌握Python中的toad.selection.select函数

任何事情都是由量变到质变的过程&#xff0c;学习Python也不例外。只有把一个语言中的常用函数了如指掌了&#xff0c;才能在处理问题的过程中得心应手&#xff0c;快速地找到最优方案。本文和你一起来探索Python中的toad.selection.select函数&#xff0c;让你以最短的时间明白…

Grounding dino + segment anything + stable diffusion 实现图片编辑

目录 总体介绍总体流程 模块介绍目标检测&#xff1a; grounding dino目标分割&#xff1a;Segment Anything Model (SAM)整体思路模型结构&#xff1a;数据引擎 图片绘制 集成样例 其他问题附录 总体介绍 总体流程 本方案用到了三个步骤&#xff0c;按顺序依次为&#xff1a…

YOLOv5入门实践(2)— 手把手教你使用make sense标注数据集(附工具地址+使用教程)

前言&#xff1a;Hello大家好&#xff0c;我是小哥谈。鉴于labelimg图像标注软件安装起来比较麻烦&#xff0c;本节课再给大家介绍另外一款数据集标注工具。这是一款在线标注数据集的工具&#xff0c;用起来非常的方便。&#x1f308; 前期回顾&#xff1a; YOLOv5入门实践&…

当执行MOV [0001H] 01H指令时,CPU都做了什么?

今天和几位单位大佬聊天时&#xff0c;讨论到一个非常有趣的问题-当程序执行MOV [0001H], 01H计算机实际上都做了哪些工作&#xff1f;乍一看这个问题平平无奇&#xff0c;CPU只是把立即数01H放在了地址为0001的内存里&#xff0c;但仔细想想这个问题远没有那么简单&#xff0c…

SystemVerilog之覆盖率详解

文章目录 1.0 覆盖率前言1.1 覆盖率类型1.2 覆盖策略及覆盖组1.3 覆盖率数据采样1.3.1 bin的创建与使用1.3.2 条件覆盖率1.3.3 翻转覆盖率1.3.4 wildcard覆盖率1.3.5 忽略bin与非法bin 1.4 交叉覆盖率1.4.1 排除部分cross bin1.4.2 精细化交叉覆盖率1.4.3 单个实例的覆盖率1.4.…

定量分析计算51单片机复位电路工作原理 怎么计算单片机复位电容和电阻大小

下面画出等效电路图 可以知道单片机内必然有一个电阻RX&#xff0c;为了简化分析&#xff0c;我们假设他是线性电阻&#xff08;不带电容&#xff0c;电感的支路&#xff09; 还有一个基础知识&#xff1a; 电容器的充电放电曲线&#xff1a; 还需要知道电容电压的变化是连续…

【简单认识zookeeper+kafka分布式消息队列集群的部署】

文章目录 一、zookeeper1、定义2、工作机制3、Zookeeper 特点4、Zookeeper 数据结构5、Zookeeper 应用场景6、Zookeeper 选举机制&#xff08;1&#xff09;第一次启动选举机制&#xff08;2&#xff09;非第一次启动选举机制 7、部署zookeeper群集 二、消息队列概述1、为什么需…

《线性调频雷达典型有源干扰抑制技术研究》阅读记录

文章目录 《线性调频雷达典型有源干扰抑制技术研究》 阅读记录&#xff08;1&#xff09;研究背景与意义&#xff1a;&#xff08;2&#xff09;有源压制干扰&#xff08;3&#xff09;有源欺骗式干扰&#xff08;4&#xff09;压制干扰的抑制&#xff08;5&#xff09;欺骗干扰…

面试热题(全排列)

给定一个不含重复数字的整数数组 nums &#xff0c;返回其 所有可能的全排列 。可以 按任意顺序 返回答案。 输入&#xff1a;nums [1,2,3] 输出&#xff1a;[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] 先在这里说明一下排列和组合的区别? 组合&#xff1a;是指从一…

[gdc]Rendering ‘God of War Ragnark‘

gdc23&#xff0c; sony santa monica关于god of war的分享&#xff1b; back ground 作者stephen mcauley现在是santa monica的technical director&#xff1b;20年加入santa monica&#xff0c;作为rendering lead&#xff0c;有9年的经验&#xff0c;之前在ubisoft montre…

[鹤城杯 2021]Middle magic 解题思路过程

过程 打开题目&#xff0c;是一道PHP的代码审计。代码如下&#xff1a; <?php highlight_file(__FILE__); include "./flag.php"; include "./result.php"; if(isset($_GET[aaa]) && strlen($_GET[aaa]) < 20){$aaa preg_replace(/^(.*)…

河道水位自动监测预警 yolov5

河道水位自动监测预警系统基于yolov5网络模型AI视频智能水尺读数技术&#xff0c;河道水位自动监测预警系统通过在河道周边布设监控摄像头&#xff0c;实时监测水位的变化&#xff0c;一旦水位超过预设阈值&#xff0c;将自动发出预警信号&#xff0c;并提示相关人员采取相应的…

计算机网络-物理层(一)物理层的概念与传输媒体

计算机网络-物理层&#xff08;一&#xff09;物理层的概念与传输媒体 物理层相关概念 物理层的作用用来解决在各种传输媒体上传输比特0和1的问题&#xff0c;进而为数据链路层提供透明(看不见)传输比特流的服务物理层为数据链路层屏蔽了各种传输媒体的差异&#xff0c;使数据…

Java 基础知识点

Object 类相关方法 getClass 获取当前运行时对象的 Class 对象。 hashCode 返回对象的 hash 码。 clone 拷贝当前对象&#xff0c; 必须实现 Cloneable 接口。浅拷贝对基本类型进行值拷贝&#xff0c;对引用类型拷贝引用&#xff1b;深拷贝对基本类型进行值拷贝&#xff0c;对…