我们自己做的板子如下图所示,P1.0用于LPM3模式的唤醒。
测试代码只配置IO就直接进入LPM3模式,功耗还是有2.5uA,是否哪里未配置正确,麻烦各位大神帮忙解答解答。
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
FLL_CTL0 |= XCAP11PF;
bsp_io_deinit();
while (1) {
__bis_SR_register(LPM3_bits + GIE); // Enter LPM3
}
P1SEL = 0;
P1OUT = 0;
P1DIR = 0xFE; // All P1.x outputs
// Init Port2
P2SEL = 0x00;
P2DIR = 0xFF; // All P2.x outputs
P2OUT = 0; // All P2.x reset
// Init Port3
P3SEL = 0x00;
P3DIR = 0xFF; // All P3.x outputs
P3OUT = 0; // All P3.x reset
// Init Port4
P4SEL = 0x00;
P4DIR = 0xFF; // All P4.x outputs
P4OUT = 0; // All P4.x reset
// Init Port5
P5SEL = 0x00;
P5DIR = 0xFF; // All P5.x outputs
P5OUT = 0; // All P5.x reset
// Init Port6
P6SEL = 0x00;
P6DIR = 0xFF; // All P6.x outputs
P6OUT = 0; // All P6.x reset
// Init Port7
P7SEL = 0x00;
P7DIR = 0xFF; // All P7.x outputs
P7OUT = 0; // All P7.x reset
shaw wong:
功耗测量要按数据手册中的测试条件设置:
Wei Luo8:
回复 shaw wong:
LPM3模式,SCG0=1,默认使用外置的32768HZ的晶振。
LCDCPEN默认为0,使用命令LCDACTL = LCDON + LCDFREQ_32;使得LCD_A使能,static mode及f(ACLK)/32。
BTCTL = BT_fCLK2_ACLK; 使能Basic Timer,同时选择ACLK作为时钟源。
但是这样,功耗会更高些,达到3uA。是否还有哪些我没有注意到的?
灰小子:
回复 Wei Luo8:
你的测试条件是否和手册中的工作电压、温度相同?是否去除了外部晶振的功耗?
Wei Luo8:
回复 灰小子:
温度是常温状态下,工作电压为3.3V。使用的是外部无源的32.768KHz的晶体。
从手册上来看,理论上LPM3的功耗最多也就1.5uA。
HG:
回复 Wei Luo8:
功耗一般和电压的平方成正比,所以3.3V会大一些。温度高了也会升高。
外部晶振旁有电容么?
FLL_CTL0 |= XCAP11PF
这句话能去掉试试么?