gfy200866 发表于 2014-3-21 16:44:13

用5438A的ADC 采集供电电池电压的问题。

打算用5438A采集供电电池的电压值。原来用149试验是行的。现在怎么不行了。看了看文档也没发现什么问题,有用过朋友没?指点一下。
电路连接:AVCC接电池的正极;VREF 接0.1UF电容到地。ADC设置如下:

void ADC_init(void)//
{
ADC12CTL0&= ~ADC12ENC;//ENC=0;

ADC12CTL0 = ADC12ON+ADC12SHT0_8+ADC12SHT1_8+ADC12MSC+ADC12REFON+ADC12REF2_5V;//开ADC12+采样保持时间(256个CLK周期);+自动采样
                                                      //ADC12REFON+ADC12REF2_5V:基准开启,用2.5V
ADC12CTL1 = ADC12SHP+ADC12CONSEQ_2; //保持脉冲模式:选择信号从“采样定时器
ADC12CTL2 |=ADC12TCOFF;//温度传感器关闭,
ADC12MCTL0|=ADC12SREF1+ADC12INCH_11;//VR+ = VREF+ and VR- = AVSS;输入:(AVCC – AVSS) / 2                           
ADC12IE =ADC12IE0;//允许中断。

ADC12CTL0 |= ADC12ENC;    //ADC12-A;使能转换;。               
ADC12CTL0 |= ADC12SC;   //ADC12-A启动转换和采样。
}
#pragma vector=ADC12_VECTOR//ADC GFY
__interrupt void ADC12ISR (void)
{
switch(__even_in_range(ADC12IV,34))
{
case6:                                  //   ADC12IFG0
      
LCD_PutChar3(ADC12MEM0);//显示ADC显示采样值
      
      ADC12CTL0 =0;//关闭ADC
      ADC12IE = 0x00;//关闭ADC
}
default: break;
}
}

gfy200866 发表于 2014-3-21 16:46:50

看了看文档也有介绍说需要设置REF;我在void ADC_init)中前面加了一句REFCTL0 |= REFMSTR+REFVSEL_2+REFON+REFTCOFF;
不过貌似也不不行。改变不同的电池电压值, 采集的结果都貌似都是最大值4095?{:sweat:}

rainyuoko 发表于 2014-3-21 17:20:29

锂电池电压应该比芯片最大电压高吧,需要分压之后才能用adc采

gfy200866 发表于 2014-3-22 08:04:43

rainyuoko 发表于 2014-3-21 17:20
锂电池电压应该比芯片最大电压高吧,需要分压之后才能用adc采

不是锂电池,是干电池。两节1.5V的。直接接到AVCC上。当作模拟电源。在149上是可以的

gfy200866 发表于 2014-3-24 08:59:20

4538A;ADC基准电压的设置,有谁用过,给指点一下啊{:mad:}
页: [1]
查看完整版本: 用5438A的ADC 采集供电电池电压的问题。