4717|9

114

帖子

0

TA的资源

一粒金砂(高级)

楼主
 

430F5438A的ADC内部参考电压问题 [复制链接]

最近在搞ADC,把5438的ADC这章看了一遍,然后用例程去仿真了一下,发现一个问题,就是用内部参考电压的时候在寄存器CTL0设置了2.5V,REFON也置1了,然后MCTL1里的SREF为1,这都是按例程里来设置的,结果在A0输入的时候,得到的仿真结果是0X0FFF,也就是4095,这说明我的输入是超过或者是等于参考电压,但我实际测的A0的输入电压为1.1V左右,跟2.5V都差很多啊,为什么是满的值。
我把参考电压选择SREF改为0,也就是参考电压为AVCC跟AVSS,这样转换的值就正确了,3.3V的参考转换后在1453左右,误差不大,就是内部参考2.5V或者1.5V都不行,始终转换为满值4095,不知道问题出在哪,请大大指教。

最新回复

”REFCTL0 &= ~REFMSTR;“   看看改这个寄存器可不可以。 IAR 编的。  详情 回复 发表于 2014-7-20 14:38
 
点赞 关注

回复
举报

672

帖子

0

TA的资源

版主

沙发
 
楼主要不把程序发上来看看?
 
 

回复

114

帖子

0

TA的资源

一粒金砂(高级)

板凳
 
程序我贴下:
#include
volatile long temp;
void AD_Init(void)
{
  int i;
  P6SEL |= 0x01;                            // Enable A/D channel A0
  ADC12CTL0 = ADC12ON+ADC12SHT0_4+ADC12REFON+ADC12REF2_5V; // Turn on ADC12, set sampling time,选用内部参考2.5V
  ADC12CTL1 = ADC12SHP;       // Use sampling timer, set mode
  ADC12MCTL0 = ADC12SREF_1+ADC12INCH_0;                 // Vr+=Vref+ and Vr-=AVss
  for ( i=0; i<0x30; i++);                  // Delay for reference start-up
  ADC12CTL0 |= ADC12ENC;                    // Enable conversions
}
void AD_Start(void)
{
  ADC12CTL0 |= ADC12SC;                     // Start conversion
}
int main(void)
{
  WDTCTL = WDTPW+WDTHOLD;                   // Stop watchdog timer
  AD_Init();                                             //AD初始化
  while(1)
  {
    AD_Start();                                        //开始AD转换
    while (!(ADC12IFG & BIT0));               //判断转换完成与否
    temp = ADC12MEM0;                        //读取转换数据,IFG自动清零
     __no_operation();                         // For debugger
  }
  
}
在修改ADCMCTL0中的ADC12SREF_1这个参数,当为0时,转换数据正常,当为1时,得到的结果就是4095,而不管CTL0中的REF_2.5V置1与否。
 
 
 

回复

114

帖子

0

TA的资源

一粒金砂(高级)

4
 
有专家们知道问题出在哪里么?
 
 
 

回复

114

帖子

0

TA的资源

一粒金砂(高级)

5
 
使用内部参考,是选择Vref+为V+,AVSS为V-么?不需要在外部硬件上再接线的吧。
 
 
 

回复

114

帖子

0

TA的资源

一粒金砂(高级)

6
 
这个,没有技术人员分析下?
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(中级)

7
 
楼主找到原因能不能发个消息给我,我也蛋碎了。。。感觉程序挺对的,到底哪里不对啊

点评

没呐,后来我做别的事去了,这个就被我晾一边了。。。我打算要是不行的话,就直接把电源的精度提高点,AVCC做参考就做参考好了。  详情 回复 发表于 2013-8-19 09:25
 
 
 

回复

114

帖子

0

TA的资源

一粒金砂(高级)

8
 

回复 7楼zjhzyhfqm 的帖子

没呐,后来我做别的事去了,这个就被我晾一边了。。。我打算要是不行的话,就直接把电源的精度提高点,AVCC做参考就做参考好了。
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(初级)

9
 

你好! 我也遇到同样的问题

你好!   我也遇到同样的问题
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(初级)

10
 
”REFCTL0 &= ~REFMSTR;“   看看改这个寄存器可不可以。 IAR 编的。
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

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