Linux- KSZ8081RNB-PHY芯片调试记录

1 概述

    选用的PHY型号为Micrel KSZ8081-RNB 。该PHY与处理器MAC 控制器的Interface为RMII模式,对外的Media Interface为电口(RJ45)。硬件原理图设计如下。
在这里插入图片描述

2 驱动修改情况

    KSZ8081的驱动内核已支持,源码路径:\linux-at91\drivers\net\phy\micrel.c。
    一般情况下,仅需修改设备树添加phy节点。在头文件: \linux-at91\include\linux\micrel_phy.h中找到 ksz8081 的 phy_id = 0x00221560,在设备树PHY节点的compatible中添加这个ID,在内核加载PHY驱动时就可以根据这个ID直接找到相应的驱动。
    KSZ8081的输入时钟可以使用25M,也可以使用50M。寄存器默认的工作时钟输入为25MHz,我们这里使用的是50MHz的晶振,因此需要修改设备树中的时钟参考。
在这里插入图片描述
PHY寄存器描述:
在这里插入图片描述
引脚描述:
在这里插入图片描述
驱动源码micrel.c未做修改,仅修改了设备树,设备树修改情况如下:
文件:
\linux-at91\arch\arm\boot\dts\sama5d2.dtsi
在这里插入图片描述
添加了一个rmii_xtal时钟节点,用于描述 PHY使用的输入时钟,参照上面的slow_xtal和main_xtal时钟节点进行添加。
文件:
linux-at91\arch\arm\boot\dts\at91-sama5d27_som1.dtsi
在这里插入图片描述
在这里配置时钟频率为50M。
在这里插入图片描述
PHY节点下引用这个时钟。

上述设备树创建时钟的方式,参考了
\linux-at91\Documentation\devicetree\bindings\net\micrel.txt 文档,按步骤在设备树中添加时钟节点,配合PHY驱动源码使用。系统加载后,PHY寄存器配置为50M时钟模式,无需使用mdio工具进行修改。
在这里插入图片描述
驱动中对应的调用设备树时钟节点的描述。

static int kszphy_probe(struct phy_device *phydev)

在这里插入图片描述
devm_clk_get函数的介绍参考:http://www.wowotech.net/linux_kenrel/clk_overview.html

    devm_clk_get以“rmii-ref”为参数,查找clock,查找到以后通过 clk_get_rate函数获取时钟频率,设备树中配置的是50MHz。通过添加的打印,看到配置的时钟频率确实50M。

    设备树属性中我们没有配置 “micrel,rmii-reference-clock-select-25-mhz”这个布尔属性,rmii_ref_clk_sel_25_mhz = 0,
priv->rmii_ref_clk_sel_val = !rmii_ref_clk_sel_25_mhz = 1

    下面进入kszphy_config_init函数。
kszphy_config_init –》kszphy_config_reset
在这里插入图片描述
kszphy_config_reset -》 kszphy_rmii_clk_sel
根据上面probe函数中获取的数值,kszphy_rmii_clk_sel传入的参数
priv->rmii_ref_clk_sel_val =1;

在这里插入图片描述
    传入的参数val = 1, 通过 ctrl = phy_read(phydev, MII_KSZPHY_CTRL) 读出 PHY 1F寄存器的值,将ctrl |= KSZPHY_RMII_REF_CLK_SEL 的值再重新写回PHY 1F寄存器。KSZPHY_RMII_REF_CLK_SEL用于将BIT(7)置1.

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
最后在 kszphy_rmii_clk_sel 函数中完成时钟频率配置。

系统启动,驱动加载后的打印信息如下:

在这里插入图片描述

3 文件系统修改

文件:/etc/init.d/S40network
关闭了eth0网卡自协商,强制为100M、全双工;另外给网卡eth0配置了一个子网卡,可用于静态IP访问。

在这里插入图片描述

### 回答1: ksz8081是一款常用的中文手册,主要是用于电子产品制造和设计方面的参考指南。它提供了关于ksz8081芯片的详细介绍,包括芯片的功能、特性、接口和应用等方面的信息。 ksz8081是一款高性能、高集成度的以太网物理层收发器芯片。它支持IEEE 802.3标准,并具有自适应功耗管理和休眠模式等特点。该芯片还提供了丰富的接口选项,包括RMII、MII和GMII接口,以满足不同应用场景的需求。 在ksz8081的中文手册中,我们可以找到关于芯片配置和使用的具体说明。手册中详细介绍了芯片的寄存器配置和寄存器位字段的含义,帮助用户正确设置芯片的工作模式和功能。同时,手册还提供了关于如何连接外部组件和系统布局的建议,以确保芯片能够正常工作。 此外,ksz8081中文手册还提供了芯片的性能参数表和电气特性表,供用户在设计中进行参考。这些参数包括芯片的工作温度范围、工作电压、功耗等等,有助于用户评估芯片在具体应用中的适用性和性能表现。 综上所述,ksz8081中文手册是一份详尽的参考资料,提供了关于该芯片的全面信息。无论是从事电子产品制造还是设计的专业人士,都可以通过阅读该手册来了解ksz8081的功能特点,并在实际应用中得到有效的帮助。 ### 回答2: ksz8081中文手册是一本详细介绍KSZ8081以太网收发器的使用方法和规格参数的手册。手册内容主要分为以下几个方面: 首先,手册对KSZ8081的基本介绍,包括芯片的型号、封装形式、主要特性等。这些信息对于用户了解和选择合适的硬件设备非常重要。 其次,手册详细介绍了KSZ8081的引脚定义及功能,方便用户正确连接和使用该芯片。同时,手册还介绍了常用的外部组件的连接方式,以及与其他硬件设备的接口规范。 手册还提供了KSZ8081的工作电气特性和工作条件等性能参数的具体说明。这些参数对于开发人员在设计和调试电路时非常重要,能保证KSZ8081的稳定运行和良好的性能。 另外,手册还介绍了KSZ8081的工作模式和寄存器配置方法。通过手册提供的详细信息,用户可以了解KSZ8081的各项功能设置和调整方法,以满足自己的需求。 最后,手册还提供了一些使用KSZ8081时可能遇到的问题和常见故障的排除方法。这些内容能帮助用户及时解决一些常见的硬件问题,提高开发和调试的效率。 总之,ksz8081中文手册是一本详尽而实用的参考书,通过阅读手册,用户能够更好地了解和使用KSZ8081,为自己的硬件设计提供一些指导和帮助。 ### 回答3: ksz8081中文手册是一本详细介绍ksz8081芯片的使用方法和规格参数的技术手册。ksz8081是一款集成了以太网物理层收发器(PHY)功能的单个芯片,被广泛应用于网络设备中。 这本手册首先介绍了ksz8081的基本原理和工作模式。它详细解释了芯片的功能区块、接口配置和寄存器设置等内容。在使用过程中,开发人员可以根据手册中的参数表和时序图来正确配置寄存器,确保芯片正常工作。同时,手册还提供了针对特定应用场景的配置建议和最佳实践,帮助开发人员选择合适的配置方式。 除了介绍硬件配置外,手册还包括软件层面的内容。它详细说明了ksz8081与主控芯片之间的通信协议和接口,以及各种软件驱动程序的使用方法。通过这些软件驱动程序,开发人员可以通过编程来控制ksz8081的各个功能,并与主控芯片实现高效的数据传输。 在实际应用中,ksz8081还具备一些额外的功能,如自动 MDI/MDIX 交换、节能模式和电压检测等。手册中也对这些功能进行了详细的说明,帮助开发人员充分发挥芯片的性能和特点。 总而言之,ksz8081中文手册通过详细的介绍和说明,为开发人员提供了清晰、全面的使用指南。借助这本手册,开发人员可以更加方便地了解和使用ksz8081芯片,提高网络设备的性能和可靠性。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

heat.huang

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

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

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

打赏作者

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

抵扣说明:

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

余额充值