当前平台支持哪些I2C 总线
i2cdetect -l
命令用于列出系统中所有可用的 I2C 总线。
i2cdetect -l
这个命令的输出提供了关于系统中 I2C 适配器的详细信息。
输出示例:
i2c-0 i2c bcm2708_i2c.0 I2C adapter
i2c-1 i2c bcm2708_i2c.1 I2C adapter
i2c-2 i2c i2c-1-mux (chan_id 0) I2C adapter
i2c-3 i2c i2c-1-mux (chan_id 1) I2C adapter
解释:
-
第一列:I2C 总线编号
- 例如:
i2c-0
,i2c-1
,i2c-2
,i2c-3
- 这些是系统分配给每个 I2C 总线的唯一标识符
- 例如:
-
第二列:总线类型
- 通常显示为
i2c
,表示这是一个 I2C 总线
- 通常显示为
-
第三列:总线驱动或描述
- 例如:
bcm2708_i2c.0
,bcm2708_i2c.1
,i2c-1-mux (chan_id 0)
- 这表示负责控制该 I2C 总线的驱动程序或硬件描述
- 在这个例子中,
bcm2708_i2c
是树莓派上使用的 I2C 控制器驱动 i2c-1-mux
表示这是一个通过多路复用器(multiplexer)创建的虚拟 I2C 总线
- 例如:
-
第四列:附加信息
- 通常显示 “I2C adapter”,表明这是一个 I2C 适配器
某条I2C 总线下挂载了哪些设备
要Slave设备先上电,如果没有上电则探测不到
要查看 I2C 总线 1 上的设备:
i2cdetect -y 1
i2cdetect -y 1
命令用于扫描 I2C 总线 1 上的所有设备。这个命令的输出是一个地址矩阵,显示了在该总线上检测到的 I2C 设备。
输出示例:
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- 3c -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: 50 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
解释:
-
表头:
- 第一行和第一列组成了一个十六进制地址矩阵。
- 横轴(0-f)代表地址的最后一位。
- 纵轴(00-70)代表地址的前两位。
-
矩阵内容:
--
表示该地址没有检测到设备。- 数字或字母表示在该地址检测到了设备。
-
设备地址:
- 在这个例子中,我们可以看到两个设备:
- 地址 0x3c 有一个设备
- 地址 0x50 有一个设备
- 在这个例子中,我们可以看到两个设备:
-
地址范围:
- I2C 地址范围通常是 0x00 到 0x7F(7位地址)。
- 一些地址是保留的,比如 0x00-0x07 和 0x78-0x7F。
-
-y
选项:- 这个选项禁用交互模式,直接执行扫描。
-
1
参数:- 这指定了要扫描的 I2C 总线号码(在这个例子中是总线 1)。
这种方法可以用来判断某颗Camera Sensor是否有正常上/下电。