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.

[参考译文] INA228:根据 I2C 输出进行 VBUS 电流计算

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

https://e2e.ti.com/support/amplifiers-group/amplifiers/f/amplifiers-forum/1344989/ina228-vbus-current-calculations-from-i2c-output

器件型号:INA228
主题中讨论的其他器件: SysConfig

我对如何根据通过 I2C 读取的数字值计算模拟值感到困惑。 示例和解释不清楚、或者我可能出于任何原因过度思考并使其复杂化。 有人能对此提供一些说明吗?  

VBUS:
其表述为 Vbus 是一个24位寄存器。 因此、我决定在 I2C 线路上读取3个字节。 我从 I2C 线路得到了0x05、0x75和0x20。 数字数据是0x57520还是0x575200? 这意味着前4位被保留且始终为零。 所以我应该自行移动数字输出和垫零、还是我在末尾总是得到4个零?  

接下来、我可以直接将分辨率大小乘以得到实际的模拟值。 此处的分辨率大小: 195.3125 uV/LSB。  

对于0x57520 = 357664 * 195.3125 = 69.856V  
对于0x575200 = 5722624 * 195.3125 = 1117.7V  

这两个值都没有意义。

内核温度:
我想这很简单、解释清楚。 我读取数字值0x0B 和0xA0。 它是一个16位寄存器。 我在 I2C 线路中读取了2个字节。 因此我最终得到数字输出0xBA0、十进制的数字输出为2976。  
2976 * 7.8125 MC/LSB = 23.25 C  
这对于室内温度来说是一个合理的值。  

在电压计算方面、我漏掉了什么?  


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

    您好!

    对于 VBUS 测量、应将这些值合并为 0x57520、然后向右移4位 、得到0x5752、即十进制的22354。  

    µV、您将乘以 LSB (注意195.3125的单位为 μ V):

    22354 * 195.3125e-6≈ 4.366V

    是的、23.25 °C 是室内温度的正常值。  

    如果您对 INA228的一些示例代码感兴趣、则可能对此处的 SysConfig 感兴趣:  https://dev.ti.com/sysconfig/index.html?product=ascstudio&module=/ti/sensors/currentsensor/INA228

    SysConfig 有助于根据您所需的配置设置生成 C 代码、并包括用于数据解析的有用函数。  

    此致、

    米奇