我们如何为 I2C 地址使用 SDA 或 SCL 线?
How can we use SDA or SCL lines for I2C Addresses?
TMP102芯片(http://www.ti.com/lit/ds/symlink/tmp102.pdf)可以有多个I2c从机地址。它有一个地址引脚称为 ADD0(第 5 节),可用于 select 多个地址(第 7.3.4 节)。该引脚的逻辑电平可用于 select 特定的 TMP102 从设备。根据table4,可以有4个地址。我知道将引脚连接到高电压或低电压会产生两个不同的地址。但是 table 提到我们可以将 SDA 和 SCL 引脚用于两个不同的地址。我不确定这是如何工作的。任何人都可以解释如何使用它以及我们如何使用基于 SDA 和 SCL 引脚的多个 TMP102 设备。
您将 ADD0 连接到 SDA/SCL 以获取其他地址。 table 显示您根据 ADD0 连接到的地址获得的地址。
The logic level at that pin can be used to select a particular TMP102 slave device
这不是 ADD0 的目的 - 它是配置引脚,而不是 select 引脚。不习惯select的设备; I2C 地址是 SDA 上数据流的一部分,没有像 SPI 上那样的“select”引脚例如。
相反,ADD0 用于定义 每个设备的地址为Table 4 中定义的四个地址之一。这些地址是0x48、0x49、0x4A 之一或 0x4B,具体取决于 ADD0 分别与 GND、V+、SDA 或 SDL 的连接。像这样:
设备如何确定地址未在数据表中显示,您实际上不需要知道,但给出:
Public Marcin Floryan 来自 https://en.wikipedia.org/wiki/I%C2%B2C
的域图像
在 开始条件 在 SDA 的下降沿发生以下情况:
ADDR ADD0 SDA SCL
0x48 0 v 1
0x49 1 v 1
0x4A v v 1
0x4B 1 v 1
然后在下一个下降沿 SCL
ADDR ADD0 SDA SCL
0x48 0 0 v
0x49 1 0 v
0x4A 0 0 v
0x4B v 0 v
因此可以使用合适的时序逻辑在 S 阶段结束和 B1 之前锁存地址,这就足够了,因为地址匹配直到 B7 才会发生,并且总线上的所有设备都必须监听地址。
TMP102芯片(http://www.ti.com/lit/ds/symlink/tmp102.pdf)可以有多个I2c从机地址。它有一个地址引脚称为 ADD0(第 5 节),可用于 select 多个地址(第 7.3.4 节)。该引脚的逻辑电平可用于 select 特定的 TMP102 从设备。根据table4,可以有4个地址。我知道将引脚连接到高电压或低电压会产生两个不同的地址。但是 table 提到我们可以将 SDA 和 SCL 引脚用于两个不同的地址。我不确定这是如何工作的。任何人都可以解释如何使用它以及我们如何使用基于 SDA 和 SCL 引脚的多个 TMP102 设备。
您将 ADD0 连接到 SDA/SCL 以获取其他地址。 table 显示您根据 ADD0 连接到的地址获得的地址。
The logic level at that pin can be used to select a particular TMP102 slave device
这不是 ADD0 的目的 - 它是配置引脚,而不是 select 引脚。不习惯select的设备; I2C 地址是 SDA 上数据流的一部分,没有像 SPI 上那样的“select”引脚例如。
相反,ADD0 用于定义 每个设备的地址为Table 4 中定义的四个地址之一。这些地址是0x48、0x49、0x4A 之一或 0x4B,具体取决于 ADD0 分别与 GND、V+、SDA 或 SDL 的连接。像这样:
设备如何确定地址未在数据表中显示,您实际上不需要知道,但给出:
在 开始条件 在 SDA 的下降沿发生以下情况:
ADDR ADD0 SDA SCL
0x48 0 v 1
0x49 1 v 1
0x4A v v 1
0x4B 1 v 1
然后在下一个下降沿 SCL
ADDR ADD0 SDA SCL
0x48 0 0 v
0x49 1 0 v
0x4A 0 0 v
0x4B v 0 v
因此可以使用合适的时序逻辑在 S 阶段结束和 B1 之前锁存地址,这就足够了,因为地址匹配直到 B7 才会发生,并且总线上的所有设备都必须监听地址。