各位大侠好:
我现在做430f149的低功耗功能,程序上用的是睡眠4(LPM4),进入睡眠前关闭了定时器A,B及串口1。我就用了这3个功能模块。所有的端口都设成了输出模式,输出寄存器也设置的0,只有2个口是设成上升沿中断。用的是3.579mhz的晶振。硬件上的外设也都断开了,但是功耗还是达到了9ma左右,想请教一下,还有哪可能漏电呢?
WDTCTL = 0x5A80; //关闭看门狗
GPRS_POWER_OFF;
LED_OFF;
ME2 &= ~URXE1;//接收不允许
ME2 &= ~UTXE1;//发送不允许 IE2 &= ~URXIE1;//关闭接收中断使能
TACTL &= ~MC0; // 停止定时器
TACTL &= ~MC1; // 停止定时器
TACTL &= ~TAIE; //禁止定时器A中断
TBCTL &= ~MC0; // 停止定时器
TBCTL &= ~MC1; // 停止定时器
TBCTL &= ~TBIE; //禁止定时器B中断
P1SEL = 0x00; // 将p1.2,p1.5口设为中断功能
P1OUT = 0x00; // p1口输出0
P1DIR = 0x00; // 将P1设为输入方式
P1IES = 0x00; // 设为上升沿中断
P1IE = 0x24; // 允许p1.0–p1.6口中断
P1IFG = 0x00; // 复位p1口的中断标志寄存器
P2SEL = 0x00; P2OUT = 0x00; P2DIR = 0xff; P3SEL = 0x00; P3OUT = 0x00; // 将P3.0 口输出高
P3DIR = 0xff; // 将P3.0 设为输出方式
P4SEL = 0x00; // 将p4口设为端口功能
P4OUT = 0x00; // p4.0 输出为0
P4DIR = 0xff; P5SEL = 0x00; // 将p5口设为端口功能
P5OUT = 0x00; // p5输出为0
P5DIR = 0xff; P6SEL = 0x00; // 将p6口设为端口功能
P6OUT = 0x00; // p6输出为0
P6DIR = 0xff; LPM4; //睡眠
晶振的设置程序:
uchar i;
BCSCTL1 = 0xC0; // 选择高频模式
IFG1 &= ~OFIFG;
for(i=0;i<250;i++)_NOP();
while(IFG1&OFIFG)
{
IFG1 &= ~OFIFG; // 等待外部晶振稳定
for(i=0;i<250;i++)_NOP();
i=0;
}
for(i=0;i<250;i++)_NOP();
for(i=0;i<250;i++)_NOP();
BCSCTL2 = 0xC0; // 外部晶振为主频
zheng cui:
#define GPRS_POWER_OFF P4OUT &=~ 0x01
#define LED_OFF P3OUT |= 0x01
这是补充。在线等解答,急呀
Terry Deng:
9mA接近正常运行的功耗了,你确认进入了LPM4低功耗状态吗?没进入以前的功耗是多少啊
zheng cui:
回复 Terry Deng:
平时工作电流是25ma,能够确认进入睡眠了,因为我仿真了,而且能够通过管脚的中断唤醒。
zheng cui:
回复 Terry Deng:
进入睡眠后,用示波器测了一下晶振,晶振也没有起震
Ling Zhu2:
回复 zheng cui:
板子上有没有其他芯片呢? 确定只是430的功耗?
zheng cui:
回复 Ling Zhu2:
板子上除了供电的电路外,其他的都切断了。
zheng cui:
回复 Ling Zhu2:
Ling Zhu2:
回复 zheng cui:
外围电路呢?有没有上拉电阻,阻值多大?
zheng cui:
回复 Ling Zhu2:
上啦电阻100k。
zheng cui:
回复 Ling Zhu2:
这是去除掉所有外围电路的原理图