打印
[STC单片机]

请教STC15L2K16S2 的AD的线性问题。

[复制链接]
2503|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jqfsjt|  楼主 | 2014-3-26 13:26 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
我现在用10位方式的采集数据,单片机电源是3.3伏,给IO是3.0伏,数据应该是1024*3/3.3=391,但是实际数据是398,中间差了7,。短路输入,零点不是0,输出是2。
和STC的技术请教,说是我的电源的纹波原因,用示波器测试,纹波20毫伏,是否是这个的原因?
我用电位器提供电压,输出的数据也是和实际测量的对不起来。差在8个以内。
感觉和12C5A系列的片子差距很大。
大家有用过的吗?请教下原因。

相关帖子

沙发
jqfsjt|  楼主 | 2014-3-26 13:27 | 只看该作者
数据输出还是很稳定的,单次采集和8次采集平均都是一样的。

使用特权

评论回复
板凳
ayb_ice| | 2014-3-26 13:29 | 只看该作者
没有绝对的那么准的

使用特权

评论回复
地板
ayb_ice| | 2014-3-26 13:30 | 只看该作者
"数据应该是1024*3/3.3=391,"

?????

使用特权

评论回复
5
jqfsjt|  楼主 | 2014-3-26 13:40 | 只看该作者
ayb_ice 发表于 2014-3-26 13:30
"数据应该是1024*3/3.3=391,"

?????

计算值

使用特权

评论回复
6
jqfsjt|  楼主 | 2014-3-26 13:40 | 只看该作者
ayb_ice 发表于 2014-3-26 13:29
没有绝对的那么准的

但是感觉有点大

使用特权

评论回复
7
jqfsjt|  楼主 | 2014-3-26 13:43 | 只看该作者
//----------------------------
//读取ADC结果
unsigned int GetADCResult(unsigned char ch)
{
        unsigned char x;
        unsigned int Result;
        unsigned int ADResult;                                  
        unsigned long
          P1ASF = P1ASF|ch  ;                     //设置P1口为AD口
    ADC_RES = 0;                            //清除结果寄存器
        ADC_RESL=0;                 
        ADResult=0;
    ADC_CONTR = ADC_POWER | ADC_SPEEDHH;    //ADC上电并延时
        delayms(1);                  
    ADC_CONTR = ADC_POWER | ADC_SPEEDLL | ch | ADC_START;
    _nop_();                        //等待4个NOP
    _nop_();
    _nop_();
    _nop_();
        for(x=0;x<8;x++)
        {
            while (!(ADC_CONTR & ADC_FLAG));//等待ADC转换完成
                   Result =(ADC_RES<<2)|ADC_RESL;
                   ADResult +=Result;
        }                               
        Result=ADResult >> 3;       
        ADC_CONTR &= ~ADC_FLAG;         //Close ADC
    return Result;                 //返回ADC结果
}

使用特权

评论回复
8
晓妖不成精a| | 2014-3-26 13:50 | 只看该作者
http://www.stcisp.com/stc_repl8051.html,15系列替代传统8051的注意事项

使用特权

评论回复
9
jqfsjt|  楼主 | 2014-3-26 14:42 | 只看该作者
晓妖不成精a 发表于 2014-3-26 13:50
http://www.stcisp.com/stc_repl8051.html,15系列替代传统8051的注意事项

谢谢,这个是ADC精度的问题

使用特权

评论回复
10
ayb_ice| | 2014-3-26 16:58 | 只看该作者
jqfsjt 发表于 2014-3-26 13:40
计算值

值对吗

使用特权

评论回复
11
jqfsjt|  楼主 | 2014-3-26 19:17 | 只看该作者
ayb_ice 发表于 2014-3-26 16:58
值对吗

930.909

使用特权

评论回复
12
ayb_ice| | 2014-3-27 08:02 | 只看该作者
输入是否准确,参考是否精确3.3V?

使用特权

评论回复
13
jqfsjt|  楼主 | 2014-3-27 11:38 | 只看该作者

请看下,这是测试结果和原理图。

使用特权

评论回复
14
jqfsjt|  楼主 | 2014-3-27 11:39 | 只看该作者
3.3伏是由HT7533的。

使用特权

评论回复
15
qq986433936| | 2014-3-28 19:14 | 只看该作者
本帖最后由 qq986433936 于 2014-3-28 19:15 编辑

1024*3/3.3=930.9; 1024*0.02/3.3=6.20; 1024*0.01/3.3=3.10; 1024*0.005/3.3=1.55;
3.3/1024=0.0032。

使用特权

评论回复
16
autopccopy| | 2014-3-31 20:36 | 只看该作者
该系列使用VCC做基准,所以准确的电源很重要,或者使用软件调整。
新的STC15F系列有第九通道的内部基准,参考程序见:https://bbs.21ic.com/icview-184660-22-1.html 429楼。 :)

使用特权

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

本版积分规则

2

主题

12

帖子

1

粉丝