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.

[参考译文] INA209:INA209 -在涉及 SCL/SDA 的地址上访问失败

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

https://e2e.ti.com/support/amplifiers-group/amplifiers/f/amplifiers-forum/1125018/ina209-ina209---fail-to-access-on-address-involving-scl-sda

器件型号:INA209

您好!

我在我的设计中使用10 x INA209。

f= 100KHz

我无法访问通过 strappin A1 A0到 SDA/SCL 配置为 I2C ADDR 的地址(例如、L addr 0x42 (a1=GND、A0=SDA))

DS 表示:

'引脚 A0和 A1的状态需要一个寄存器指针的值。
在每次总线通信时被采样并且应该写入一个寄存器以第一个字节开始
在接口上发生任何活动之前进行设置"

您能不能详细说明 A1 A0被采样的时间点

为了正确捕捉地址、SCL/SDA 是否有任何时序限制?

添加用于访问0x42的图片-无确认

添加了用于访问0x44的图片-使用 Ack

谢谢

Dror

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

    您好 Dror、

    您是否使用大于0 Ω 的电阻拉地址引脚 A0、A1?

    每次主主机控制器启动启动条件时、INA209都会读取 A0和 A1的状态以确定其第二地址。 这会给将 A0/A1上拉至 SDA 的器件带来问题、因为通过将 SDA 下拉为低电平来生成启动、并且根据电路板寄生效应、在 器件甚至确定 Ax 状态之前、SDA 可能会变为低电平、 因此、它不会在传输结束时确认。 如果 MCU SDA 引脚和 INA209地址引脚之间存在电阻/电感、则此问题会变得更糟。

    如果可能、请尝试减小 A0和 SDA 之间的 SDA 负载电容和任何迹线电阻/电感、以及主机的 SDA 和 INA209的 SDA。 降低上拉电阻也会有所帮助。 如果这些不起作用、并且您无法避免将地址引脚上拉至 SDA、 然后、您必须将 MCU 的起始保持时间(t_HDSTA)增加至额外的100ns、以确保 INA209在 起始条件结束(第一个 SCL 时钟开始)之前确定其第二地址。

    希望这对您有所帮助。 请将任何其他问题和/或更新发布回来。

    此致、

    Peter

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

    您好、Peter、

    A0/A1至 SCL/SDA/GND/VCC 之间的电阻为0欧姆  

    原理图的屏幕截图如下

       

    我要添加 2个示波器捕获:

    USB 与 FTDI (I2C)芯片(FT4222HQ)进行的事务- INA 在其中发送 ACK。 (FTDI 在400K 下工作)

    2.由片外进行的事务 (在100K 内工作)- INA 不发送 ACK

    在这两种情况下、开始时间都远远超过100N……

    照片#1:

    照片#2:

    您能指定在"开始条件"期间 A0/A1捕获的确切点吗?

    我不明白为什么我们的芯片出现故障?

    Dror

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

    嗨、Dror、

    感谢您发送示波器截图。 正确的是、开始保持时间是有效的。 但是、在启动条件之后、您可能会遇到数据保持时间(HHDAT)问题、这也可能导致 NACK。

    在第二幅图像中、我圈出三个实例、其中数据保持时间基本上为0ns (或更少、很难说)。 与第一个图像相比、所有三个实例显示不同的时序行为。 虽然我们列出了0ns 具有有效的数据保持时间、但最好采用一定的裕度(~10ns)来考虑电路板寄生阻抗。

    在实例"1"中、这在技术上不是时序图中所示的数据保持时间、因为它发生在第一个 SCL 脉冲之前;但是、它表示一旦 SCL 下降到相应 SCL 脉冲前半个周期、SDA 将移动。 这基本上意味着您将最大程度地延长数据设置时间 并最大程度地缩短数据保持时间。 您可以尝试增加这里的保持时间(从 SCL 下降到 SDA 上升的时间、如果可能的话)、看看这是否可以解决这个问题、但是您很可能必须对所有数据保持时间执行同样的操作。

    在实例"2"中、SDA 在 SCL 下降的同时上升。 在这里增加数据保持时间意味着在 SCL 下降和 SDA 上升之间输入~10ns 的时间。

    在实例"3"中、SDA 在 SCL 下降的同时下降。 在这里增加数据保持时间意味着在 SCL 下降和 SDA 下降之间输入~10ns 的时间。  

    希望这有道理。

    此致、

    Peter

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

    尊敬的 Peter:

    t (HDDAT)被指定为0nSec 最小值、看起来设备必须具有所述的~10nSec 值。

    这是 DS 中的一个拼写错误、不是吗?

    BTW:我们在 A0串联电阻器上添加了 RC 延迟(将0欧姆更改为1K 并将100pF 添加到 GND)这可以解决问题、但需要在电路板上添加补丁。

    下一次-我不会使用与 SDA 一起调用的地址...

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

    嗨、Dror、

    0ns t_HDDAT 不是排印错误。 器件的特性是具有此时序;然而、鉴于如果不考虑电路板寄生效应、可能会有更长的延迟、此时设置 t_HDDAT 可能微不足道、因此我建议只额外增加几 ns 以提供足够的裕度。 更重要的是、将地址引脚拉至 SDA 时、0ns 保持时间会出现问题、这是一个拼写错误、我们正在数据表中对此进行说明。 由此给您带来的不便、我们深表歉意。

    因此、增加数据保持时间是解决此问题的一种方法。 虽然让我来看看、如果您无法增加系统中的数据保持时间、是否可以进一步优化这些值以实现稳健性、但将 RC 放置在 A0上似乎是另一种方法。

    此致、

    Peter