This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

430单片机用外部晶振功耗很高问题

Other Parts Discussed in Thread: MSP430F5510, MSP430F149

我使用是MSP430F5510,原本我是用低频振荡器32Khz倍频到8Mhz作为系统时钟,整块电路板在待机的时候功耗约为40uA(单片机在LPM3),因为我用内部时钟,如果我在定时器B中断函数里面退出低功耗模式,就会导致单片机复位,此时SYSRSTTV=0x0002,即复位类型为BOR,但是用外部晶振就不会有这个问题,对于这个问题,我严重怀疑是芯片的BUG!!!!!

为了避免上面所提到的问题,我现在用外部晶振,但是发现整块电路板功耗奇高,整块电路板待机电流为330uA(单片机在LPM3),这是什么问题,是不是进入低功耗模式之前要操作一下XT2高频振荡器,但是我以前做MSP430F149的时候没有这个问题,我的本意是让MCLK=SMCLK=8Mhz,即外部晶振时钟。下面我贴上我的时钟初始化程序,及晶振相关电路,希望大家帮我解决一下这个功耗问题!

P5SEL |= BIT2+BIT3; // Port select XT2
P5SEL |= BIT4+BIT5; // Port select XT1

UCSCTL6 |= XCAP_3;
UCSCTL6 &= ~(XT2OFF + XT1OFF); // Set XT2,XT1 On
UCSCTL6 |= (XT2DRIVE1 + XT1DRIVE0); // Internal load cap

do
{
UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + DCOFFG);
// Clear XT2,XT1,DCO fault flags
SFRIFG1 &= ~OFIFG; // Clear fault flags
}while (SFRIFG1&OFIFG); // Test oscillator fault flag

//UCSCTL6 &= ~XT2DRIVE1; // Decrease XT2 Drive according to
// expected frequency
UCSCTL4 |= SELA_0 + SELM_5 + SELS_5; // Select SMCLK, ACLK source and DCO source