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.

[参考译文] INA226:地址错误

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

https://e2e.ti.com/support/amplifiers-group/amplifiers/f/amplifiers-forum/1116636/ina226-address-error

器件型号:INA226
主题中讨论的其他器件: ISO1541ISO1640TCA9517ATCA9800ISO1641

大家好、

客户使用 I2C 来读取 INA226的数据。他们使用0x40地址来读取这个电流、但是他们没有 ACK 应答。 我怀疑该地址或格式 错误。 请帮我检查一下吗?

非常感谢。

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

    您好!

    地址0x40与电路中的配置相匹配。 请参阅下表。

    请参阅数据表第19和20页、了解与 INA226器件的正确 I2C 通信。

    您以多快的速度进行 i2c 通信?

    此致、

    化学文摘社

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

    尊敬的 Castrense:

    请帮我检查 原理图吗?  I2C 通信如下所示

    非常感谢。

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

    您好!

    INA226在第9个时钟脉冲上是 ACK。 您的代码似乎没有执行任何操作、而是重复发送从地址。

    因此、第一个帧(帧1)是通过写操作发送的从器件地址(脉冲8上为0)。 INA 提供一个 ACK (脉冲9上为0)。 然后、您必须保持 I2C 通信并将要写入数据的寄存器发送到。 请参阅 INA226数据表中的表4。 接下来的两个帧将是写入帧2中寄存器集的数据。 在第4个帧之后、I2C 通信可以结束。这是对寄存器的写入。  

    当尝试写入 INA 时、帧之间不应发生启动/重新启动。  

    下面是写入 INA226的时序图。  

    我猜您也会尝试从 INA226中阅读、如果您对此有任何疑问或上述内容、请回复。

    此致、

    化学文摘社

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

    您好,Castrense

         我是这个地址的问题、现在的情况如下:无论后续数据的读取和写入时序配置如何、我们都将0x40写入地址。 根据示波器、第九个位置较低、但实际上、我们将此块的 ACK 值打印为1、该值应在 SDL 的上升沿进行挑选。 由于我们的代码在第一步中直接报告了错误、因此无法在稍后出现该问题、因为我们尚未执行该步骤。 我想问您、在这种情况下、您排除了器件地址错误的问题、原因可能是什么?

         谢谢!

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

    您好!

    我想更好地了解问题是代码还是我们的器件。 您是否可以与电路板上的任何其他 I2C 器件通信并正确进行堆叠? 如果是、它们是什么器件? 您是否在与 INA 通信时使用7位寻址?

    此致、
    化学文摘社

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

    您好!Castrense

       我 使用7位地址进行通信,并且还有其他器件连接到此 I2C 总线,例如 Flex CHIP -BMR485、BMR685,它们还正常接收 ACK 信号

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

    您好!

    当错误出现在代码中时、您是否可以生成范围快照? 如果 INA 收到1作为 ACK、您的代码是否会继续尝试与 INA 交谈? 如果代码收到 ACK 的0、则代码中的后续步骤是什么?

    您能否更换 INA226并查看问题是否仍然存在?

    此致、

    化学文摘社

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

    您好!

       示波器快照?   在代码中的 INA 通信期间、当接收到的 IACK 信号为1时、它将直接转至 CLOCK_EXIT 并报告错误、直到下一次 I2C 通信。 当接收到的 ACK 信号为0时、它将证明有一个应答信号并且它将开始发送寄存器地址。  接收到 ACK 响应后、将再次生成 START 信号。 I2C 开始读取一个字节序列或写入一个字节序列的周期、直到完成。当我替换到完整的机器时、问题仍然存在。

      谢谢!

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

    您好!

    很抱歉、我想看到示波器上的 INA 不是 ACK。 如果您可以在程序读取非 ACK 时获得示波器的图片、该 ACK 将确定它是代码还是 INA。 您刚才提到的示波器图片是代码已经抛出错误、问题无法再次发生的情况。 我想看看问题何时发生、SDA 和 SCL 线实际上是什么。  

    我还将与团队中的另一位成员交谈、看看他们之前是否看到过这种情况。

    此致、

    化学文摘社

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

    你好!  

          以下是我们公司 INA226 I2C 通信无法连接的问题:

    根据测试波形、I2C 隔离器 ISO1541输出低电平为高电平(0.75V)。

    所附为 INA226 I2C 接口电路的原理图。

    1.1 ISO1541D I2C 接口故障

        症状:在处理器(主器件)发送读/写 INA226寄存器地址(0x40)后、ACK 信号为高电平:INA226 (从器件)不响应。

    测试 INA226 I2C 总线时钟和数据总线、如下所示:

    测试隔离器 ISO1541D SDA/SCL1 I2C 总线时钟和数据总线、如下图所示:

    测试 I2C 总线缓冲器 PCA9511 SCLIN/SDAIN I2C 总线时钟和数据总线如下图所示:

        根据 ISO1541D SDa1/SCL1 I2C 总线的时钟和数据波形、SDA1的第九位 ACK 为0.7V 半高电平。

    因此、处理器读取的 ACK 为1:INA226 (从器件)不响应、I2C 通信停止。

        仔细阅读 ISO1541D 手册、发现 sda2为"0"、sda1由于接地端有一个二极管、输出为0.75V。下图对 ISO1541D 的这一部分进行了说明。

       由于采用 ISO1541D、INA226的 ACK "0"输出更改为0.75V。0.75V 是处理器的不确定状态、

        当处理器要求低电平小于0.6V 时,它会将 ACK 信号标记为“1”:INA226 (从机)不响应,I2C 通信停止。

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

    您好!

    我应该已经问过任何其他连接到 SDA/SCL 线路的东西、这些东西可能会妨碍通信、很抱歉。 我看到 ISO1640/1641中有一个 P2P 替代产品、但它们仍然具有0.65V 的二极管、这足以考虑低电平吗? 是否需要在 i2c IC 中使用隔离栅?

    此致、

    化学文摘社

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

       你好!

      我们必须使用此 I2C 隔离电路器件、因为两侧的接地不同、因此是否有任何好的解决方案来解决此问题?Iso1640/1641低电平0.65V 仍然很高。

      谢谢。

     

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

    您好!

    我要将此主题移至支持 i2c 隔离器件的团队。 他们将比我更有帮助。

    此致、

    化学文摘社

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

    您好!

    根据讨论内容、我假设该系统中的 MCU 连接到 ISO1541的1侧。 如果情况并非如此、请告诉我。

    正如您在响应中提到的、MCU 将与 ISO1541不兼容、因为1侧的低电平输出电压大于 MCU 所需的低电平电压。 为了使这两个器件的电压电平相互兼容、我们建议在 ISO1541和 MCU 之间连接一个 I2C 缓冲器。  TCA9517A 和 TCA9800都是 I2C 缓冲器、 我们建议用于此目的。

    我们还建议从 ISO1541切换到 ISO1641。 ISO1641在提供增强型隔离的同时具有较低的低电平输出电压、是该器件的最新版本。

    此致、

    Kenneth