4281|9

10

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

msp430内部温度传感器的问题 [复制链接]

最近遇到个问题,我用msp430内部温度传感器测温,用仿真器调试,如果不接外部电源,直接仿真器供电的话,可以正确采集,但是外接外部电源的话,采集的的值一直是4095,不知道是什么原因,求大哥大姐们指导一下,非常感谢,还有就是,同一个ADC12程序,下载到不同的msp430芯片,采集的原始值也不一样。

最新回复

看上去没啥问题呀... 接外部电源的时候仿真器电源是断开的吧? 还有,没见到输出语句的,你怎么知道结果不正确?  详情 回复 发表于 2015-7-28 11:01
 
点赞 关注

回复
举报

5310

帖子

453

TA的资源

五彩晶圆(高级)

沙发
 
先把硬件图发上来给大家看下!

你下步打算怎么查?
 
 

回复

1798

帖子

0

TA的资源

五彩晶圆(初级)

板凳
 
本帖最后由 sint27 于 2015-7-28 10:37 编辑

4095的话相当于就是采样口的电压跟参考电压一样了
 
 
 

回复

1193

帖子

0

TA的资源

纯净的硅(高级)

4
 
内置温度传感器不同芯片参数略有差异。在info_A区域存在温度校准参数的。
电源不同正常情况下是不会影响ADC采样的,除非你配置的参考电压不对。建议贴出ADC初始化部分的代码,更容易看出原因来。
 
 
 

回复

10

帖子

0

TA的资源

一粒金砂(中级)

5
 
蓝雨夜 发表于 2015-7-28 10:24
先把硬件图发上来给大家看下!

你下步打算怎么查?

多看下这方面的资料吧,谢谢你帮我
 
 
 

回复

10

帖子

0

TA的资源

一粒金砂(中级)

6
 
qiushenghua 发表于 2015-7-28 10:34
内置温度传感器不同芯片参数略有差异。在info_A区域存在温度校准参数的。
电源不同正常情况下是不会影响AD ...

#include

long temp;
float temperatureDegC;
float tt;
int main(void)
{
  WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT


  
  
  REFCTL0=REFVSEL_0+REFON;
  /* Initialize ADC12_A */
  ADC12CTL0 &= ~ADC12ENC;                   // Disable ADC12
  ADC12CTL0 = ADC12SHT0_0 + ADC12ON;        // Set sample time
  ADC12CTL1 = ADC12SHP;                     // Enable sample timer
  ADC12CTL3 = +ADC12TCMAP;                   // Enable internal temperature sensor

  ADC12MCTL0 |= ADC12VRSEL_1 + ADC12INCH_30; // ADC input ch A30 => temp sense

  ADC12IER0 |= 0x001;                        // ADC_IFG upon conv result-ADCMEMO

  while(!(REFCTL0 & REFGENRDY));            // Wait for reference generator
                                            // to settle
  ADC12CTL0 |= ADC12ENC;
  _EINT();
  while(1)
  {
    ADC12CTL0 |= ADC12SC;                   // Sampling and conversion start

    __bis_SR_register(LPM0_bits + GIE);     // LPM4 with interrupts enabled
    __no_operation();

   
    tt = (float)temp/4095*2500;
    temperatureDegC =(tt-700)/25.0f;

    __no_operation();                       // SET BREAKPOINT HERE
  }
}


#pragma vector=ADC12_VECTOR
__interrupt void ADC12ISR (void)

{
  
      temp = ADC12MEM0;                     // Move results, IFG is cleared
      __bic_SR_register_on_exit(LPM4_bits); // Exit active CPU
   
}
 
 
 

回复

10

帖子

0

TA的资源

一粒金砂(中级)

7
 
541873558 发表于 2015-7-28 10:45
#include

long temp;
float temperatureDegC;
float tt;
int main(void)
{
  WDTCTL = WDTPW +  ...

这个是不接外部电源能正常采样的程序
 
 
 

回复

10

帖子

0

TA的资源

一粒金砂(中级)

8
 
蓝雨夜 发表于 2015-7-28 10:24
先把硬件图发上来给大家看下!

你下步打算怎么查?

硬件由其他同事负责,我只负责软件方面
 
 
 

回复

1193

帖子

0

TA的资源

纯净的硅(高级)

9
 
看上去没啥问题呀...
接外部电源的时候仿真器电源是断开的吧?
还有,没见到输出语句的,你怎么知道结果不正确?
 
 
 

回复

10

帖子

0

TA的资源

一粒金砂(中级)

10
 
qiushenghua 发表于 2015-7-28 11:01
看上去没啥问题呀...
接外部电源的时候仿真器电源是断开的吧?
还有,没见到输出语句的,你怎么知道结果 ...

仿真器与电脑相连的,仿真器的地与下载端口形成回路给芯片供电,软件用的是IAR,能在线调试。
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表