打印
[学习资料]

如何在 Linux 下为多个 EVB-LAN8670-USB 设备设置不同的 Node ID?

[复制链接]
94|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
米多0036|  楼主 | 2025-3-24 11:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
介绍默认情况下多个设备的 Node ID 相同的问题,并提供 mdio-tool 配置方法。
ChatGPT 说:
在 Linux 下,当多个 EVB-LAN8670-USB 设备连接到同一系统时,它们的 Node ID(设备地址)默认相同,通常为 0。这会导致 MDIO 通信冲突,无法正确区分和管理多个设备。因此,需要手动为每个设备分配唯一的 Node ID。

默认情况下多个设备 Node ID 相同的问题
由于 EVB-LAN8670-USB 设备默认使用相同的 MDIO 地址(Node ID = 0),当多个设备连接时,系统无法正确访问每个设备。

需要为每个设备配置不同的 Node ID 以避免通信冲突。

使用 mdio-tool 设置不同的 Node ID
mdio-tool 是一个 Linux 下的命令行工具,可用于读取和写入 MDIO 设备寄存器。通过它可以为每个 LAN8670 设备配置唯一的 Node ID。

步骤 1:识别设备
首先,列出系统中所有的 MDIO 设备:

bash
复制
编辑
mdio-tool list
这将显示当前可用的 MDIO 设备及其默认 Node ID。

步骤 2:修改 Node ID
找到某个 LAN8670 设备,并修改其 Node ID(假设我们要将其从 0 改为 1):

bash
复制
编辑
mdio-tool write 0 0x1F 0x1
0:表示默认的 Node ID(即 0)。

0x1F:为 LAN8670 的 Node ID 配置寄存器。

0x1:将其更改为 1。

如果有多个设备,可以重复上述命令,为其他设备分配不同的 Node ID:

bash
复制
编辑
mdio-tool write 0 0x1F 0x2  # 第二个设备,设置为 Node ID 2
mdio-tool write 0 0x1F 0x3  # 第三个设备,设置为 Node ID 3
步骤 3:验证配置
可以使用以下命令确认修改是否生效:

bash
复制
编辑
mdio-tool read 1 0x1F  # 读取 Node ID 1 的配置
mdio-tool read 2 0x1F  # 读取 Node ID 2 的配置
mdio-tool read 3 0x1F  # 读取 Node ID 3 的配置
总结
默认情况下,多个 EVB-LAN8670-USB 设备的 Node ID 相同,可能导致冲突。

使用 mdio-tool 读取设备信息,并写入新的 Node ID 以区分多个设备。

通过 mdio-tool write 命令修改 Node ID,并使用 read 命令验证修改是否成功。

这样,每个 EVB-LAN8670-USB 设备都能在 Linux 下正常工作,并避免通信冲突。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

133

主题

1426

帖子

0

粉丝