钻石会员
主题
帖子
积分18480
阅读权限50
注册时间2012-12-12
最后登录1970-1-1
在线时间 小时
|
楼主 |
发表于 2013-3-9 22:09
|
显示全部楼层
关于测量精度的研究:
首先我们定义我们只做的模块是爱好者使用的,不是仪表级的,因此讲究的是性价比,而不是一味的追求精度(追求精度的结果会使这个模块达到百元以上)
在电压方面,我们信任STM32的ADC的精度和线性度,因此,采用1:11左右分压,ADC满格是3.3V,因此测量范围大约是36V,ADC是12位的,因此理论分辨率是36/4096=0.0088V,这个差不多够用,因此电压一般问题不大
在电流方面问题较大,有多种方案:
1、如果直接使用STM32对电流进行检测的话,按照电路板上采样电阻50m欧计算(实际43),3.3满量程折合66A,12位后的理论分辨率为16mA左右,折合精度能做到30mA左右就不错了,一般应用勉强够用
2、使用运放做采样电压放大,比如放大20倍,就可以做到1A 1V,这样精度可以做到0.8mA,但是运放对于单电源的系统来说,在0附近的线性度实在差劲,就算轨到轨的运放也很差劲,一般商业应用很少采用
3、使用专用的电流传感放大芯片,去市场咨询下,发现此类芯片的价格都在8~10元,这样做双路光这个芯片的成本就得20元左右,性价比不高
本着爱好者那种穷折腾的劲头,选择方案2,试着研究一把:
第一步,研究运放在不同电流下的线性度
试验LM358:
电流 采样电压(mV) 运放放大电压(mV)
0 0 5.0
0.1A 4.7 50.5
0.2A 7.8 119
0.3A 12.2 218
0.4A 16 303
0.5A 20.4 400
0.6A 24.6 493
0.7A 28.9 592
0.8A 33.3 686
1A 41.6 872
试验:opa2333
电流 采样电压(mV) 运放放大电压(mV)
0 0 110
3.2 124
100mA 5.8 146
200 8.6 187.4
300 12.9 276
400 16.4 354
500 20 445
600 24 541
700 28 631
800 32 729
1000 40 905
发现传说中的高精度轨到轨运放在0输出时表现的输出电压居然还没有白菜级的LM358更接近0,难道是买到假货?
不管是哪种运放,在500mA电流一下的线性度都不能使用,但是分辨率还行,不管在什么电流情况下,数值都在变化
因此,决定发挥STM32内存大的特点,制作复杂的程序,对运放放大电压采用多点拟合曲线法解决线性度不好的问题,具体的方法是,增加校正点到28个,分别是:
10mA 20 30 40 50 60 70 80 90 100
120mA 140 160 180 200
200mA 250 300 250 400 450 500
600mA 700 800 900 1A 2A
这样的话,电流精度也基本解决。 |
|