尊敬的 TI 团队:
我对使用 TCA9548A 实现 I2C 网络感兴趣、如下所示:
您可以看到、我们的 I2C 器件具有相同的地址。 我认为可以通过 TCA9548A 开关使用相同的地址来寻址 I2C 器件。
据我所知、地址由多路复用器(TCA9548)地址+通道地址组成:
n´t 我不知道最终是如何到达 I2C 器件的。 在哪里添加了 I2C 从器件的地址信息? 当多个器件连接到同一通道时、I2C 主器件如何能够寻址 I2C 从器件?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
尊敬的 TI 团队:
我对使用 TCA9548A 实现 I2C 网络感兴趣、如下所示:
您可以看到、我们的 I2C 器件具有相同的地址。 我认为可以通过 TCA9548A 开关使用相同的地址来寻址 I2C 器件。
据我所知、地址由多路复用器(TCA9548)地址+通道地址组成:
n´t 我不知道最终是如何到达 I2C 器件的。 在哪里添加了 I2C 从器件的地址信息? 当多个器件连接到同一通道时、I2C 主器件如何能够寻址 I2C 从器件?
您好、Manuel、
TCA9548A 确实可用于避免 I2C 系统中的地址冲突。 但是、我想您对如何从主视点连接器件有点困惑。
TCA9548A 用作从器件本身。 该器件管理 I2C 总线的哪些部分连接到主 SDA/SCL。 与其他 I2C 从器件一样、它只处理专门针对它寻址的信息。 通过发送一个数据包、主器件可以向 TCA9548A 的控制寄存器写入该数据、该数据包的开关(从器件)地址后跟所需的控制寄存器值。 图10 (在原始帖子中)描述了此过程。 然后、TCA9548A 将切换连接到 I2C 总线主侧的引脚。 现在、可以在新连接的总线上向从器件发送单独的命令。 由于新命令未寻址到 TCA9548A、因此开关将忽略它。 但是、由于我们之前连接了总线的一个新部分、另一侧的从器件将识别其地址并能够进行相应的通信。
例如、在上图中、如果我们要读取总线上的从器件寻址'0x05'、首先是主器件写入 TCA9548A。 写入将包含地址(0x70 - 0x077、具体取决于 A2 - A0)和所需的控制寄存器值0x02 (启用 SDA1/SCL1的位1)。 既然 TCA9548A 已经打开了这个总线、我们就可以向从器件发送一个读取命令、地址为'0x05'。 如果我们希望在 sda2/SCL2上向下读取下一个从器件、我们首先将0x04写入 TCA9548A 的控制寄存器以启用 sda2/SCL2、同时也禁用 sda1/SCL1。
请告诉我这种解释是否合理、或者您还有其他问题。
此致、
Eric