[放大器-信号链] 关于称重传感器和AD的计算求助

[复制链接]
3462|15
 楼主| Elric_QZH 发表于 2016-1-10 16:03 | 显示全部楼层 |阅读模式
本帖最后由 Elric_QZH 于 2016-1-10 16:27 编辑

最近在做称重计算的时候遇到了问题,特来求助。问题1:


传感器输入的是差分信号,为什么满量程的1100.8mv要按照550.5mv计算呢?
问题2:使用AD读出来的数据跳动很大,我怎么才能知道这个读出来的数据精度是多少呢?传感器不放任何东西,得出来的数据如下

使用24位的AD,HX711读出的数据如下:

  1. 0016363484
  2. 011110011010111111101010
  3. 0016363498
  4. 011110011010111111101100
  5. 0016363500
  6. 011110011011000000100010
  7. 0016363554
  8. 011110011011000000000011
  9. 0016363523
  10. 011110011011000000111010
  11. 0016363578
  12. 011110011011000000001011
  13. 0016363531
  14. 011110011011000000111101
  15. 0016363581
  16. 011110011011000001011100
  17. 0016363612
  18. 011110011011000001110001
  19. 0016363633
  20. 011110011011000001111010
  21. 0016363642
  22. 011110011011000001011101
  23. 0016363613
  24. 011110011011000001110110
  25. 0016363638
  26. 011110011011000001001001
  27. 0016363593
  28. 011110011011000001000011
  29. 0016363587
  30. 011110011011000001110011
  31. 0016363635
  32. 011110011011000011000010
  33. 0016363714
  34. 011110011011000010101001
  35. 0016363689
  36. 011110011011000010000010
  37. 0016363650
  38. 011110011011000010000000
  39. 0016363648
  40. 011110011011000010110100
  41. 0016363700
  42. 011110011011000010101100
  43. 0016363692
  44. 011110011011000001010010
  45. 0016363602
  46. 011110011011000010000011
  47. 0016363651
  48. 011110011011000010001100
这个误差是不是很大呢?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| Elric_QZH 发表于 2016-1-10 16:04 | 显示全部楼层
玄德 发表于 2016-1-10 18:37 | 显示全部楼层

1、可否把原始文档传上来?百度要下载券。

2、看你读数,最小值是01行 0016363484,最大值是33行 0016363714
    二者相减,差值为 230 等效于 8位。故有效数据的等效位数为 24 - 8 = 16 位。
    感觉还不错。

    也许可以做更好,和测试方法,外围电路、PCB都有关系了。



玄德 发表于 2016-1-10 18:40 | 显示全部楼层

我看到的文档,居然没有电压与输出码的对应关系。

 楼主| Elric_QZH 发表于 2016-1-10 18:41 | 显示全部楼层
关于第一个问题,知道了,丫书写错误,我去
airwill 发表于 2016-1-10 21:18 | 显示全部楼层
跳动不算大. 电源基准包括其它器件的噪声的因素足够引起这么大波动
可以考虑使用滤波算法来平滑掉它
markhwa 发表于 2016-1-10 22:16 | 显示全部楼层
要看该最大变动对应的称重误差是否满足你的设计要求。按你的数据推算,满量程大约160kg,24bit最高精度对应0.02g,16位精度大约对应8g。
haolaishi 发表于 2016-1-11 09:07 | 显示全部楼层
怎么个运算公式各位能否讲一下呢?
玄德 发表于 2016-1-11 10:56 | 显示全部楼层
haolaishi 发表于 2016-1-11 09:25
资料上传了,这是网络找到的一个资料。


需要这个芯片的官方pdf手册。

输入电压与输出码的对应关系,同时也是你要的运算公式,手册里一定会有。



haolaishi 发表于 2016-1-11 11:07 | 显示全部楼层
玄德 发表于 2016-1-11 10:56
需要这个芯片的官方pdf手册。

输入电压与输出码的对应关系,同时也是你要的运算公式,手册里一定会有。

ADS1230官方手册






本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
haolaishi 发表于 2016-1-11 11:16 | 显示全部楼层
本帖最后由 haolaishi 于 2016-1-11 21:55 编辑

这个是我接ADS1230读取到的数据:
数据从串口发出,第一行是二进制,第二行位10进制
00000100101010011010
0000019098
00000100101010011000
0000019096
00000100101010010111
0000019095
00000100101010010110
0000019094
00000100101010011000
0000019096
玄德 发表于 2016-1-11 11:22 | 显示全部楼层



1230手册,p13,table 4就是。

把右侧二进制数统统加上0x8000,无视溢出位,就能看明白了。






本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
haolaishi 发表于 2016-1-11 14:45 | 显示全部楼层
玄德 发表于 2016-1-11 11:22
1230手册,p13,table 4就是。

把右侧二进制数统统加上0x8000,无视溢出位,就能看明白了。

现在发现几个问题:
1.为什么20位的AD可是手册TABLE4上面是(2的19次减1)
2.我如果按照前面的0.5×5V(2的19次减1)=262144。可是TABLE4说≤-0.5Vref/增益,
  ≥+0.5Vref/增益,这个是什么意思呢,还是有点看不明白。
3.按照上面您说的那个加上0X8000在右边,可是出来的数字。我实在看不出和这些有什么关系。
    您帮看看谢谢了。
玄德 发表于 2016-1-11 15:20 | 显示全部楼层
本帖最后由 玄德 于 2016-1-11 15:26 编辑
haolaishi 发表于 2016-1-11 14:45
现在发现几个问题:
1.为什么20位的AD可是手册TABLE4上面是(2的19次减1)
2.我如果按照前面的0.5×5V(2的 ...

1、正范围与负范围总共占用20位,所以各自要算19位。

2、0.5v是芯片的满量程,0.5/G 等于你的输入信号电压。
    只要0.5/G相等,得到的代码就相同。人家这样写法很“妙”的;否则,要根据G值写好几个表格才能说明问题。
    如果再不明白,就把G用64或者128代入;甚至直接视G为 1 。
   
3、先看懂0和正值,输入电压与代码的关系。




haolaishi 发表于 2016-1-11 23:29 | 显示全部楼层
玄德 发表于 2016-1-11 15:20
1、正范围与负范围总共占用20位,所以各自要算19位。

2、0.5v是芯片的满量程,0.5/G 等于你的输入信号电 ...

我算出来是包含噪声位的。所以最大确实读到268865左右的一个最大数值。而实际真正能使用的其实不是20位,经过软件滤波加一位是17.5+1=18.5位。所以就有了下面的有效位无噪声数据为的最大AD数值95058 。




[1048576(2的20次)]除以[5V*1000(5000mV)]=209.7152 AD/mV
AD增益为128,满载10mV代表AD值:
209.7152 AD/mV×10mV×128=268435.456 AD


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| Elric_QZH 发表于 2017-11-25 09:40 | 显示全部楼层
都一年多了,时间过得真快,我居然没什么进展。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

20

主题

133

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部