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.

[参考译文] TCA9548A:对解决问题有疑问

Guru**** 2392335 points
Other Parts Discussed in Thread: TCA9548A

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/860520/tca9548a-doubt-about-addressing

器件型号:TCA9548A

尊敬的 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

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Eric、

    非常感谢您的反馈。 现在操作对我来说是清晰的。