介绍默认情况下多个设备的 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 下正常工作,并避免通信冲突。
|