7977|9

51

帖子

1

TA的资源

一粒金砂(中级)

楼主
 

AD的困扰--AD采集的数据转换后比模拟量值偏小 [复制链接]

最近用msp430f2013的SD16采集0.08v到0.4v的电压值,但是AD转换后的数据比模拟值要偏小,而且随着信号的增大,偏差越来越大。量程范围内,最大偏差10mv。各位大侠请指点下小弟,感激不尽。

最新回复

也遇到这种情况了,不知道楼主怎么解决的?  详情 回复 发表于 2016-8-3 09:27
 
点赞 关注

回复
举报

51

帖子

1

TA的资源

一粒金砂(中级)

沙发
 
自己顶,以下贴出采样函数及中断函数:
    unsigned int ADC16_Sample(char ADC,unsigned int AverageNum)
{
  //unsigned long int ADC_SumU=0;//无符号模式的累加值
  signed long int ADC_SumS=0;//有符号模式的累加值  
  unsigned int *SD16CCTL;    //ADCx控制寄存器选择指针
  int i;
  SD16CCTL=(unsigned int *)&SD16CCTL0;//指针指向ADC0控制寄存器
  *SD16CCTL |=SD16IE;              //打开选中的ADC的中断
  _EINT();                         //开总中断
  P1OUT &= ~CS;
  ADC16_VrefOn();
  *SD16CCTL |= SD16SC;             //向选中的ADC发出"开始采样"命令  
  for(i=0;i   {
    for(unsigned int j=0;j<10000;j++);
     while(ADC_Flag==0) LPM0;           //等待一次采样结束
     ADC_Flag=0;
     ADC_SumS+=(int)ADC_Result[ADC]; //按有符号模式累加
  }                                    //采样次数达到
  ADC16_VrefOff();  
  P1OUT |= CS;
  *SD16CCTL &=~ SD16SC;                //向选中的ADC发出"停止采样"命令
  *SD16CCTL &=~ SD16IE;                //关闭相应ADC的中断  
  return(ADC_SumS>>4); //有符号数据格式平均值/AverageNum
}
  
#pragma vector=SD16_VECTOR
__interrupt void SD16ISR(void)
{
  switch (SD16IV)                           //判断中断类型
  {
  case 2:                                   // SD16MEM Overflow
    break;
  case 4:                                   // ADC0 采样结束
    ADC_Result[0]=SD16MEM0+187;
    if(SD16MEM0>0X7FFF)
    {
      Num_Flag=1;
    }
    else
    {
      Num_Flag=0;
    }
    break;           // 保存ADC0采样结果
  }
ADC_Flag=1;                                //ADC中断已执行标志                        
__low_power_mode_off_on_exit();            //唤醒CPU
}

哪位帮忙分析下什么原因,谢谢了。
 
 

回复

1908

帖子

7

TA的资源

五彩晶圆(高级)

板凳
 
几个事儿 需要你确定一下
第一 ad采集的精度
第二 基准电压是否稳定
第三 软件上是否用了均值
 
 
 

回复

387

帖子

0

TA的资源

纯净的硅(初级)

4
 
你试试--唤醒后延迟一些时间再进行ADC采集,看看数据是否会准确一些?
 
 
 

回复

51

帖子

1

TA的资源

一粒金砂(中级)

5
 
1、基准电压使用的是内部1.2v电压
   2、采取的是取16次的均值方法
   3、16位的;Vref/65536,放到mv上0.018。

用了一个for循环函数来延时,没什么效果。真心不知道到底是什么导致了数据偏低。测得的AD输入端的电压和转换后的电压不一致,所以还是软件的问题。各位帮帮忙。
 
 
 

回复

450

帖子

43

TA的资源

一粒金砂(高级)

6
 
电源怎么样呢
 
 
 

回复

1412

帖子

15

TA的资源

版主

7
 
信号没放大再采样吗?
 
个人签名https://bbs.eeworld.com.cn/thread-471646-1-1.html
欢迎加入我的团队
 
 

回复

1万

帖子

140

TA的资源

版主

8
 
AD误差跟基准源的精度有关,另外如此之低的信号不能直接送AD,否则不但量程浪费了,精度也容易不足,应该先放大后再送AD。
 
 
 

回复

1972

帖子

0

TA的资源

五彩晶圆(初级)

9
 
内部参考源的精度有比较大的影响,你看一下器件手册,关于内部参考源的精度有多少,能不能满足你的要求,再有就是最好先把小信号放大一下比较好
 
 
 

回复

9

帖子

0

TA的资源

一粒金砂(中级)

10
 
也遇到这种情况了,不知道楼主怎么解决的?
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表