在线情况
楼主
  • 头像
  • 级别
    • 积分8
    • 经验1040
    • 文章16
    • 注册2011-10-31
    关于149低功耗大小讨论
    本人用149做的一个项目,初始化单片机后,使其进入LPM4睡眠模式,测量得到的工作电流900uA;若是不初始化硬件,程序一执行就进入LPM4,测量得到的工作电流为17uA。请问各位大侠有什么办法能使单片机初始化后,进入LPM4模式后的功耗保持在17uA?
    微控网感谢您的参与
    在线情况
    2
    • 头像
    • 级别
    • 门派
    • 职务总版主
    • 声望+9
    • 财富5
    • 积分3065
    • 经验390701
    • 文章6744
    • 注册2006-03-07
    [P]我觉得楼主提到情况有点怪。
    单片机初始化后---LPM4---->900uA
    单片机未初始化---LPM4---->17uA
    这两者显然,你初始化后,将某些模块打开了才产生如此大的功耗。这问题就在在于,你将单片机初始化的过程中,将原本上电默认低功耗的模式的状态把他改变了。这个有三个因素比较大。
    首先,初始化有时钟,将某时钟开启了,而在进入低功耗时时钟源是否被停止了。
    其二,部分IO的设置影响到了对外的电流的输出使之电流增大。[/P][P]第三,有可能部分功能模块被你打开了。但你进入低功耗时,这模块未被闭掉。[/P][P]当然我是不知你初始化了什么的。这些都得需要自己去检查。[/P]
    [COLOR=#0000ff]欢迎发贴分享设计心得、开源DIY...[/COLOR]
    在线情况
    3
    • 头像
    • 级别
      • 积分8
      • 经验1040
      • 文章16
      • 注册2011-10-31
      [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]
      微控网感谢您的参与
      在线情况
      4
      • 头像
      • 级别
        • 积分8
        • 经验1040
        • 文章16
        • 注册2011-10-31
        [P]进入低功耗前如何关闭AD模块?[/P][P]非常感谢DC!!![/P][P][FACE=宋体][SIZE=14px][P]主要的耗电是内部的参考电源模块,我试着开启然后把所有初始化的寄存器都写为零,参考电源模块好象还是关不了,不知道是为何?所以我现在改为AVCC~AGND作为AD参考电源,这部分的功耗问题也就解决了。。。[/SIZE][/FACE][/P][/P]
        [ 此贴最后由DC在2012-2-16 12:15:18编辑过 ]
        微控网感谢您的参与
        在线情况
        5
        • 头像
        • 级别
        • 门派
        • 职务总版主
        • 声望+9
        • 财富5
        • 积分3065
        • 经验390701
        • 文章6744
        • 注册2006-03-07
        [P]不客气,呵呵~
        你尝试当在退出ADC时将ADC模块关闭(包含参考源);其他模块如果有开关位同要这样处理就可以了。
        另外,在进入低功耗时如果不用高频时钟需要将其关闭,还有IO口等等。[/P]
        [COLOR=#0000ff]欢迎发贴分享设计心得、开源DIY...[/COLOR]
        在线情况
        6
        • 头像
        • 级别
          • 积分8
          • 经验1040
          • 文章16
          • 注册2011-10-31
          [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]
          微控网感谢您的参与
          Powered by LeadBBS 9.2 .
          Page created in 4.3589 seconds with 5 queries.