主题中讨论的其他器件: 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
这对于室内温度来说是一个合理的值。
在电压计算方面、我漏掉了什么?