[STM32F1] AD转换测较低电压数值会漂移,AD值,电压数值波动

[复制链接]
6600|22
 楼主| YPHFree 发表于 2015-8-6 09:45 | 显示全部楼层 |阅读模式
我用STM32F103ZE :两路ADC(DMA),PA0,PA1接下拉电阻后仍有电压, 约1.7V-2.1V,当输入测量电压低于该电压时,AD值就会波动如下图(输入0.99V),如下图:
有时候是正确的,有时候又不正确,这是怎么回事?
AD09.png

输入0V时(10K下拉电阻接地)AD转换值波动如下图
AD.png
songchenping 发表于 2015-8-6 10:26 | 显示全部楼层
一看都是高手,就发个这,怎么帮你啊
 楼主| YPHFree 发表于 2015-8-6 10:33 | 显示全部楼层
songchenping 发表于 2015-8-6 10:26
一看都是高手,就发个这,怎么帮你啊

哥哥,我就是菜鸟才会遇到这问题吧?硬件不懂,软件不懂
songchenping 发表于 2015-8-6 10:43 | 显示全部楼层
YPHFree 发表于 2015-8-6 10:33
哥哥,我就是菜鸟才会遇到这问题吧?硬件不懂,软件不懂

好歹也得先把原理图发上来啊。
songchenping 发表于 2015-8-6 10:43 | 显示全部楼层
如果原理图没有问题那就看软件的问题了
mmuuss586 发表于 2015-8-6 12:40 | 显示全部楼层

接10K电阻下拉,正常读到的值就基本是0;
你跳动这么大,可能程序初始化不对吧
songchenping 发表于 2015-8-6 12:55 | 显示全部楼层
还有就是转换时间给够了吗?你试着将DMA采集频率降低试试。
mumu3013 发表于 2015-8-6 14:18 | 显示全部楼层
下来的情况下,还是有问题,说明你硬件或者软件有问题,这样你采集的电源肯定不准,会在你真实值和这个问题电压间波动。

问题解决1:查看硬件电路是否正确;
2:看下ADC是否配置正常,参考ST库里的例程,有ADC,DMA采集的例程,尤其是ADC用到的PA0,PA1引脚口的模式是否配置正确,再不行,你贴出来代码和电路图,大家帮你分析
 楼主| YPHFree 发表于 2015-8-6 16:12 | 显示全部楼层
@songchenping @mmuuss586 @mumu3013  
1)谢谢各位大神指点,漂移的问题基本解决,将ADC改成初始化的时候启动,将      ADC_RegularChannelConfig(ADC1, ADC_Channel_0, 1, ADC_SampleTime_55Cycles5);   
    ADC_RegularChannelConfig(ADC1, ADC_Channel_1, 2, ADC_SampleTime_55Cycles5 );  
    采样时间从239.5改成55.5,然后测0.几伏电压就不漂移了

2)现在的问题是测较低电压(低于2V)的时候误差比较小,约0.1V;但是测2点几伏,3点几伏的时候,所有数据都比万用表测得数据小0.2V左右该怎么处理呢?求平均的话结果也还是会比真实值低0.2V吧?



songchenping 发表于 2015-8-6 16:24 | 显示全部楼层
YPHFree 发表于 2015-8-6 16:12
@songchenping @mmuuss586 @mumu3013  
1)谢谢各位大神指点,漂移的问题基本解决,将ADC改成初始化的时候 ...

试问:
你用的是什么万用表,精度比ADC高还是低啊。如果比ADC高有可比性,否则就没有可比性的。
songchenping 发表于 2015-8-6 16:26 | 显示全部楼层
最好用个6位半的表测一下,
个人怀疑硬件电路是否合适。
mumu3013 发表于 2015-8-7 09:51 | 显示全部楼层
YPHFree 发表于 2015-8-6 16:12
@songchenping @mmuuss586 @mumu3013  
1)谢谢各位大神指点,漂移的问题基本解决,将ADC改成初始化的时候 ...

看看硬件是否可以优化改进,在这ADC需要进行校准,看下手册描述
 楼主| YPHFree 发表于 2015-8-8 17:24 | 显示全部楼层
songchenping 发表于 2015-8-6 16:26
最好用个6位半的表测一下,
个人怀疑硬件电路是否合适。

4位的万用表,原理图就是3.3V经滑动变阻器分压,抽头端接到STM32的PA0,PA1 QQ截图20150808172212.png
 楼主| YPHFree 发表于 2015-8-8 17:25 | 显示全部楼层
mumu3013 发表于 2015-8-7 09:51
看看硬件是否可以优化改进,在这ADC需要进行校准,看下手册描述

这里的校准是不是指初始化配置ADC的时候进行校准?
尤彼卡 发表于 2015-8-8 17:46 | 显示全部楼层
建议楼主在初始化时检查下
songchenping 发表于 2015-8-8 17:47 | 显示全部楼层
YPHFree 发表于 2015-8-8 17:24
4位的万用表,原理图就是3.3V经滑动变阻器分压,抽头端接到STM32的PA0,PA1
...

你拿4位的万用表来测CPU的ADC输入电压,根本就没有可比性啊。用个精度高一些的。
songchenping 发表于 2015-8-8 17:48 | 显示全部楼层
YPHFree 发表于 2015-8-8 17:24
4位的万用表,原理图就是3.3V经滑动变阻器分压,抽头端接到STM32的PA0,PA1
...

电位器的精度如何。还有在输出端加一级跟随会好一些,
songchenping 发表于 2015-8-8 17:48 | 显示全部楼层
YPHFree 发表于 2015-8-8 17:24
4位的万用表,原理图就是3.3V经滑动变阻器分压,抽头端接到STM32的PA0,PA1
...

你可以把电位器的阻值搞大一点。
 楼主| YPHFree 发表于 2015-8-8 17:51 | 显示全部楼层
songchenping 发表于 2015-8-8 17:48
你可以把电位器的阻值搞大一点。

嗯嗯 好的 ,我在尝试一下
 楼主| YPHFree 发表于 2015-8-8 17:56 | 显示全部楼层
尤彼卡 发表于 2015-8-8 17:46
建议楼主在初始化时检查下

好的 ,再检查一下,调好了再跟大家说
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

13

帖子

1

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