我在我的硬件电路上只保留MCU和32K 晶振,将MCU设为LMP3模式,两种不同的时钟配置,得出不同的功耗,为什么会出现这种情况呢?
1、参考MSPWARE的LPM3例程,不对时钟进行配置,时钟ACLK = LFXT1/4 = 32768/4, MCLK = SMCLK = default DCO ~1.045MHz。
BCSCTL1 |= DIVA_2; // ACLK/4 = 8.192 kHz
测出40uA。
2、使用以下时钟函数,测出的功耗有1.35mA, 该时钟配置有什么问题没,为什么会对功耗影响这么大。
void cpu_init(void)
{
uint16 i;
asm(" BIS.W #40h,SR"); // disable DOC
/*select XT2*/
BCSCTL1 &= ~XT2OFF; BCSCTL1 &= ~XTS; // LFXT1 in LF MODE BCSCTL1 &= ~0x30; // ACLK,1分频,32768HZ。
/*SELM_2–选择XT2 for MCLK if XT2 Present,SELS–Select XT2 for SMCLK*/
BCSCTL2 |=(SELM_2+SELS); /*SMCLK 8/4=2MHZ*/
BCSCTL2 |= (DIVS1); // SMCLK 4分频
BCSCTL3 |= XT2S_2; // Mode 2 for XT2 : 3- 16 MHz crstal
/*清除晶震错误标志*/
while (IFG1&OFIFG) { IFG1 &= 0x1;
BCSCTL3 &= 0xfc;
/*等待清除完成*/
for (i=0xff;i>0;i–)
{ } }}
灰小子:
使用外部晶振时,晶振相关电路也是要耗电的。另外,mcu运行频率越高,功耗越高