打印
[STM32F1]

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

[复制链接]
5506|22
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
我用STM32F103ZE :两路ADC(DMA),PA0,PA1接下拉电阻后仍有电压, 约1.7V-2.1V,当输入测量电压低于该电压时,AD值就会波动如下图(输入0.99V),如下图:
有时候是正确的,有时候又不正确,这是怎么回事?


输入0V时(10K下拉电阻接地)AD转换值波动如下图

沙发
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
哥哥,我就是菜鸟才会遇到这问题吧?硬件不懂,软件不懂

好歹也得先把原理图发上来啊。

使用特权

评论回复
5
songchenping| | 2015-8-6 10:43 | 只看该作者
如果原理图没有问题那就看软件的问题了

使用特权

评论回复
6
mmuuss586| | 2015-8-6 12:40 | 只看该作者

接10K电阻下拉,正常读到的值就基本是0;
你跳动这么大,可能程序初始化不对吧

使用特权

评论回复
7
songchenping| | 2015-8-6 12:55 | 只看该作者
还有就是转换时间给够了吗?你试着将DMA采集频率降低试试。

使用特权

评论回复
8
mumu3013| | 2015-8-6 14:18 | 只看该作者
下来的情况下,还是有问题,说明你硬件或者软件有问题,这样你采集的电源肯定不准,会在你真实值和这个问题电压间波动。

问题解决1:查看硬件电路是否正确;
2:看下ADC是否配置正常,参考ST库里的例程,有ADC,DMA采集的例程,尤其是ADC用到的PA0,PA1引脚口的模式是否配置正确,再不行,你贴出来代码和电路图,大家帮你分析

使用特权

评论回复
9
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吧?



使用特权

评论回复
10
songchenping| | 2015-8-6 16:24 | 只看该作者
YPHFree 发表于 2015-8-6 16:12
@songchenping @mmuuss586 @mumu3013  
1)谢谢各位大神指点,漂移的问题基本解决,将ADC改成初始化的时候 ...

试问:
你用的是什么万用表,精度比ADC高还是低啊。如果比ADC高有可比性,否则就没有可比性的。

使用特权

评论回复
11
songchenping| | 2015-8-6 16:26 | 只看该作者
最好用个6位半的表测一下,
个人怀疑硬件电路是否合适。

使用特权

评论回复
12
mumu3013| | 2015-8-7 09:51 | 只看该作者
YPHFree 发表于 2015-8-6 16:12
@songchenping @mmuuss586 @mumu3013  
1)谢谢各位大神指点,漂移的问题基本解决,将ADC改成初始化的时候 ...

看看硬件是否可以优化改进,在这ADC需要进行校准,看下手册描述

使用特权

评论回复
13
YPHFree|  楼主 | 2015-8-8 17:24 | 只看该作者
songchenping 发表于 2015-8-6 16:26
最好用个6位半的表测一下,
个人怀疑硬件电路是否合适。

4位的万用表,原理图就是3.3V经滑动变阻器分压,抽头端接到STM32的PA0,PA1

使用特权

评论回复
14
YPHFree|  楼主 | 2015-8-8 17:25 | 只看该作者
mumu3013 发表于 2015-8-7 09:51
看看硬件是否可以优化改进,在这ADC需要进行校准,看下手册描述

这里的校准是不是指初始化配置ADC的时候进行校准?

使用特权

评论回复
15
尤彼卡| | 2015-8-8 17:46 | 只看该作者
建议楼主在初始化时检查下

使用特权

评论回复
16
songchenping| | 2015-8-8 17:47 | 只看该作者
YPHFree 发表于 2015-8-8 17:24
4位的万用表,原理图就是3.3V经滑动变阻器分压,抽头端接到STM32的PA0,PA1
...

你拿4位的万用表来测CPU的ADC输入电压,根本就没有可比性啊。用个精度高一些的。

使用特权

评论回复
17
songchenping| | 2015-8-8 17:48 | 只看该作者
YPHFree 发表于 2015-8-8 17:24
4位的万用表,原理图就是3.3V经滑动变阻器分压,抽头端接到STM32的PA0,PA1
...

电位器的精度如何。还有在输出端加一级跟随会好一些,

使用特权

评论回复
18
songchenping| | 2015-8-8 17:48 | 只看该作者
YPHFree 发表于 2015-8-8 17:24
4位的万用表,原理图就是3.3V经滑动变阻器分压,抽头端接到STM32的PA0,PA1
...

你可以把电位器的阻值搞大一点。

使用特权

评论回复
19
YPHFree|  楼主 | 2015-8-8 17:51 | 只看该作者
songchenping 发表于 2015-8-8 17:48
你可以把电位器的阻值搞大一点。

嗯嗯 好的 ,我在尝试一下

使用特权

评论回复
20
YPHFree|  楼主 | 2015-8-8 17:56 | 只看该作者
尤彼卡 发表于 2015-8-8 17:46
建议楼主在初始化时检查下

好的 ,再检查一下,调好了再跟大家说

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

13

帖子

1

粉丝