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:I2C 通信问题

Guru**** 1805680 points
Other Parts Discussed in Thread: TCA9548A, TPL1401
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1431327/tca9548a-i2c-communication-problem

器件型号:TCA9548A
主题中讨论的其他器件: TPL1401

工具与软件:

下午好!

我已经在尝试初始化 TCA9548A I2C 多路复用器、在原理图中、我仅使用一个 I2C 多路复用器来控制 TPL1401数字电位器、我一共有8个。 我的 TCA9548A 原理图如下所示:

我将使用具有 E2_studio 的 Renesas S7G2微控制器、因此我将使用 E2_studio HAL 库来进行初始化、写入和读取。 现在我要使用两个不同的 I2C 器件、一个是用于 与驱动器通信、另一个是用于与 TCA9548A 通信。

第一个驱动程序已经过验证、打开、写入和读取在此驱动程序中运行良好。 另一方面、当我尝试与 TCA9548A 通信时、收到 SSP 错误(SSP_ERR_ABORTED)、这意味着在写入过程中、由于某种错误、I2C 器件正在关闭。 由于我需要8个 TPL1401数字电位器进行控制、因此我将尝试逐步验证。 现在我没有任何 TPL1401悬停在多路复用 I2C 通道上、我首先要做的是发送 TCA9548A 器件地址、之后、写入控制寄存器以从4个可用通道中选择1个、正如您在原理图中所看到的。

A2、A1和 A0接地、这意味着当我尝试向 TCA9548A 发送写入请求时、我的器件地址应为1110 0000 (0xE0)。

通过在 SDA 和 SDL 上使用示波器、我可以看到正确的波形、但我不确定是否选择了任何通道、当我尝试读取选择了哪个通道时、我不会得到任何答案。

我不确定我的原理图是否完全正确、这是我第一次尝试启动该驱动器、另一方面、我不确定我是否完全了解如何从 TCA9548A 进行写入/读取、但我的方法似乎是正确的、发送写入请求0xE0、然后发送控制寄存器以启用通道0 (0x01)。

我缺少什么?

提前感谢您、

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

    一个 μ I²C 器件地址有7位。 TCA9548A 的地址为1110000。 我不知道您的库是否需要将该值指定为0x70或0xE0。

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

    今天上午、我发现 E2_studio SSP (Renesas 用于配置微控制器引脚排列的配置工具)、在配置 I2C 时、有一个字段需要从器件地址。 我曾使用手动写入从器件地址、但使用此工具、它可以生成一个已控制此地址的 BSP。 因此、将0x70添加到从器件地址字段中、我接收到的错误已消失。 现在我将对其余部分进行调试、以确保我的代码正常工作。

    感谢你能抽出时间。