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

为什么MSP430F2272 AD采集管脚电压固定为2.5V不变

如题,这样的问题原因在哪呢?是电路问题还是寄存器配置问题?

Ling Zhu2:

你好,请问ADC的具体配置是什么? 每个通道都是2.5V么?用的什么参考?

meng li2:

回复 Ling Zhu2:

寄存器配置如下:

 ADC10CTL1 |= INCH_7 + ADC10DIV_0 + ADC10SSEL_1  + CONSEQ_3;//    

 ADC10CTL0 |= SREF_0 + ADC10SHT_2 + ADC10ON + ADC10IE + MSC;       

 ADC10DTC1 |= 0X28;//转换次数40次,每路5次

我让通道0-7连续转换,但是通道4固定输出2.5V,其他通道正常,之前我以为是内部参考电压输出,但是REFOUT并没有置1.

启动函数:

void ADC10_start()

 {    

 ADC10AE0  = 0xFF;  //8路AD全开    

 ADC10CTL0 &= ~ENC;//关闭采样使能    

 while(ADC10CTL1 & ADC10BUSY);//判断是否有采样或转换动作    

 ADC10SA = (uint)ADC10_BUF;    //数据存储首地址

 ADC10CTL0 |= ADC10SC + ENC;//开始采样    

 _EINT();    

 LPM0;

 }

 

 

Ling Zhu2:

回复 meng li2:

 你好,对比一下范例程序,软件没什么大问题,是否为硬件问题?

//******************************************************************************// MSP430F22x4 Demo – ADC10, DTC Sample A1-0 32x, AVcc, Repeat Seq, DCO//// Description: Use DTC to sample A1/A0 repeat sequence 32x(64 total samples)// with reference to AVcc. Software sets ADC10SC to trigger sample burst.// In Mainloop MSP430 waits in LPM0 to save power until ADC10 conversion// complete, ADC10_ISR will force exit from LPM0 in Mainloop on reti.// ADC10 internal oscillator times sample period (16x) and conversion (13x).// DTC transfers conversion code to RAM 200h – 280h. ADC10(DTC) interrupt// will return system active. P1.0 set at start of conversion burst, reset// on completion.//// MSP430F22x4// —————–// /|\| XIN|-// | | |// –|RST XOUT|-// | |// >—|P2.1/A1 P1.0|–>LED// >—|P2.0/A0 |//// A. Dannenberg// Texas Instruments Inc.// April 2006// Built with CCE Version: 3.2.0 and IAR Embedded Workbench Version: 3.41A//******************************************************************************#include <msp430.h>

int main(void){ WDTCTL = WDTPW + WDTHOLD; // Stop WDT ADC10CTL1 = INCH_1 + CONSEQ_3; // A1/A0, repeat multi channel ADC10CTL0 = ADC10SHT_2 + MSC + ADC10ON + ADC10IE; ADC10AE0 = 0x03; // P2.0,1 ADC option select ADC10DTC1 = 0x40; // 64 conversions P1DIR |= 0x01; // Set P1.0 output

for (;;) { P1OUT |= 0x01; // Set P1.0 LED on ADC10CTL0 &= ~ENC; while (ADC10CTL1 & BUSY); // Wait if ADC10 core is active ADC10SA = 0x200; // Data buffer start ADC10CTL0 |= ENC + ADC10SC; // Sampling and conversion ready __bis_SR_register(CPUOFF + GIE); // LPM0, ADC10_ISR will force exit P1OUT &= ~0x01; // Clear P1.0 LED off }}

// ADC10 interrupt service routine#pragma vector=ADC10_VECTOR__interrupt void ADC10_ISR (void){ __bic_SR_register_on_exit(CPUOFF); // Clear CPUOFF bit from 0(SR)}

Triton Zhang:

回复 meng li2:

1. 你如何判断CH4的输出是2.5V的,是用万用表量的管脚,还是通过查看ADC数据判断的?

2. 如果是用万用表量的管脚,建议你检查硬件是否有问题。

3. 如果是通过查看ADC采样数据判断的,首先用万用表确定4通道管脚的电平是多少?

   然后,建议切换换ADC通道后,第一次采样的数据丢掉,用第二次以后的数据。

 

meng li2:

回复 Triton Zhang:

你好,我可以加你的QQ聊下吗?AD采集的电压是2.5V,管脚也是2.5V,后来我用热风枪吹下芯片管脚后,恢复正常了,现在是我刚刚上电的时候晶振不起振,当我把1脚,也就是TEST管脚接地后,晶振起振,我做的很多板子都出现这样的问题,请问你能帮我解决下吗?

meng li2:

回复 Ling Zhu2:

你好,我想问下为什么我刚刚上电的时候单片机会出现晶振无法起振的现象,单当我把1脚TEST管脚连到地线时,晶振才起振

meng li2:

回复 meng li2:

MSP430F22XX系列有没有官方的标准最小系统电路图,我想借鉴下,谢了

PEIYUAN YU:

回复 meng li2:

您好,时间过去这么久不知道您还能不能看到,我现在用F149做ADC采集也出现有一个AD引脚一直有电压,但是电压是浮动的,大概1v到3.3v之间,而且晶振有时候也会出现问题,经常跑着进入晶振清标志位那段程序,之前出过一版原理图一模一样的,焊的第一块没问题,都可以用,后面再焊就都不行了,焊接没有问题,您当时这个问题怎么解决的啊,看到请支招,谢谢!

赞(0)
未经允许不得转载:TI中文支持网 » 为什么MSP430F2272 AD采集管脚电压固定为2.5V不变
分享到: 更多 (0)