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:固件

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

https://e2e.ti.com/support/amplifiers-group/amplifiers/f/amplifiers-forum/1351334/ina237-prblem

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

我们有一个板、在其中使用 15 单个 I2C 总线地址0x40-0x47、0x49-0x4F 上的 INA237器件

此外、在同一总线上的地址0x48处还有 DAC6578

地址0x47的器件不能像其他器件那样正常工作-它实际上是 I2C 总线上主 CPU (STM32)的第二个器件。

我们制造了5块原型板、所有5块板都有相同的 问题- 不是一个特别的问题

DAC6578可按预期工作(读取和写入)。

所有 INA37器件(0x40-0x46、0x49-0x4F)正常工作- 读取 DEVICE_ID 0x5449 地址为0x3E。 读取 DEVICE_ID 的示例

寄存器0x6的温度读数为0x10a0 ( 33.25°C ) 似乎可以。

现在、对于问题、

INA237器件0x47返回 0x000 如果器件 ID 和温度从寄存器0x6读取为0x340 ( 6.5C 度 )作为温度(室温下工作)

有趣的是、该器件在配置 ALERT 和阈值寄存器时确实会按预期运行-在中、当电流超过阈值时激活 ALERT。

我们尝试了6个不同的阈值、它们按预期工作(使用数字负载)和15毫欧分流电阻:

0.1A: SOVL 0x0C = 0.0015mV/5uV = 300d = 12Ch
0.2A: SOVL 0x0C = 0.0015mV/5uV = 600d = 258h
1A: SOVL 0x0C = 0.015mV/5uV = 3000d = 0BBBh 
2A: SOVL 0x0C = 0.03mV/5uV = 6000d = 1770h 
4A: SOVL 0x0C = 0.06mV/5uV = 12000d = 2EE0h 
6A: SOVL 0x0C = 0.09mV/5uV = 18000d = 4650h

因此 写入器件似乎可以正常工作

读回 SOVL 值会返回0x0000

所有器件采用相同的设计

如有任何帮助,将不胜感激。

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

    显然、其他一些器件会对地址0x47做出反应。

    是否有这些 INA237和 DAC 以外的任何器件?

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

    否、总共16个器件(15个 INA237和1个 DAC)除0x47 INA237外所有工作(读取和写入)。

    此外、当我写入有问题的 INA237时、它确实会收到写入命令、但会回复错误的数据。

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

    您是否能够验证不同器件是否在该物理 I2C 地址上工作?  

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

    您能详细说明一下吗? 您的意思是将 ina237替换为新的 ina237  

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

    是的、或者使用其他类型的器件。  

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

    您怀疑是器件吗? 如果是、那么我不这么认为、因为我们有5个板具有相同的问题。  

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

    您好!

    读回所有其他寄存器。 例如、在配置警报和阈值后、您能立即读回它们吗?

    如果是、ID 寄存器也应正常工作、除非在读取命令之前未正确设置指针。

    此致、Guang  

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

    此特定 INA237 (@地址0x47)的所有寄存器回读均 不正常

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

    您好!

    控制器是否能够调整 I2C 总线的时序? 似乎没有数据保持时间、而该器件的所有数据位都至少需要10ns。

    如果无法调整时序、您可以尝试在 SDA 引脚附近添加一个 RC 滤波器、该滤波器有望有助于略微延长保持时间。

    此致、Guang  

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

    我认为这不是问题-正如你可以看到(在工作地址)当数据已经稳定时、100KHz SCL 时钟(黄色)上升。

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

    您好!

    我的评论与 SDA 在 SCL 下降沿上的外观有关。 这两个边沿看起来是同时发生的。

    此致、Guang  

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

    仔细检查后会得到150ns 的保持时间(时钟下降后150ns 内数据有效)。

    无论如何、正如 您从 OP 中看到的、器件会提供答案、但数据中全为"0"、因此这不是 CPU 时序问题。

    为什么地址0x47处的此器件(在所有5个电路板上)始终显示此问题、而5个电路板上的其他14个 INA237器件上都不显示此问题?

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

    Dan、您好!

    这就是秘诀。

    可以进行一些实验吗? 例如-

    1. 将0x47处的 INA237替换为在不同地址处工作的另一个 INA237、并观察这两个器件的行为。 问题是出在 DUT 之后、还是停留在该地址?
    2. 从总线上移除所有 I2C 器件、0x47处的 INA237和控制器除外。 观察 DUT 是否工作。

    此致、Guang  

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

    我们曾考虑过它、并将 在我们完成电路板上保留的其他上电测试后再进行尝试。

    我将在我们访问后更新此帖子...

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

    Dan、您好!

    听起来不错、请在有时间时再发布。 我想了解其中的调查结果。

    此致、Guang