我使用是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

Heng Zhao:
对于F5xx 系列的芯片 控制位 XT1OFF 和 XT2OFF 并不是晶振开启位,而是强制开启位,就是说,如果你把这两位清零,那么就会导致系统进入任何低功耗模式包括LPMx.5在内 相应的晶振都是开启的(见手册 http://www.ti.com.cn/cn/lit/ug/slau208k/slau208k.pdf 第161页-162页),晶振开启是要消耗电流的(XT2开启至少消耗200uA),电流消耗见手册 http://www.ti.com.cn/cn/lit/ds/symlink/msp430f5510.pdf 第53页-54页
手册一定要仔细看。
Leon Yan:
关于功耗的问题,二楼已经回答,你仔细看看。
关于BOR的问题,看其来比较奇怪,不知道你系统供电电压多少?建议用示波器仔细查看一下MCU供电电压的状况;
Hanson He:
回复 Leon Yan:
在5510 中(包括XT1 和 XT2), PLL 使用 XT2. 如果使用PLL, 没有配置XT2 ,有可能会产生 BOR
另外, 如果没有使用PLL,需要设置Vcore为2或者3
在开启PLL前,有没有设置Vcore?是否有完整代码?
TI中文支持网




