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.

[参考译文] INA237-Q1:I2C 地址选择不按预期工作

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

https://e2e.ti.com/support/amplifiers-group/amplifiers/f/amplifiers-forum/1353418/ina237-q1-i2c-address-selection-does-not-work-as-expected

器件型号:INA237-Q1
主题中讨论的其他器件: INA237

HY,

我们开发了一个带有8个卡的19英寸机架、每个卡都装有一个 INA237-Q1。 我们将引脚 A0和 A1连接到卡边缘连接器、在背板上、对于每个插槽、我们以不同的方式将 A0/A1连接到 GND、3.3V、SDA 或 SCL。 在每个卡上还有一个 EEPROM (地址范围0x5x)和一个端口扩展器(地址范围0x2x)。

我们现在拥有第一个板并尝试将其投入运行。 组装的 INA 在 A0 = GND、A1 = GND 时对地址0x40做出反应、在 A0 = 3.3V 且 A1 = GND 时对地址0x41做出反应。

但当我们将 A0连接到 SDA 时、器件会在0x43而不是0x42上做出反应。 我们使用 Raspberry PI i2cdetect 来找出简单扫描每个 I2C 地址的情形。 I2C 信号似乎良好、说到边沿和时序、freq=100kHz。 INA 不仅对 i2cdetect 做出反应、而且可以使用地址0x43读取、因此这不是扫描 I2C 地址而导致的错误。

这种情况的根本原因是什么? INA 何时准确地调整其地址? 在前一次 I2C 通信后访问器件之前是否需要空闲时间?

感谢任何帮助

哈拉尔德

P.S.数据表读为"次级 I2C 地址"。 这是什么意思? 这只是常规 I2C 从器件地址吗?

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

    Harald、您好!

    您是正确的-"辅助 I2C 地址"仅意味着"I2C 从器件地址"、它们是相同的。

    使用 SDA 作为寻址选项时还有一个额外要求、请参阅以下声明:

    此致、Guang  

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

    HY Guang、感谢您的快速响应。

    我们确实看到了数据表的这一部分、但没有注意它。 100ns 对应于10MHz、对吧? 由于我们只有100kHz SCL 时钟、因此每个位无论如何都是10us、因此我们不关心100ns。 对吧? 但是、我们使用 RaspberryPi、对 I2C 的位时序无任何影响。 或者我是否需要延长 I2C 中的单个位?

    此致

    哈拉尔德

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

    Harald、您好!

    100ns 指的是数据设置时间、它与周期时间无关:

    此致、Guang  

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

    HY,

    这对我们来说似乎有点奇怪、但它是有效的:由于我们使用标准 SBC (Raspi)、我们不能影响 I2C 的位时序。 Bitbanging 似乎不是一个合理的选择。 因此、我们向 SDA 线添加一条 RC:

    当然、信号看起来很难看、但现在可以选择地址。

    您建议如何处理这种情况吗?

    此致

    哈拉尔德

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

    Harald、您好!

    这种丑陋的情况在 INA237中看不到、这才是最重要的

    感谢您的确认。

    此致、Guang  

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

    这场聚会太早了。 当然、当将更多器件连接到总线时(这就是我们这样做的原因)、由于容性负载过高、I2C 不再工作。 遗憾的是、当我们使用 Raspberry PI 作为主站时、我们无法降低 I2C 时钟频率。 目前我们还没有解决方案。

    我们尝试了一些上拉电阻器和"延迟"电容器组合、但没有找到有效的组合。 我们总共有21个 I2C 器件、其中7个是 INA。 有提示吗?

    此致

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

    Harald、您好!

    如果未使用 SDA、仍然有9个地址。 您能从这9个中选择7个吗? 这些选项没有相同的时序限制。

    此致、Guang