2750|2

168

帖子

3

TA的资源

一粒金砂(中级)

楼主
 

关于MSP430F4的ADC采集问题 [复制链接]

开门见山:遇到两个问题。1.ADC10用DTC的时候发现数据串位了,我开了两路AD,AD0的数据与AD1的数据颠倒了,很疑惑,检查了管脚配置连接没发现问题,可能是程序出了问题。代码是根据TI的例程自己改的。
2.ADC输出的Vref(2.5V)用来做Rt的电源,这样的做法还是第一次见。数字量怎样转成对应的Rt端的电压呢?很懵逼,这样做的话我ADC采集的时候Vref还是2.5V?
3.至于Rt转成温度的话因为以前没用过这东西(10K,3950K,NTC)。各位有什么好方法,网上的资料一般都是给个温度与电阻的表格,揣测一下,不是查表吧?我拟合了一个对数函数,只是增加了对数与浮点运算。不知各位有什么好的方法,或是例程
  1. void ADC_init(void)
  2. {
  3.         ADC10CTL0 &=~ ENC;                                                  // modefy only ENC = 0
  4.         ADC10CTL1 = INCH_1 + CONSEQ_3;            // A1/A0, repeat multi channel
  5.         ADC10CTL0 |= ADC10SHT_2 + ADC10IE ;                  // 16*adc10clk, enable interrupt
  6.         ADC10CTL0 |= REFON +REF2_5V + REFOUT;          // enable vref output        on p6.4
  7.         ADC10CTL0 |= MSC + ADC10ON;                                  // enable adc
  8.         ADC10AE0 = 0x03;                          // P7.4,5 ADC option select
  9.         ADC10DTC1 = CONVER_TIMERS;                // 64 conversions

  10.         enableInterrupt();
  11. }
  12. //******************************

  13. void ADC_filter(void)
  14. {
  15.         volatile uint16_t i;

  16.     ADC10CTL0 &= ~ENC;
  17.     while (ADC10CTL1 & BUSY);               // Wait if ADC10 core is active
  18.     ADC10SA = (unsigned int )adcValue;      // Data buffer start
  19.     ADC10CTL0 |= ENC + ADC10SC;             // Sampling and conversion ready

  20.     __bis_SR_register(CPUOFF + GIE);

  21.         for(i = 0; i < 32; i++)
  22.         {
  23.                 Vadc1 = Vadc1 + adcValue[i*2];
  24.                 Vadc2 = Vadc2 + adcValue[i*2+1];
  25.         }
  26.         Vadc1 = Vadc1 / 16;
  27.         Vadc2 = Vadc2 / 16;

  28. }
复制代码

温度拟合.png (21.53 KB, 下载次数: 0)

温度拟合.png

ADC.png (44.25 KB, 下载次数: 0)

ADC.png

hex数据.png (23.96 KB, 下载次数: 0)

hex数据.png

最新回复

电压值等于 参考电压除 AD位数,乘上测量值 比果 参考电压为5    ADC 为8位  测量值为 X   电压 = 5/256 *X 至于拟合方式看你需求来, 如果区间大,你可以试一下四参数拟合肯定是最好的!  详情 回复 发表于 2016-9-22 22:25
 
点赞 关注(1)

回复
举报

2774

帖子

8

TA的资源

版主

沙发
 
电压值等于 参考电压除 AD位数,乘上测量值
比果 参考电压为5    ADC 为8位  测量值为 X   电压 = 5/256 *X
至于拟合方式看你需求来, 如果区间大,你可以试一下四参数拟合肯定是最好的!

点评

谢谢回复。问题已经解决啦,ADC采样结果是对的,采的数据量比较大,取均值的时候发生溢出,所以数据才不正常。至于拟合的话,直接用对数算效率有点低,但是精度还算可以,相差0.5℃不到  详情 回复 发表于 2016-9-23 11:08
 
 

回复

168

帖子

3

TA的资源

一粒金砂(中级)

板凳
 
strong161 发表于 2016-9-22 22:25
电压值等于 参考电压除 AD位数,乘上测量值
比果 参考电压为5    ADC 为8位  测量值为 X   电压 = 5/256 * ...

谢谢回复。问题已经解决啦,ADC采样结果是对的,采的数据量比较大,取均值的时候发生溢出,所以数据才不正常。至于拟合的话,直接用对数算效率有点低,但是精度还算可以,相差0.5℃不到
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
福禄克有奖直播:高精度测温赋能电子制造 报名中!
直播时间:2025年2月28日(周五)上午10:00
直播主题:高精度测温赋能电子制造
小伙伴们儿快来报名直播吧~好礼等你拿!

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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