在线时间0 小时
UID294147
注册时间2011-5-26
NXP金币0
该用户从未签到
新手上路

- 积分
- 187
- 最后登录
- 1970-1-1
|
我使用的是最小系统,使用的是内部时钟,上电简单设置后就进入低功耗模式,总体功耗约有110uA左右,其中电源芯片部分约占了10几个uA,另外100个uA的电流到底用在哪里了?数据手册上说的只有不到1uA的,我找了很久也没找到原因在哪里。附件图片是原理图,其中有几个专用模块没有使用,引脚是接地的,我不肯定是不是应该接地,但我去掉不接地还是一样,电流几乎没有变。请大伙发表下意见,以下是基本代码:
void main(void)
{
Delay_ms(5); //
DisableInterrupts; //禁止总中断
MCU_Init(); //系统基本设置
Delay_ms(10); //
PORT_Init(); //I/O口初始化
Delay_ms(10); //
EnableInterrupts; //允许总中断
asm stop; //进入停止模式2或3
}
void MCU_Init(void)
{
SOPT1 = 0x23; //禁用看门狗,使用停止模式
SPMSC1 = 0x00; //禁用低电压检测
//SPMSC2 = 0x03; //允许进入局部断电模式(STOP2)
SPMSC2 = 0x02; //允许进入低功耗模式(STOP3)
SCGC1 = 0x00; //禁用外围模块时钟
SCGC2 = 0x00;
SCGC3 = 0x00;
}
void PORT_Init(void)
{
PTAD = 0x00; //A 端口数据寄存器 (输出0)
PTADD = 0xFF; //A 端口数据方向寄存器 (输出方式)
PTAPE = 0x00; //A 端口上拉使能寄存器 (上拉禁用)
PTASE = 0x00; //A 端口斜率使能寄存器 (输出斜率控制被禁止)
PTADS = 0x00; //A 端口驱动强度选择寄存器(低输出驱动强度)
PTAIFE = 0x00; //A 端口输入低通滤波器禁用
PTBD = 0x00;
PTBDD = 0xFF;
PTBPE = 0x00;
PTBSE = 0x00;
PTBDS = 0x00;
PTBIFE = 0x00;
PTCD = 0x00;
PTCDD = 0xFF;
PTCPE = 0x00;
PTCSE = 0x00;
PTCDS = 0x00;
PTCIFE = 0x00;
PTDD = 0x00;
PTDDD = 0xFF;
PTDPE = 0x00;
PTDSE = 0x00;
PTDDS = 0x00;
PTDIFE = 0x00;
PTED = 0x00;
PTEDD = 0xFF;
PTEPE = 0x00;
PTESE = 0x00;
PTEDS = 0x00;
PTEIFE = 0x00;
PTFD = 0x00;
PTFDD = 0xFF;
PTFPE = 0x00;
PTFSE = 0x00;
PTFDS = 0x00;
PTFIFE = 0x00;
PTGD = 0x00;
PTGDD = 0xFF;
PTGPE = 0x00;
PTGSE = 0x00;
PTGDS = 0x00;
PTGIFE = 0x00;
//IRQ引脚设为上拉输入,不设置这个不能进入STOP2模式
PTEDD &= ~BIT4;
PTEPE |= BIT4;
}
编辑说明:增加了红色显示部分
|
|