大家好、
目前、客户可以通过 I2C 读取转换寄存器中的值
然后、转换寄存器的值应该参考电压、对吧
如果是电压、如何将该值转换为实际电压? (当前配置寄存器中的设置值为8483)。
假设读取的值为 F48 ((0xF48-0x800)/4096)*4.096V (+/-2.048v)= 1.864v,但该值与实际测量值不同,因此他们希望询问正确的算法。
谢谢
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.
大家好、
目前、客户可以通过 I2C 读取转换寄存器中的值
然后、转换寄存器的值应该参考电压、对吧
如果是电压、如何将该值转换为实际电压? (当前配置寄存器中的设置值为8483)。
假设读取的值为 F48 ((0xF48-0x800)/4096)*4.096V (+/-2.048v)= 1.864v,但该值与实际测量值不同,因此他们希望询问正确的算法。
谢谢
Paul
如果配置寄存器设置为8483、则输入范围为+/-2.048V。 我们可以从这开始。
ADC 输出为12位、转换寄存器为16位宽。 最后四个位为零、您将使用12个最高有效位作为数据转换。 数据也被放入二进制补码符号中、以便表示负值。
这是我计算值的方法。 如果该值大于2^11或7FF、则该值为负、我将从12位数中减去0x1000。 然后、我将乘以正满量程范围、然后将其除以2^11。
在您的0xF48示例中、这个数字是-184
因此转换值为-184*2.048/2^11=-0.184V
您可以在 Excel 中执行此操作:
将其放入 B2中:
=if (HEX2DEC (A1)>(2^11-1)、((HEX2DEC (A1)-2^12)* 2.048/2^11)、(HEX2DEC (A1)* 2.048/2^11))
然后将 F48放入 A1。 您应该能够通过更改 A1的内容来进行所需的所有转换。
吴约瑟