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.

[参考译文] TCA9543A:检查对要使用该器件的软件的一般理解

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1401445/tca9543a-check-general-understanding-of-software-to-use-the-device

器件型号:TCA9543A

工具与软件:

我正在评估 TCA9543A、允许我们将具有相同 I2C 地址的多个称重传感器连接到 BeagleBone Black MCU。

我想确认 我对该器件所用软件的总体理解。  我将在 Linux 系统上用 C 语言编写代码、但这只是伪代码说明。

硬件配置为负载单元1在 IC 的通道0上、负载单元2在 IC 的通道1上。  两个称重传感器都具有 I2C 地址0x28。

TCA9543A 开箱即用、位于地址0x70。   

是什么

1.设置 BeagleBone Black I2C 总线

2.确认 TCA9543A 在地址0x70。

3.要读取通道0上的称重传感器1、请通过向 I2C 总线写入0x01来启用通道0。

读取加载单元1、从地址0x28读取(与直接连接到 BeagleBone 的 I2C 总线时相同)。

5.为了下一次读取加载电芯2、通过向 I2C 总线写入0x10来启用 TCA9543A 的通道1。

6.读取加载电池2、从地址0x28读取(同样、与直接连接到 BeagleBone 的 I2C 总线的方法相同。)

一般来说、使用该器件的逻辑是什么?

最后、还有一个问题、芯片上的地址线与它的 I2C 地址之间的关系是什么?  我在文档中看不到任何提供此功能的内容。  例如、如果我希望 TCA9543A 的地址为0x71、这是怎么工作的?  我是否可以将 A0连接到 Vcc、将 A1连接到接地?

提前感谢!

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

    通过将0x02写入器件地址0x70来启用第二个通道。

    有关该地址、请参阅数据表的第8.6.1节。

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

    不错的地方  复制并粘贴此处。   那么、这些步骤通常是否正确?

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

    有。

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

    我将通过 Mikroe 生产的名为 I2C 多路复用器4 Click 的板使用该器件。 我知道 TI 不支持其他产品、但我对板上的 TCA9543A 有几个问题。

    我可以 在地址0x70处看到 TCA9543A;我使用 C 写入它的操作成功。 我可以成功写入0x01、0x02和0x99。 (0x99只是一个测试值;我意识到这不是一个有效的设置。  )

    一旦我发送了一个有效的通道选择值(例如0x01)、我就没有看到0x28处的加载单元符合预期。  我没有将 INT 或 RST 连接到任何地方。  他们必须是谁?  我曾尝试把它们绑在高和低,结果没有区别。

    我已经将 TCA9543A (地址0x70)和称重传感器(地址0x28)直接连接到 I2C 总线、我可以成功读取这两个、因此我知道称重传感器工作正常、接线对称重传感器良好。

    以下是我的 C 代码、以防它对您有所帮助。

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    // Basic & generic includes
    #include <stdio.h>
    #include <unistd.h>
    #include <string.h>
    #include <stdlib.h>
    #include <fcntl.h>
    // includes for time
    #include <time.h>
    #include <sys/time.h>
    // includes for I2C
    #include <linux/i2c-dev.h>
    #include <sys/ioctl.h>
    int main()
    {
    int fd2;
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    负载单元连接到通道0时、这里是输出。

    写入 SET 通道的结果为1
    无法获取总线2、多路复用器通道0访问和/或与从器件通信。
    make:***[/var/lib/cloud9/common/Makefile:173:Start]错误2.

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

    你好、Walter、

    根据数据表、我认为最好通过上拉电阻器将 RESET 和 INT 引脚连接到 VCC。

    当 Load Cell(目标器件)没有从总线控制器接收到数据时,您是否在 I2C (SDA 和 SCL)线路上看到了一个称为 NACK 位的东西?(您是否会碰巧遇到此错误的范围? 这将是  来自负载单元(目标)的输入信号的示波器快照波形、以及返回到控制器的输出信号

    这里是一份 很好的应用手册 、可以帮助调试 I2C。

    我同意上面 Clemens 的意见,你,我和 Clemens 可以一起工作,以帮助你的系统。

    此致、

    Kameron

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

    我不熟悉/dev/i2c 界面的细节。 使用 i2c-tools 软件包中的工具会更容易、例如"i2cset 2 0x70 0x01"。

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

      

    供参考-我复查了连接是否正常、以防其中一根跳线损坏。  他们都很好。

    第一个图像是示波器捕获的将通道设置为0的写入操作。  这似乎是正确的、是一个良好的信号。

    我使用了 Linux 命令

    Fullscreen
    1
    i2cset -y 2 0x70 0x01
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    选择通道0。  不会生成任何错误。

    下一个图像是发送命令以读取0x28处的加载单元的示波器捕获。  连接到通道0。   

    此操作通过 linux 命令来完成  

    Fullscreen
    1
    i2cget -y 2 0x28
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    Linux 的响应方式为

    错误:读取失败。

    我使负载单元连接到通道、并使用以下命令将多路复用器的通道设置为通道1。

    Fullscreen
    1
    i2cset -y 2 0x70 0x02
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    示波器引线与之前基本相同。

    然后,我再次尝试读取称重传感器,它失败了,在示波器上没有任何东西。  

    尚不清楚输出通道是否需要上拉电阻器。  (请记住、TI IC 位于 Mikroe 提供的开发板上。  我在通道0 (负载单元连接的位置)上从 SDA 和 SCA 向 Vdd 添加了10K 上拉电阻器。  然后、我使用命令行将通道设置为0并再次运行我的代码。  我从称重传感器获得了读数!  在代码连续读取称重传感器时、我使用命令行将多路复用器通道更改为通道1。  当我进行更改时、称重传感器读数失败。  多路复用器工作正常。  我需要添加上拉电阻器。  哇哦!

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

    您好、Walter、

    恭喜您找到解决方案!

    如果您需要任何其他帮助、请告诉我!