OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 10771|回复: 10

两路ADC(DMA),精确度问题以及PA0,PA1接下拉电阻后仍有1.7V电压

[复制链接]

6

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2015-7-30
在线时间
45 小时
发表于 2015-8-5 15:03:38 | 显示全部楼层 |阅读模式
5金钱
请教一下各路大神小牛
我用STM32F103ZE :两路ADC(DMA)时,AD转换精读问题,当输入较低电压时,AD转换得到电压与万用表测量电压差0.02V左右;输入3.325V时,AD转换电压与测量值相差0.1V
 这是什么问题? 另外,PA0,PA1接下拉电阻后仍有电压, 约1.7V-2.1V,

当输入电压低于该电压时,AD值就会波动如下图(输入0.99V)



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

最佳答案

查看完整内容[请看2#楼]

1、差 0.2v 有多种可能,比如CPU供电波动,万用表内阻太小,等。但基本算正常。要想更精确,很多细节要下功夫了,一言难尽。 2、3.325V,已经与CPU电源相等,达到甚至超过 AD 输入上限了,误差大是自然的事。 3、PA0、PA1 如果配置为模拟输入,是属于高阻的情况,测量仪器的内阻很重要。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

58

主题

6291

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11406
金钱
11406
注册时间
2014-4-1
在线时间
1282 小时
发表于 2015-8-5 15:03:39 | 显示全部楼层
1、差 0.2v 有多种可能,比如CPU供电波动,万用表内阻太小,等。但基本算正常。要想更精确,很多细节要下功夫了,一言难尽。

2、3.325V,已经与CPU电源相等,达到甚至超过 AD 输入上限了,误差大是自然的事。

3、PA0、PA1 如果配置为模拟输入,是属于高阻的情况,测量仪器的内阻很重要。
回复

使用道具 举报

58

主题

6291

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11406
金钱
11406
注册时间
2014-4-1
在线时间
1282 小时
发表于 2015-8-5 15:03:39 | 显示全部楼层
回复【3楼】yphfree:
---------------------------------

1、关键是电源的纹波,要小。

2、因为它的 AD 的输入范围的上限是 CPU 的供电值,这个参数在手册上可以找到。

3、高阻态,它们与其他电路的连接都断开了,只相当于运放的输入端,所以是高阻态。
    估计你是用内部下拉电阻,而这个阻值应当比较大(数十K以上);万用表也是有内阻的,1点几伏是输入端内阻、下拉电阻、万用表电阻共同作用的结果。
    如果换用内阻极高的高级电压表,又会测到另一个数值。

    不过,没有接外部信号源的时候,测输入端电压是没有意义的事。
回复

使用道具 举报

6

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2015-7-30
在线时间
45 小时
 楼主| 发表于 2015-8-5 16:42:38 | 显示全部楼层
回复【2楼】xuande:
---------------------------------
哦,先谢谢哈!
1)CPU供电稳定,误差0.001左右,可能是万用表的问题,晚点用示波器什么的再试试

2)3)就是说STM32 AD转换的最大输入电压要低于CPU供电电压?PA0 A1模拟输入时高阻状态这里不是很理解,为什么下拉电阻接地,还是维持1点多伏?

谢谢指点,我是菜鸟来的,谢谢!
回复

使用道具 举报

6

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2015-7-30
在线时间
45 小时
 楼主| 发表于 2015-8-6 09:33:09 | 显示全部楼层
回复【4楼】xuande:
---------------------------------
现在我想问一下,如何测量低于一点几伏的电压?因为PA0 A1上有电压,就会出现漂移,
如上图测0.99V,会出现1.48V的情况;PA0直接接地,0V,都会出现1.几V,这该怎么解决啊?谢谢!
回复

使用道具 举报

14

主题

1592

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
2622
金钱
2622
注册时间
2014-7-17
在线时间
350 小时
发表于 2015-8-6 10:27:36 | 显示全部楼层
这跟AD的采集精度有关的,最好采集次数多点就平均就准好多了!!!!
回复

使用道具 举报

6

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2015-7-30
在线时间
45 小时
 楼主| 发表于 2015-8-6 10:30:13 | 显示全部楼层
回复【6楼】FantaSy_:
---------------------------------
谢谢!输入是0V的时候,出现1.几V是错误的,多次采集求平均,结果也是会大于0V吧?还是不准确吧?
回复

使用道具 举报

58

主题

6291

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11406
金钱
11406
注册时间
2014-4-1
在线时间
1282 小时
发表于 2015-8-6 11:52:08 | 显示全部楼层
回复【5楼】yphfree:
---------------------------------

信号源和电路的输入端,前者是主动,后者是被动;后者不应该也不能改变前者,如果变了,一定是有问题,不是滤波什么能解决的。

找出问题吧。
回复

使用道具 举报

14

主题

1592

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
2622
金钱
2622
注册时间
2014-7-17
在线时间
350 小时
发表于 2015-8-6 15:46:42 | 显示全部楼层
是不是你换算的问题。。。
回复

使用道具 举报

6

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2015-7-30
在线时间
45 小时
 楼主| 发表于 2015-8-8 17:29:16 | 显示全部楼层
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吧?
回复

使用道具 举报

17

主题

61

帖子

0

精华

初级会员

Rank: 2

积分
172
金钱
172
注册时间
2014-6-4
在线时间
19 小时
发表于 2023-4-16 23:53:08 | 显示全部楼层
我也遇到你这样的情况  我是pa0和PA4  外接5.1K电阻到地  万用表测有1.几伏电压
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-24 10:29

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表