TI中文支持网
TI专业的中文技术问题搜集分享网站

msp430f5438a ADC12 采样误差很大

Hi:

msp430f5438a 芯片, ADC12采样, 电阻分压。

如图,当采样ADC12_BATIN点的电压时,ADC_EN管脚输出0并延时1秒后才开采样。

代码如下:

void Mcu_Adc(void)
{ unsigned char i=0;
P5OUT &= ~BIT4;
__delay_cycles(1000000);
P6SEL |= BIT3; // 使能A/D 通道A3
REFCTL0 &= ~REFMSTR;
ADC12MCTL0 |= ADC12INCH_3; //Input channel select A3
//ADC12MCTL0 |= ADC12INCH_11; //Input channel select A11,1.25v
ADC12CTL0 = ADC12SHT03 + ADC12REF2_5V + ADC12REFON + ADC12ON; // Sampling time, reference generator voltage 2.5V and on,ADC12 on
ADC12CTL1 |= ADC12SHP; // Use sampling timer
for ( i=0; i<0x30; i++); // Delay for reference start-up
//ADC12IE = 0x01; // Enable interrupt
ADC12CTL0 |= ADC12ENC;
//ADC12CTL2 |= ADC12TCOFF ; //Temperature Sensor Off ADC12TCOFF?? + ADC12REFOUT(从spect这个只针对外部参考电压) + ADC12REFBURST

ADC12CTL0 |= ADC12SC; // 开始转换

while (!(ADC12IFG & ADC12IFG0));

sample_val = ADC12MEM0;

ADC12CTL0 &= ~(ADC12REFON + ADC12ON );
P5OUT |= BIT4;
}

如果采样Input channel select A11通道,采样结果很精确。

如果采样Input channel select A3,也就是ADC_BATIN管脚,采样结果误差很大。用示波器测量ADC_BATIN管脚,电压为1.8V而且电压波形稳定;但是采样的结果才是1.2V左右。

请问,这个如何解决?

Ling Zhu2:

你的VBAT是多少? 根据电路分压出来 怎么会有1.8V?

user5273112:

回复 Ling Zhu2:

Hi,Ling:

Vbat是三节5号电池串联输出电压,我用万用表测得电压值是5.1V左右。

灰小子:

你的分压电阻用的阻值太大了,你减少一个数量级试试

Yanhong Yin:

您好,我使用的MCU也是MSP430F5438A,也是需要进行电压检测,但是我使用的是两节5号电池进行供电并测压,想知道,我是不是就不需要分压,直接连接在AD上就可以了?您的分压电阻是怎么计算的?

赞(0)
未经允许不得转载:TI中文支持网 » msp430f5438a ADC12 采样误差很大
分享到: 更多 (0)