关于149低功耗大小讨论

楼主
关于149低功耗大小讨论
本人用149做的一个项目,初始化单片机后,使其进入LPM4睡眠模式,测量得到的工作电流900uA;若是不初始化硬件,程序一执行就进入LPM4,测量得到的工作电流为17uA。请问各位大侠有什么办法能使单片机初始化后,进入LPM4模式后的功耗保持在17uA?
1楼
[P]我觉得楼主提到情况有点怪。
单片机初始化后---LPM4---->900uA
单片机未初始化---LPM4---->17uA
这两者显然,你初始化后,将某些模块打开了才产生如此大的功耗。这问题就在在于,你将单片机初始化的过程中,将原本上电默认低功耗的模式的状态把他改变了。这个有三个因素比较大。
首先,初始化有时钟,将某时钟开启了,而在进入低功耗时时钟源是否被停止了。
其二,部分IO的设置影响到了对外的电流的输出使之电流增大。[/P][P]第三,有可能部分功能模块被你打开了。但你进入低功耗时,这模块未被闭掉。[/P][P]当然我是不知你初始化了什么的。这些都得需要自己去检查。[/P]
2楼
[P]DC说得很对,经过查找我只找到了部分就AD模块有消耗五百多个UA电流,如果是不初始化AD模块就少五百多个UA的电流,请问下,AD模块开启后,进入低功耗模式怎样才能关闭AD模块呢?AD初始化如下程序[/P][P]//打开采样模块+采样保持时间+2.5V基准电压
  ADC12CTL0=ADC12ON+REFON+REF2_5V+SHT0_15+MSC;
  //用采样定时器为采样时钟+序列通道单次转换
  ADC12CTL1=ADC12SSEL_0+SHP+CONSEQ_1;
  //转换通道设置
  ADC12MCTL0=SREF_1+INCH_0;//参考电压2.5V,通道0
  ADC12MCTL1=SREF_1+INCH_8;//参考电压2.5V,通道Veref+
  ADC12MCTL2=SREF_1+INCH_9+EOS;//参考电压2.5V,通道Vref-/Veref-,最后一次转换
/*****************************************************/
  ADC12IE=0X04;//Enable ADC12IFG.2[/P]
3楼
[P]进入低功耗前如何关闭AD模块?[/P][P]非常感谢DC!!![/P][P][FACE=宋体][SIZE=14px][P]主要的耗电是内部的参考电源模块,我试着开启然后把所有初始化的寄存器都写为零,参考电源模块好象还是关不了,不知道是为何?所以我现在改为AVCC~AGND作为AD参考电源,这部分的功耗问题也就解决了。。。[/SIZE][/FACE][/P][/P]
4楼
[P]不客气,呵呵~
你尝试当在退出ADC时将ADC模块关闭(包含参考源);其他模块如果有开关位同要这样处理就可以了。
另外,在进入低功耗时如果不用高频时钟需要将其关闭,还有IO口等等。[/P]
5楼
[P]AD那块的内部参考源试了几种办法好象都关不了,所以我只能设置为AVCC~AGND为参考源,不知DC是否有招?[/P][P]还有一个问题就是如果我程序初始化DCO模块:DCOCTL =DCO2+DCO1;BCSCTL1 =RSEL2;使其工作在 1.0MHz左右,那整机功耗就又多了三百多个UA,如果不写这两条语句,频率工作在七百多个Hz,功耗也就下来了。按照资料进入LPM4时DCO是关闭的,为什么功耗降不下来呢?我也试着把这两句DCOCTL =0;BCSCTL1 =0;加到进入低功耗模式前,不过好象没起什么效果。有劳DC解释一下,非常感谢!
    [/P]

电脑版 Page created in 0.1641 seconds width 3 queries.