打印

AD转换后码值不随输入正比例变化

[复制链接]
3150|22
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
请问电压信号经过AD转换后不随输入正比例变化有哪些因素?
是AD转换的程序有误吗?

比如AD输入信号每加0.05V,AD转换的码值变化为[40 /70/ 50/ 20/ 40……]

大家有遇到这种情况吗?

相关帖子

沙发
arm菜鸟人|  楼主 | 2013-5-31 17:37 | 只看该作者
有一个思路:
查找C8051F的AD转换方式,AD的码值是怎么来的,查找影响码值的因素。很可能是VREF的问题。
希望是吧。

使用特权

评论回复
板凳
impenger| | 2013-5-31 23:46 | 只看该作者
可以看看AD芯片的频率是否设置正确。

使用特权

评论回复
评分
参与人数 1威望 +3 收起 理由
arm菜鸟人 + 3
地板
arm菜鸟人|  楼主 | 2013-6-1 20:32 | 只看该作者
impenger 发表于 2013-5-31 23:46
可以看看AD芯片的频率是否设置正确。

Demo里用的是3M。
我到时改一改试一试。谢谢你的指点。

使用特权

评论回复
5
logokfu| | 2013-6-1 20:45 | 只看该作者
是干扰问题么

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
arm菜鸟人 + 1
6
arm菜鸟人|  楼主 | 2013-6-1 21:06 | 只看该作者
**kfu 发表于 2013-6-1 20:45
是干扰问题么

应该不是干扰问题。没什么干扰。正常情况。

使用特权

评论回复
7
lcdi| | 2013-6-2 19:00 | 只看该作者
嗯,即使没干扰,信号也会叠加一点噪声的,所以越是没规律的越像噪声。一般采用多点平均来改善噪声情况,比如4点平均,根据信号带宽来决定。

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
arm菜鸟人 + 1
8
arm菜鸟人|  楼主 | 2013-6-3 09:00 | 只看该作者
lcdi 发表于 2013-6-2 19:00
嗯,即使没干扰,信号也会叠加一点噪声的,所以越是没规律的越像噪声。一般采用多点平均来改善噪声情况,比 ...

使用了16点平均。

使用特权

评论回复
9
arm菜鸟人|  楼主 | 2013-6-3 09:01 | 只看该作者
忘了说一个重要的现象:
在一个特定的输入下,码值保持稳定。跳动1、2个码值的都极少。

使用特权

评论回复
10
lcdi| | 2013-6-3 09:54 | 只看该作者
有没有办法测试你的信号是否稳定?万用表不合适,因为万用表是积分型ADC,周期很长,微小且较快的噪声测不出来。

使用特权

评论回复
11
huazhongwang| | 2013-6-3 10:34 | 只看该作者
极有可能是读函数写错了,数据读的顺序反了,AD输出的数据是高(低)位先出来,但是你的读函数却是低(高)位在前高位在后,这样就会出现乱码,电压乱跳,楼上说的干扰可能会出现,如果输出乱跳,干扰肯定不会有这么大的影响

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
arm菜鸟人 + 1
12
huazhongwang| | 2013-6-3 10:37 | 只看该作者
看完你的叙述,坚信是读函数的问题

使用特权

评论回复
13
arm菜鸟人|  楼主 | 2013-6-3 11:37 | 只看该作者
huazhongwang 发表于 2013-6-3 10:34
极有可能是读函数写错了,数据读的顺序反了,AD输出的数据是高(低)位先出来,但是你的读函数却是低(高) ...

AD数据右对齐。C8051F550。

01.jpg (74.39 KB )

01.jpg

使用特权

评论回复
14
arm菜鸟人|  楼主 | 2013-6-3 11:47 | 只看该作者
impenger 发表于 2013-5-31 23:46
可以看看AD芯片的频率是否设置正确。

datasheet里说 ADC最高的转换速率是200ksps,这是否是说其转换频率最高只能200KHz?
为什么Demo里ADC时钟用的是3MHz?
之前F040里ADC时钟使用2.5MHz的是正常的,而且F040的最高采样频率为100ksps。

不过我做了一下试验,发现我将ADC时钟降低时,线性度确实在变好。

300.jpg (50.97 KB )

100K-300K

100K-300K

50.jpg (40.11 KB )

50KHz

50KHz

3.jpg (50.11 KB )

3MHz

3MHz

使用特权

评论回复
15
arm菜鸟人|  楼主 | 2013-6-3 11:49 | 只看该作者
还要等到实际标定时,才能出结论。

使用特权

评论回复
16
impenger| | 2013-6-3 16:19 | 只看该作者
arm菜鸟人 发表于 2013-6-3 11:47
datasheet里说 ADC最高的转换速率是200ksps,这是否是说其转换频率最高只能200KHz?
为什么Demo里ADC时钟 ...

最高转换速率数值不代表最高时钟吧,这个我就不太清楚了,不好意思。

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
arm菜鸟人 + 1
17
lcdi| | 2013-6-3 16:28 | 只看该作者
这是ADC的驱动时钟,n多时钟周期才完成一次转换的。
你降低了时钟也就是降低了采样率,那么你这个单片机能不能设置不同的采样保持时间?

另外我一直怀疑你信号的纯净度,如果信号有几十毫伏的噪声就足以造成这样的结果了。
请详述你的信号?

使用特权

评论回复
评分
参与人数 1威望 +2 收起 理由
arm菜鸟人 + 2
18
arm菜鸟人|  楼主 | 2013-6-4 08:55 | 只看该作者
lcdi 发表于 2013-6-3 16:28
这是ADC的驱动时钟,n多时钟周期才完成一次转换的。
你降低了时钟也就是降低了采样率,那么你这个单片机能 ...

采样保持时间在寄存器里也是能够设置的。
信号当时用示波器看过。噪声也是有的,但是还好。
输入信号频率较低,0-20mv。经过了仪放,再输入给AD的。
C8051F的为逐次逼近型ADC。

使用特权

评论回复
19
lcdi| | 2013-6-4 09:55 | 只看该作者
arm菜鸟人 发表于 2013-6-4 08:55
采样保持时间在寄存器里也是能够设置的。
信号当时用示波器看过。噪声也是有的,但是还好。
输入信号频率 ...

这样的话,采样时间设置长一些。
信号最后入AD之前加一级简单的RC滤波,时间常数根据你的信号频率来计算。

看看会不会有好转?

因为你的AD分辨率比较高,所以示波器能看出来的噪声肯定能测出啦。
仪放之前的信号很弱,这里的一点噪声后面将会是你的放大倍数乘积,要处理好引线要短要屏蔽,信号的激励电源要纯净。信号入仪放前有没有滤波?

使用特权

评论回复
评分
参与人数 1威望 +4 收起 理由
arm菜鸟人 + 4
20
arm菜鸟人|  楼主 | 2013-6-4 10:22 | 只看该作者
lcdi 发表于 2013-6-4 09:55
这样的话,采样时间设置长一些。
信号最后入AD之前加一级简单的RC滤波,时间常数根据你的信号频率来计算 ...

前端是接有 RC滤波的。信号的激励电源用了一个稳压芯片,不过实际上还是不纯的。
我一直比较困惑的是,之前用F040时 AD时钟到了2.5MHz,性能很好,F550的Demo里AD的时钟一般都是3MHz。而现在使用的50KHz,还没原来F040的效果好。

使用特权

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

本版积分规则

个人签名:感染属性。

34

主题

539

帖子

1

粉丝