打印

转换还是不准

[复制链接]
2263|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
shimx|  楼主 | 2011-7-6 16:58 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
沙发
heweibig| | 2011-7-6 17:02 | 只看该作者
有多不准啊

使用特权

评论回复
板凳
shimx|  楼主 | 2011-7-6 17:16 | 只看该作者
随着输入电压增大,感觉误差越大

使用特权

评论回复
地板
dengdc| | 2011-7-6 17:22 | 只看该作者
代码呢

使用特权

评论回复
5
shimx|  楼主 | 2011-7-6 17:23 | 只看该作者
oid int_clk()
    {
        BCSCTL1 &= ~XTS;                //打开LFXT1并处于低频模式
        BCSCTL1 = RSEL0 + RSEL1 + RSEL2;//标称频率 RSELx = 7
        DCOCTL = DCO0 + DCO1;           //内部DCOx = 3 频率在(2.2 V/3 V) 0.80-1.50MHz之间
        DCOCTL = MOD0 + MOD1;           //调整频率
                                                         //(默认)MCLK时钟源为DCOCLK,SMCLK时钟源为DCOCLK
        do
            {
            IFG1 &= ~OFIFG;             //清除振荡错误标志
            for(i = 0; i < 100; i++)
              _NOP();   //延时等待
            }
        while ((IFG1 & OFIFG) != 0); //如果标志为1继续循环等待
        IFG1 &= ~OFIFG;
    }
//==============================================================================
//
void int_adc()
    {
        P1SEL |= 0X03;                            // 选择P1.0&P1.1第二功能
        SD16AE |= SD16AE1 + SD16AE0;              // SD16 External Input Enable P1.0&P1.1
        SD16CTL = SD16REFON+SD16SSEL_1;           // 1.2V ref, SMCLK
      //  SD16CTL &= ~SD16VMIDON + ~SD16LP;         // SD16 Switch Vmid Buffer off and not Low Power Mode Enable
        SD16CCTL0 |= SD16SNGL +  SD16IE + SD16UNI + SD16OSR_256;  // Single conv, enable interrupt,Unipolar(1) Mode,Channel x OverSampling Ratio 256
        SD16INCTL0 |= SD16INTDLY_0 + SD16INCH_0 + SD16GAIN_1;  // SD16 Interrupt after 4.Conversion,SD16 Input Channel select A0 ,Input Pre-Amplifier Gain Select *1
        for (i = 0; i < 0x3600; i++);             // Delay for 1.2V ref startup   
    }

使用特权

评论回复
6
shimx|  楼主 | 2011-7-6 17:26 | 只看该作者
请问有谁知道SD16 数字量与模拟量之间转换的数学表达式吗?

使用特权

评论回复
7
永远的不知| | 2011-8-4 15:46 | 只看该作者
1# shimx

这个精度和参考电压的精度关系很大的,内部的参考电压精度不是很高。

使用特权

评论回复
8
永远的不知| | 2011-8-4 15:46 | 只看该作者
7# 永远的不知

如果需要高精度,需要外置高精度的参考源。

使用特权

评论回复
9
t.jm| | 2011-8-4 17:18 | 只看该作者
我的使用表明2013的AD参考1.20V是蛮准的,规格书里给的参数也还不错,
VREF Internal reference voltage : 1.14 1.20 1.26 V。
你这里的问题可能出在:
SD16INCTL0 |= SD16INTDLY_0 + SD16INCH_0 + SD16GAIN_1;  // SD16 Interrupt after 4.Conversion,SD16 Input Channel select A0 ,Input Pre-Amplifier Gain Select *1

因为不知道你在前面有没有对SD16INCTL0 付值,如果有|=不会有清0的,而SD16INCTL0 对转换结果有一点影响。

使用特权

评论回复
10
永远的不知| | 2011-8-4 17:51 | 只看该作者
9# t.jm

这个精度主要看,您是要绝对值,还是相对值;内部参考源的这个范围,主要是针对不同芯片之间的电压误差;就每一片而且,还是电压值相当固定的。

使用特权

评论回复
11
shimx|  楼主 | 2011-8-4 18:07 | 只看该作者
真是详细,谢谢

使用特权

评论回复
12
msp430ing| | 2011-8-4 21:56 | 只看该作者
和内部基准源的精度有关系

使用特权

评论回复
13
sqcumt123| | 2011-8-11 10:13 | 只看该作者
蛮好的,顶一个

使用特权

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

本版积分规则

857

主题

10661

帖子

5

粉丝