基于imx6ul调试DP83848以太网PHY控制器笔记

1、开发环境

虚拟机:Ubuntu16.04
内核版本:kernel4.1.15
驱动:driver/net/phy/dp83848.c
driver/net/ethernet/freescale/fec_main.c

2、问题

在同一个固件的情况下,有部分板子无法识别到网线的插拔动作。

3、问题初步分析

驱动能成功识别加载,然后系统起来后,插拔网线,系统却没有打印信息。感觉是没有信号传输到PHY控制器上,一开始我是还以底板上的差分信号线的问题,然后看了下原理图,看到了DP83848芯片中X1引脚是使用外部晶振的同时还用了CPU内部输出时钟频率,有可能导致了两个频率冲突了。
在这里插入图片描述

4、解决问题

首先是用示波器测量一下X1处的时钟频率,发现虽然有50MHZ输出,但是波形却有点杂乱,更加让我觉得是这个影响了网口通信。
然后将外部晶振拆除,再次用示波器测量得出的波形是稳定的,因为imx6ul默认是让MX6UL_PAD_ENET2_TX_CLK__ENET2_REF_CLK2引脚输出50MHZ时钟频率的。
最后,就是在MX6UL_PAD_ENET2_TX_CLK__ENET2_REF_CLK2替换成MX6UL_PAD_ENET2_TX_CLK__ENET2_TX_CLK。然后测试一下是否还有频率输出?如果没有,把外部晶振再焊接回去。然后网口就可以检测到了。
如下图&#

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
对于i.MX6UL处理器的以太网配置,您可以按照以下步骤进行操作: 1. 打开设备树文件(.dts):在您的Linux内核源代码中,找到i.MX6UL的设备树文件,通常命名为imx6ul.dtsi或类似的名称。 2. 配置以太网节点:在设备树文件中,找到以太网(Ethernet)节点。这通常位于`&fec`或`&ethernet`部分。如果找不到该节点,您可能需要添加一个新的以太网节点。 3. 配置PHY和MAC:在以太网节点中,您需要配置物理层接口(PHY)和媒体访问控制(MAC)。PHY负责处理物理层信号,而MAC负责处理数据帧的传输。 - 对于PHY的配置,您可以指定使用哪种PHY类型(例如,Micrel KSZ8081),以及PHY的连接方式(例如,通过RMII接口)。 - 对于MAC的配置,您可以设置MAC地址、速度和模式等参数。通常情况下,您可以使用默认值。 4. 启用以太网节点:确保以太网节点被启用。您可以检查`status`属性是否设置为"okay",以确保节点处于启用状态。 5. 重新编译设备树文件:保存更改后,重新编译设备树文件生成二进制文件(.dtb)。具体的编译命令取决于您所使用的Linux发行版和工具链。 6. 更新设备树:将生成的设备树文件(.dtb)复制到启动介质的正确位置。这通常是在/boot目录下。 7. 重启设备:重新启动i.MX6UL处理器,以使新的设备树生效。 请注意,这只是基本的以太网配置步骤,实际操作可能会根据您的具体需求和硬件平台而有所不同。在进行任何更改之前,请确保备份您的设备树文件,并且熟悉设备树的基本语法和操作方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

赟赟、嵌入式

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值