打印

STM32 ADC采集电压不准确的问题 急!

[复制链接]
37851|33
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zkk87278565|  楼主 | 2013-6-3 12:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
核心板是STM32F103ZET6,用PA4脚做DAC输出0----3.3V的电压,用PA5脚做ADC采集电压,用的是ADC1的5通道,现在PA4脚接到了电压跟随器的输入脚,PA5脚接到了跟随器的输出脚,电压值用1602显示出来,下面是测得的几组输入输出电压
              DAC(mV)           ADC(mV)
1.                325                                323
2.                        300                                291
3.                        280                                266
4.                        250                                227
5.                        220                                190
6.                        180                                139
7.                        150                                101
8.                        120                                62
9.                        99                                 36
10.                       80                                  12
11.                       77                                  8
12.                       71                                  1
13.                       70                                  0
问题就是现在输入的电压越大,那么ADC采集的就越准确 ,随着输入电压的减小, ADC采集的电压与输入的电压差别越来越大,是为什么呢?ADC通道也换过了,ADC1和ADC2也换过了  还是这样,求大神指教!
沙发
logokfu| | 2013-6-3 13:01 | 只看该作者
可否上电路图看看。

使用特权

评论回复
板凳
jerry_wtl| | 2013-6-3 13:48 | 只看该作者
先用表测下跟随器输出电压对不对?怀疑跟随器电路问题。

使用特权

评论回复
地板
IJK| | 2013-6-3 14:04 | 只看该作者
一般而言,STM32的ADC比它的DAC准。所以,如上面所说,最好用比较准的万用表量一下,ADC的输入脚电压。
另外,要看一下电压跟随器是不是轨到轨(rail-to-rail)输入的,如果不是轨到轨输入的 在电压接近0时会有偏差,跟LZ看到的情况 有类似之处。

使用特权

评论回复
5
zkk87278565|  楼主 | 2013-6-3 14:31 | 只看该作者
**kfu 发表于 2013-6-3 13:01
可否上电路图看看。

其他电路都没有接,只是用了一个LM358运放做的电压跟随器来测试ADC好不好使,结果就发现了上述的问题。

使用特权

评论回复
6
zkk87278565|  楼主 | 2013-6-3 14:34 | 只看该作者
jerry_wtl 发表于 2013-6-3 13:48
先用表测下跟随器输出电压对不对?怀疑跟随器电路问题。

用万用表测试过了,跟随器是好使的,没问题,输入多少输出就是多少,但是ADC转换出来的结果就是不对,差的数值也不是固定的,输如越小,差的越多,应该不是程序的问题。

使用特权

评论回复
7
zkk87278565|  楼主 | 2013-6-3 14:43 | 只看该作者
IJK 发表于 2013-6-3 14:04
一般而言,STM32的ADC比它的DAC准。所以,如上面所说,最好用比较准的万用表量一下,ADC的输入脚电压。
另 ...

用万用表量了,ADC输入脚的电压=跟随器输出脚电压=跟随器输入电压=DAC输出电压,现在意味着ADC输入脚得到的电压是正确的,但是最后经过数据处理显示出来的总不对,也不是程序的问题,因为至少电压越大的时候结果也是蛮接近的,至少不是算法的问题。并且这个差值也不是固定的,很不解。总感觉正确的电压进到STM32以后被什么东西给阻抗着,管脚电压用万用表量正确,可最后结果就是不对。真是急死了,ADC的管脚也换个几个,都是一样的现象。还有一点就是,ADC管脚什么都不接的时候,用万用表量为电源电压3.3V,不应该是0吗(但这时候1602显示的ADC结果就是3.3V)?

使用特权

评论回复
8
IJK| | 2013-6-3 15:04 | 只看该作者
LM358运放记得是最普通的运放了,它不是轨到轨输入的 在电压接近0时会有偏差,在电压接近Vdd时也会有偏差。问题基本上可以认为在LM358运放这。

使用特权

评论回复
9
airwill| | 2013-6-3 17:35 | 只看该作者
很值得关注, 上次我在 "DIY 四通道示波器" 的实验中, 也发现了这个问题.
由于是动态的过程, 精度误差比楼主的大多了.
我怀疑, DAC 后面直接给 ADC 是有问题的. 最好要有一级运放.

使用特权

评论回复
10
mcuatmel| | 2013-6-3 17:48 | 只看该作者
会不会是阻抗匹配的问题。

使用特权

评论回复
11
cjhk| | 2013-6-3 18:42 | 只看该作者
加大采样率  不知道   这个效果会不会好一点   不是很了解   顶一个

使用特权

评论回复
12
yuankuo84| | 2013-6-3 22:35 | 只看该作者
在运放输出端加一个负载电阻和一个小电容,降低采样时钟频率,增大转化时间试一试,ST的东西ADC的输入阻抗不能大了,大了的话必须降低采样率

使用特权

评论回复
13
7760448| | 2013-6-4 07:46 | 只看该作者
我也碰到过这个问题,只是当时时间比较紧,没来的及多思考,就暂且搁下了,希望现在能和楼主一起解决这个问题。

使用特权

评论回复
14
elec921| | 2013-6-4 08:29 | 只看该作者
片内adc就这样喽

加软件修正吧~!

使用特权

评论回复
15
farrtone| | 2013-6-4 08:36 | 只看该作者
1.LM358不是轨到轨
2.Input offset voltage   最大7mv
3.你接的是单电源?双电源?
所以比较怀疑你的输入端和输出端是否真的相等。。。

使用特权

评论回复
16
hjf2001| | 2013-6-4 08:43 | 只看该作者
用信号源测试ADC准确度,DAC用表测试,那样才能说ADC和DAC的是否正确?

使用特权

评论回复
17
kagaobin| | 2013-6-4 09:16 | 只看该作者
把AD的输入直接接到最近的地上,看看转换后的电压是否接近0V。这样就可以先确认是ADC的问题,还是前端电路的问题,再做排查。

使用特权

评论回复
18
zkk87278565|  楼主 | 2013-6-4 09:23 | 只看该作者
farrtone 发表于 2013-6-4 08:36
1.LM358不是轨到轨
2.Input offset voltage   最大7mv
3.你接的是单电源?双电源?

我是接的5V单电源供电,双电源供电有啥区别啊?

使用特权

评论回复
19
grasswolfs| | 2013-6-4 09:26 | 只看该作者
电压测量相等是在所有电压范围都是相等还是只有一部分,跟随器后面开路还是电压表直接测试的?

使用特权

评论回复
20
zkk87278565|  楼主 | 2013-6-4 09:33 | 只看该作者
grasswolfs 发表于 2013-6-4 09:26
电压测量相等是在所有电压范围都是相等还是只有一部分,跟随器后面开路还是电压表直接测试的? ...

所有范围都是相等的,(我的相等是指只有电压值的小数点后面第三位不同),  跟随器后面什么都没有接,直接接的万用表。

使用特权

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

本版积分规则

1

主题

8

帖子

0

粉丝