HX711数据格式分析

来源:互联网 发布:mysql 性能测试工具 编辑:程序博客网 时间:2024/05/29 11:19

HX711数据格式分析

HX711是一款24位的模数转换器,最高位是符号位,其余为有效位,数据编码格式为二进制补码。

输出数据最小值【0x800000】,最大值【0x7FFFFF】。(往往我们读到的数据可能不符合这个范围,这和我们的硬件连接,还有INPA和INNA的电压差分信号有关,仔细分析数据会有更有意思的发现)

INPA(Input positive A)A端口正极输入,INNA(Input negative A)A 端口负极输入。

本文实测数据使用的HX711的A端口,128增益,即满额度差分输入信号幅值为±20mv,为了简单说明,只观察前12位数据。(首先说明一下,INPA和INNA不要接反,随着重量的增加INPA端电压正向增长,INNA电压反向增长)


实测数据INPA-INNA(mv)读取数据^0x800000二进制数据-0.50xfa00x7a00111_1010_0000-0.20xfd20x7d20111_1101_001000x0010x8011000_0000_00010.20x0220x8221000_0010_00100.50x0570x8571000_0101_0111

之所以会发生 INPA-INNA < 0mv 的情况,是因为发生了零点漂移,例如上面的数据就是初始状态INPA-INNA = -0.5mv然后随着重量的增加会发生过零点,这时如果直接使用读取到的数据就会发生错误,因为读取到的是小于0的二进制补码,是不能直接使用的,需要转换成其原码。

比较简单的处理方法就是读到的数据直接和0x800000进行异或(data = data ^0x800000),这时最高位可以看做是有效位,不代表符号位而代表的下一位的进位,这样数据会一直往上增长,我们可以直接拿来进行使用。

1 1
原创粉丝点击