打印
[PIC®/AVR®/dsPIC®产品]

PIC16F688ADC采样问题

[复制链接]
1838|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 hello丶酷狗 于 2019-3-2 09:56 编辑

初始化里设置采样通道
使能中断,内部参考电压,频率选择FRC

时钟频率选择

获取ad值

各位前辈、同僚帮忙分析一下其中原因
问题:VDD供电电压5v正常,示波器测过无明显交流成分,参考电压为内部VDD。ADCON1寄存器的A/D 转换时钟选择位ADCS,只有使用FRC能采样到值,而且偏差较大。5V输入、系统时钟为8Mhz时,采样值300多。系统时钟为4Mhz时采样值700多。为2Mhz时采样值基本正常
当使用系统时钟分频来提供AD转换时钟时,采样值全为0;




5.PNG (136.71 KB )

5.PNG
沙发
二九结狐六体| | 2019-2-28 12:31 | 只看该作者
不错的啊!!!!!

使用特权

评论回复
板凳
hello丶酷狗|  楼主 | 2019-2-28 13:00 | 只看该作者

8M主频,adc时钟分频之后采样为0;

使用特权

评论回复
地板
oxygenzz| | 2019-2-28 14:14 | 只看该作者
楼主,ADC相关的代码能贴上来吗?

使用特权

评论回复
5
oxygenzz| | 2019-2-28 14:37 | 只看该作者
楼主可以试一下,代码里增加一些延迟:在设置完ADC通道后,加一些延迟,再开始ADC转换

使用特权

评论回复
6
zazszxzx| | 2019-2-28 18:50 | 只看该作者
可能是保持时间不够导致的问题。

使用特权

评论回复
7
CoolSilicon| | 2019-3-1 09:00 | 只看该作者
楼主datasheet已经看到这里, 那么就再加油一下, 再仔细往下面看一下, 会有一章 叫"A/D采集时间要求", 明确要求了A/D采集所需要的时间..加油, 你行的!

使用特权

评论回复
8
hello丶酷狗|  楼主 | 2019-3-2 09:58 | 只看该作者
oxygenzz 发表于 2019-2-28 14:14
楼主,ADC相关的代码能贴上来吗?

贴上了

使用特权

评论回复
9
hello丶酷狗|  楼主 | 2019-3-2 10:01 | 只看该作者
oxygenzz 发表于 2019-2-28 14:37
楼主可以试一下,代码里增加一些延迟:在设置完ADC通道后,加一些延迟,再开始ADC转换 ...

嗯,我试试

使用特权

评论回复
10
hello丶酷狗|  楼主 | 2019-3-2 12:34 | 只看该作者
oxygenzz 发表于 2019-2-28 14:37
楼主可以试一下,代码里增加一些延迟:在设置完ADC通道后,加一些延迟,再开始ADC转换 ...

我是从中断里取的值呀,加延时没用吧,转换完成标志位置1之后我才取的

使用特权

评论回复
11
oxygenzz| | 2019-3-3 16:15 | 只看该作者
hello丶酷狗 发表于 2019-3-2 12:34
我是从中断里取的值呀,加延时没用吧,转换完成标志位置1之后我才取的

ADC 的采样时间包括两部分,即采集时间加上转换时间。
采集时间的目的是为了使ADC的采样电容充电至模拟信号相同的电位。
这个时间如果太短,会造成ADC转换结果偏低。
所以才建议,在ADC通道设置之后,加一些延迟,给与充分的采集时间,之后再开启转换。

使用特权

评论回复
12
CoolSilicon| | 2019-3-4 10:51 | 只看该作者
hello丶酷狗 发表于 2019-3-2 12:34
我是从中断里取的值呀,加延时没用吧,转换完成标志位置1之后我才取的

中断读取只是ADC转换完成之后读结果的方式, 它对ADC没啥大影响..
你的问题是前面ADC采样时, 延迟不够, 导致的采样不准...
datasheet的"A/D采集时间要求" 章节看一下嘛.....

使用特权

评论回复
13
天灵灵地灵灵| | 2019-3-4 20:31 | 只看该作者
有没有判断采样完成的标志位

使用特权

评论回复
14
internally| | 2019-3-5 17:46 | 只看该作者
应该是采样保持时间不够。

使用特权

评论回复
15
hello丶酷狗|  楼主 | 2019-3-6 12:36 | 只看该作者
oxygenzz 发表于 2019-3-3 16:15
ADC 的采样时间包括两部分,即采集时间加上转换时间。
采集时间的目的是为了使ADC的采样电容充电至模拟信 ...

确实时是这个原因,多谢了

使用特权

评论回复
16
hello丶酷狗|  楼主 | 2019-3-6 12:36 | 只看该作者
CoolSilicon 发表于 2019-3-4 10:51
中断读取只是ADC转换完成之后读结果的方式, 它对ADC没啥大影响..
你的问题是前面ADC采样时, 延迟不够, 导 ...

嗯谢谢!的确是采样时间不足

使用特权

评论回复
17
zhuotuzi| | 2019-3-6 13:37 | 只看该作者
采样那个有没有采样完成的标志位可以利用?

使用特权

评论回复
18
hello丶酷狗|  楼主 | 2019-3-6 15:57 | 只看该作者
zhuotuzi 发表于 2019-3-6 13:37
采样那个有没有采样完成的标志位可以利用?

转化完成才有标志位

使用特权

评论回复
19
oxygenzz| | 2019-3-6 17:43 | 只看该作者
hello丶酷狗 发表于 2019-3-6 12:36
确实时是这个原因,多谢了

不客气~  
有问题,就发到论坛里,大家都给出出主意,互相帮助嘛

使用特权

评论回复
20
equivalent| | 2019-3-8 15:54 | 只看该作者
AD采样的关键因素就是采样保持时间和转换速率

使用特权

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

本版积分规则

13

主题

82

帖子

0

粉丝