HX711双通道AD转换模块

作者:卓晴博士,清华大学自动化系
更新时间:2020-07-27 Monday

在下面两个推文给出了HX711的转换介绍。

如果使用HX711替代万用表进行高速测量高精度ADC,那么存在以下的问题?

  • HX711转换速率是多少?
  • HX711两个通道公模电压范围时多少?
  • HX711的差模转换电压范围是多少?

01参数分析


通过分析HX711的数据手册,理论上回答上面的问题。

1. HX711的差模范围是多少?

根据手册中的介绍,可以知道A,B两个通道的输入范围是40mV。输入选择开关可任意选取通道A 或通道B,与其内部的低噪声可编程放大器相连。通道A 的可编程增益为128 或64,对应的满额度差分输入信号幅值分别为±20mV或±40mV。通道B 则为固定的64 增益,用于系统参数检测。

根据HX711的内部功能模块示意图,通过测量其中的(PIN6)VBG,来反过来确定HX711的输入差模电压范围。

  • 测量Vgb的电压为: 1.2734V。

▲ 图1 电子秤应用典型方案

▲ 图1 电子秤应用典型方案

2.HX711的转换速率

3. 公模电压范围

02实验验证


1.读取不同ADC

通过输出不同脉冲可以读取A,B两个通道的数值。

如果不切换通道,连续读取数值的周期可以100ms。
一旦切换通道,连续读取数值的周期必须大于500ms。否则读取的数据输出都是0xffffff。
为什么?

2.将A-设置为0

将A-设置为0, 然后改变A+。下面是A+与ADC结果之间的关系。

▲ IN与ADC之间的关系

▲ IN与ADC之间的关系

设置A- = 1.67V
▲ IN与ADC之间的关系

▲ IN与ADC之间的关系

▲ IN与ADC之间的关系

▲ IN与ADC之间的关系

※ 结论


通过上面的测试,可以看到HX711的公模输入范围需要大于一定的数值。所以它不适合从0V开始测量。

`

``python
#!/usr/local/bin/python

-- coding: gbk --

#============================================================

TEST2.PY – by Dr. ZhuoQing 2020-07-27

Note:

#============================================================

from headm import *
from tsmodule.tsstm32 import *
from tsmodule.tsvisa import *

dp1308open()
dp1308p6v(0)

time.sleep(2)
setv = linspace(0, 5, 50)

adim = []
adc = []
meter = [0,0,0,0]

for v in setv:
dp1308p6v(v)
time.sleep(.5)

meter = meterval()
printf(meter)
stm32cmd('hx711read')
val = stm32memo(1)
printf(val)

adim.append(meter[0])
adc.append(val[0])

tspsavenew(‘hx711’, inv=adim, outv=adc)
plt.plot(adim, adc)
plt.xlabel(“In(V)”)
plt.ylabel(“ADC”)
plt.grid(True)
plt.tight_layout()
plt.show()

#------------------------------------------------------------

END OF FILE : TEST2.PY

#============================================================


猜你喜欢

转载自blog.csdn.net/zhuoqingjoking97298/article/details/107618626