打印

PIC16F887单片机AD采样完成后必须要关闭AD吗?

[复制链接]
7171|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yangzichen_pic|  楼主 | 2012-8-25 16:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
PIC16F887单片机AD采样完成后必须要关闭AD吗?最近在修一段程序,其中涉及到AD采样的部分,AD采样得到的数据有10mv以上的跳动,采样程序就是按照数据手册写的,在查找资料的时候有的说要在采样结束后关闭AD,将ADCON0=0;下次启动AD的时候再打开。
我查了数据手册 并没有这个要求,所以产生了一些疑惑:如果频繁的开关AD会不会对AD的稳定性产生影响呢?
在这里贴个问题希望哪位帮忙解释下有没有关闭AD的必要。
沙发
Ryanhsiung| | 2012-8-25 16:35 | 只看该作者
没有必要关闭!

使用特权

评论回复
板凳
yewuyi| | 2012-8-27 09:47 | 只看该作者
1、如果不切换通道,且对功耗没有严格要求,建议不关闭。
2、如果关闭后再次打开AD,则一般建议延时一段时间再操作AD,例如20ms

使用特权

评论回复
地板
yangzichen_pic|  楼主 | 2012-8-27 10:36 | 只看该作者
3# yewuyi [我的程序里面需要频繁的切换通道  ,那是不是需要每次都要关闭呢?

使用特权

评论回复
5
yewuyi| | 2012-8-27 13:45 | 只看该作者
3# yewuyi [我的程序里面需要频繁的切换通道  ,那是不是需要每次都要关闭呢?
yangzichen_pic 发表于 2012-8-27 10:36


不需要关闭,只需要在切换后延时一段时间,如果信号输入阻抗在AD容许的范围内,一般延时1ms以上即可。

对于有一些MCU来说,例如ATMEL,则切换通道后,第一次转换值需要舍弃,对于PIC来说,则无此要求,只要给一点延时时间即可。

使用特权

评论回复
6
yangzichen_pic|  楼主 | 2012-8-27 14:40 | 只看该作者
不需要关闭,只需要在切换后延时一段时间,如果信号输入阻抗在AD容许的范围内,一般延时1ms以上即可。

对于有一些MCU来说,例如ATMEL,则切换通道后,第一次转换值需要舍弃,对于PIC来说,则无此要求,只要给一点 ...
yewuyi 发表于 2012-8-27 13:45
我的理解是每次重新采集都需要做延迟处理,每次切换通道也要做延迟处理,对吗?

使用特权

评论回复
7
XIEYUANBIN| | 2012-8-28 17:05 | 只看该作者
我的理解是每次重新采集都需要做延迟处理,每次切换通道也要做延迟处理,对吗?
yangzichen_pic 发表于 2012-8-27 14:40

是的。一般视输入阻抗大小,必须有一个采样时间让采样电容充饱电,一般从几十微秒到几个毫秒不等,具体看数据手册计算方法。
如果你采样时间要短的话,每个AD引脚的输入阻抗应低于2K,否则会受上一通道采样的影响。

使用特权

评论回复
8
yewuyi| | 2012-8-29 13:43 | 只看该作者
我的理解是每次重新采集都需要做延迟处理,每次切换通道也要做延迟处理,对吗?
yangzichen_pic 发表于 2012-8-27 14:40


你认真看看AD的电路结构就应该明白了。

类似PIC这种AD,基本上都有一个电容在电路中,而这个电容是需要AD脚上的信号源向它充电的,当电容充电充满了,AD转换的结果才会正确,把AD脚上接入的信号源等效一下,按照RC计算公式,则外部输入阻抗越大,则C充电充满的时间越长,所以当外部信号源阻抗较大时,则需要适当加长充电时间,当从一个AD通道切换到另一个时,则电容也需要一个充电时间才能充满电,当固定一个通道并进行连续多次AD转换时,则可以视为电容第一次充满后始终保持着充满状态,此时可以不需要这个延迟时间(事实上也还是需要的,但时间特别短,可以近似不需要)。

使用特权

评论回复
9
yangzichen_pic|  楼主 | 2012-8-30 17:45 | 只看该作者
9# yewuyi 看了你的回答我又想到了一个问题,AD在进行下一次采样之前会不会把管脚电容的电放掉呢?那么这样是不是还要一个电容的放电时间呢?刚察看了数据手册上也是只在计算电容的充电时间,没有计算的电容的放电时间。
如果电容一直保持充满电的状态,会不会对下一次的采集造成影响呢 ?

使用特权

评论回复
10
yewuyi| | 2012-8-31 14:59 | 只看该作者
9# yewuyi 看了你的回答我又想到了一个问题,AD在进行下一次采样之前会不会把管脚电容的电放掉呢?那么这样是不是还要一个电容的放电时间呢?刚察看了数据手册上也是只在计算电容的充电时间,没有计算的电容的放电 ...
yangzichen_pic 发表于 2012-8-30 17:45


是采样保持电容,不是什么管脚电容,这个电容在芯片内部。

你那些担心是多余的,具体你可以去研究一下AD内部的电路,别人三句两句不可能把所有的细节都给你讲清楚,这个要靠你自己了。

使用特权

评论回复
11
yewuyi| | 2012-8-31 15:01 | 只看该作者
在芯片内部并不一定意味着在内部集成了一个电容工艺,这个电容可能是个寄生电容,容值很小,具体俺不研究半导体,所以也就没去细究。

使用特权

评论回复
12
416775364TP| | 2015-10-25 21:02 | 只看该作者
yewuyi 发表于 2012-8-27 13:45
不需要关闭,只需要在切换后延时一段时间,如果信号输入阻抗在AD容许的范围内,一般延时1ms以上即可。

...

如果AD切换通道要延时1MS以上,那么采样市电整流分压后的脉动直流那不是有问题,算市电RMS值,一个周期就按32个点算,也不满足要求啊.

使用特权

评论回复
13
opal11| | 2015-10-26 10:14 | 只看该作者
我用AD从不关,进入休眠才关的。

使用特权

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

本版积分规则

1

主题

7

帖子

0

粉丝