打印

MSP430采样精度问题请教

[复制链接]
2421|27
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
pluto55|  楼主 | 2013-12-14 12:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 pluto55 于 2013-12-14 12:02 编辑


简单的电阻电路如图所示:PV+供电30V
万用表实测 sample处电压:702mv
AD采样值为:472(10次平均值) 转换成电压值:472*1500/1023 = 692mv

芯片型号为MSP430F2132,想问一下,大家用的精度有这么差吗,或者是我配置有问题,请教。

ADC的配置代码如下:
//电压采样打开,使用管脚P2.0:ADC:A0
void adc_volt_open(void)
{               
        ADC10CTL0 = SREF_1  + REFON + ADC10SHT_3 + ADC10ON; //内部参考、1.5V、开启参考     SAMPLE time 64clock
        ADC10CTL1 = INCH_0 + ADC10SSEL_3 + ADC10DIV_7;                // input A1,选择SMCLK为时钟源,8分频试下
        ADC10AE0 = 0x01;                                                                             // PA.0 ADC option select
}
uint16_t adc_sample(void)
{
        uint16_t adc_value;
    ADC10CTL0 |= ENC + ADC10SC;             // Sampling and conversion start

   while(ADC10CTL1&ADC10BUSY);//等待转换完成后再读取数据
    adc_value = ADC10MEM;
    return adc_value;
}

做过的努力:
1.看到手册内部说sample时间是和具体电路有关系的,故调了时间,从原来的ADC时钟不分频,SAMPLE time 16clock,变成了ADC时钟8分频、SAMPLE time 64clock,发现结果没有改变

2.把内部REF2.5V输出,用万用表实测为2532mv,虽然有偏差,但是不是偏差的主要原因
3.管脚处的纹波如下所示:


有明白的请指教,谢谢@dirtwillfly



tek00035.png (30.63 KB )

tek00035.png

相关帖子

沙发
dirtwillfly| | 2013-12-14 14:29 | 只看该作者
误差还可以啊
(702mv-692mv)/702mv=1.4%
你用的电阻是1%精度的,两个电阻串联,会有累计误差

使用特权

评论回复
板凳
pluto55|  楼主 | 2013-12-14 16:03 | 只看该作者
dirtwillfly 发表于 2013-12-14 14:29
误差还可以啊
(702mv-692mv)/702mv=1.4%
你用的电阻是1%精度的,两个电阻串联,会有累计误差 ...

那个702mv不是用30V分压电阻算出来的,而是用万用表直接测量CPU管脚的电压

万用表量出来的和内部ADC采样差距这么大,这才是我的问题~~~

使用特权

评论回复
地板
dirtwillfly| | 2013-12-14 17:03 | 只看该作者
我觉得用msp430的内部基准,测出来没经过校准,这个数据已经是比较准的了。你看看MSP430F2132的内部基准误差就知道了

使用特权

评论回复
5
dirtwillfly| | 2013-12-14 17:07 | 只看该作者
如果按你测得的内部REF2.5V输出,实测为2532mv,用2532/2500这个比例计算
472*1500*(2532/2500)/1023 = 701mv

使用特权

评论回复
6
i1mcu| | 2013-12-14 23:47 | 只看该作者
你的电路设计都是存在误差的。

使用特权

评论回复
7
i1mcu| | 2013-12-14 23:47 | 只看该作者
包括输入也是有内阻的。

使用特权

评论回复
8
i1mcu| | 2013-12-14 23:48 | 只看该作者
根据这些规律你可以做一个线性拟合试试的。

使用特权

评论回复
9
pluto55|  楼主 | 2013-12-16 08:55 | 只看该作者
dirtwillfly 发表于 2013-12-14 17:07
如果按你测得的内部REF2.5V输出,实测为2532mv,用2532/2500这个比例计算
472*1500*(2532/2500)/1023 = 701 ...

对哦,这样一算的话确实是因为参考源不稳引起的,那这样的话需要使用前先校准一下,有个问题,我这一次用使用的时候2.5V电压输出为2532mv,下次采样的时候是否会变?不考虑温漂的情况

使用特权

评论回复
10
pluto55|  楼主 | 2013-12-16 08:57 | 只看该作者
i1mcu 发表于 2013-12-14 23:48
根据这些规律你可以做一个线性拟合试试的。

那就是说需要一个校准功能?

使用特权

评论回复
11
dirtwillfly| | 2013-12-16 09:00 | 只看该作者
pluto55 发表于 2013-12-16 08:55
对哦,这样一算的话确实是因为参考源不稳引起的,那这样的话需要使用前先校准一下,有个问题,我这一次用 ...

有可能会变的。这个电压据说和电源电压有一定关系,电源电压变化它也变化。
最好校准一下

使用特权

评论回复
12
comeon201208| | 2013-12-16 23:21 | 只看该作者
i1mcu 发表于 2013-12-14 23:47
包括输入也是有内阻的。

楼上说的是啊,需要考虑下你的Ad模块的内阻的

使用特权

评论回复
13
comeon201208| | 2013-12-16 23:21 | 只看该作者
i1mcu 发表于 2013-12-14 23:47
包括输入也是有内阻的。

楼上说的是啊,需要考虑下你的Ad模块的内阻的

使用特权

评论回复
14
comeon201208| | 2013-12-16 23:21 | 只看该作者
i1mcu 发表于 2013-12-14 23:47
包括输入也是有内阻的。

楼上说的是啊,需要考虑下你的Ad模块的内阻的

使用特权

评论回复
15
comeon201208| | 2013-12-16 23:23 | 只看该作者
哎,啥网速的啊,。。用万用表测量的时候Ad内阻是没有影响的,当启动Ad模块进行采集的时候就需要考虑的啊

使用特权

评论回复
16
dirtwillfly| | 2013-12-17 20:22 | 只看该作者
楼主问题解决了吗,要及时结贴啊~~:handshake

使用特权

评论回复
17
i1mcu| | 2013-12-26 20:04 | 只看该作者
pluto55 发表于 2013-12-16 08:57
那就是说需要一个校准功能?

是的,简单。

使用特权

评论回复
18
dirtwillfly| | 2013-12-30 20:03 | 只看该作者
楼主问题解决了吗?问题解决了要及时结贴哦。结贴方法:https://bbs.21ic.com/icview-442857-1-1.html

使用特权

评论回复
19
zxf0168| | 2013-12-30 20:56 | 只看该作者
不考虑AD内阻是不行的

使用特权

评论回复
20
shenpingbing| | 2013-12-30 22:07 | 只看该作者
挺好的资料

使用特权

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

本版积分规则

9

主题

88

帖子

2

粉丝