在线情况
楼主
  • 头像
  • 级别
    • 积分21
    • 经验169
    • 文章16
    • 注册2013-06-05
    430功耗问题
    大家你好,我是新手,请教个430低功耗的问题。开XT2(8M)和使用默认频率下,LPM4功耗是不同的吗?我是这样理解的,系统虽然进入低功耗可是晶振并没有关闭,只是通往cpu的通道关闭。即在不同晶振下,LPM4的功耗不同。我这里实测是10ua和150ua。不知道是不是像我想的那样,还是别的地方出了错。qq441747863,求赐教!!!!
    微控网感谢您的参与
    在线情况
    2
    • 头像
    • 级别
    • 门派
    • 职务总版主
    • 声望+9
    • 财富5
    • 积分3065
    • 经验390701
    • 文章6744
    • 注册2006-03-07
    我记得高频晶振荡器进入低功耗模式LPM4时是关闭的。但32K晶振早期的1系列型号,是不能关闭的。是要人工关闭32K时钟源的。我印象是这样,请其他网友补充...。
    [COLOR=#0000ff]欢迎发贴分享设计心得、开源DIY...[/COLOR]
    在线情况
    3
    • 头像
    • 级别
      • 积分21
      • 经验169
      • 文章16
      • 注册2013-06-05
      [P]那在外部中断唤醒后,这个时候用的是直接高频晶振吗?如果是这样,那么是否还需要等待晶振稳定呢,可是好像没有这个过程。于是我感觉晶振没关。[/P][P]板主,我可以加你qq吗,上面我是我的qq,很希望能结识你。[/P]
      微控网感谢您的参与
      在线情况
      4
      • 头像
      • 级别
      • 门派
      • 职务总版主
      • 声望+9
      • 财富5
      • 积分3065
      • 经验390701
      • 文章6744
      • 注册2006-03-07
      QQ不讨论430技术问题,有问题还是在论坛上解决。
      LPM4中断唤醒后CPU时钟是默认为DCO源,如果休眠前CPU使用的时钟是用高频时钟的话,将自动由DCO时钟转到高频时钟去(此时高频开启时钟源,自动开启并等待)。[P]我印象是这样(太久没用430了,不肯定)...,你最好在本论坛上查查关于430的中断机制方面和时钟源、低功耗方面的贴子。[/P]
      [COLOR=#0000ff]欢迎发贴分享设计心得、开源DIY...[/COLOR]
      在线情况
      5
      • 头像
      • 级别
        • 积分21
        • 经验169
        • 文章16
        • 注册2013-06-05
        [P]非常感谢了![/P]
        微控网感谢您的参与
        在线情况
        6
        • 头像
        • 级别
          • 积分51
          • 经验2657
          • 文章206
          • 注册2007-03-18
          [P]不同系列中,这个处理方式是不同的。但以2系列为例,通常LPM不能主动停掉间接使用的时钟源,也就不能真正进入对应的LPM状态下了。比如说,ADC或别的什么模块正在通过SMCLK获得XT2上的时钟源,则该时钟源由于已经在一个托管的模块中使用,就不会被LPM所关闭。而像CPU本身MCLK所对应的时钟源,如果没有其它时钟通道或模块在使用同一个时钟源,比如XT1或DCO,则该时钟源就会按预期的关闭。[/P][P]所以在使用430的时候,不仅要处理中断或者休眠这么简单,你要时时记得掌握每个状态下的时钟使用情况:哪几个时钟源(DCO,XT1,XT2等)开着,分别打到哪个时钟通道(MCLK,SMCLK,ACLK等),哪些模块(TA,TB,ADC等)在使用哪些时钟通道。极力建议在进入LPM前手工处理对应模块的启停状态,也就是先合闸,再开机,先关机,再拉闸这种最基本的电工操作方法。[/P][P]按照这种方法来操作,很少会发生休眠失败的现象,除非遇到芯片BUG或编译器BUG导致异常。

          [LINE-HEIGHT=21.60][BGCOLOR=rgb][SIZE=14px]再补充一点,不同的LPM级别会关闭的时钟源不同。如果你所使用的模块在这个时候需要启用,在一开始设计程序的时候,就应该尽量把它往更晚关闭的时钟源上放,例如,要使用TA定时中断,永远不能停,那么你最多能进入的级别应该是LPM3,它会保留下ACLK和对应的LFXT时钟源,TA就应该使用ACLK通道,配合LFXT。如果错用了XT1,则在更浅的LPM时,它就早已经被关闭了。LPM越深,功耗越低,所以合理的计划时钟源是一个很重要的步骤,不要等到写一半程序的时候才发现时钟源不合理导致的休眠困扰。[/SIZE][/BGCOLOR][/LINE-HEIGHT][/P]
          [ 此贴最后由DC在2013-8-12 12:35:26编辑过 ]
          微控论坛特约嘉宾
          在线情况
          7
          • 头像
          • 级别
            • 积分21
            • 经验169
            • 文章16
            • 注册2013-06-05
            [P]非常感谢您的精彩回答,和板主的帮助。说的很细腻。现在是这样的,一个空的程序,又换了一个芯片(同一批买的),开启XT2后直接进入低功耗,结果是140ua。以下是程序。[/P][P]#include "msp430x14x.h"[/P][P]void main( void )
            {
              unsigned char i,j;
              unsigned char k;
              // Stop watchdog timer to prevent time out reset
              WDTCTL = WDTPW + WDTHOLD;
             
                BCSCTL1 &= ~XT2OFF;
                do {
                IFG1 &=~OFIFG;
                for(k=0xff ;k>0;k--);
                  }
                while((IFG1 & OFIFG)!=0);    
                BCSCTL2 |= SELM1;  
            //    BCSCTL2 |= (DIVM1+DIVM0);  [/P][P]//   这里分频和不分频的耗电量的结果是一样的,这点尤其不能让我理解
              _BIS_SR(LPM4_bits );
              while(1);
            }[/P][P]能在帮看看嘛,如果排除软件问题,是不就是硬件了呢?[/P]
            微控网感谢您的参与
            在线情况
            8
            • 头像
            • 级别
              • 积分51
              • 经验2657
              • 文章206
              • 注册2007-03-18
              [P]那我说几个要点吧:[/P][P]1、微功耗到一定程度,潮湿也会有很大的影响。例如,黑笔接在一节电池负极上,不要碰到手,然后一插捏红笔一手摸正极,你会发现……[/P][P]2、分频器的功耗小到忽略不计,主要区别在晶振和模块上,430上很多模块的功率都小到忽略不计。[/P][P]3、振荡器耗能主要是耗费在翻转发生时,一旦进入稳定状态,反而不耗电了。所以振荡器频率越高,单位时间同翻转的次数就会越多,当然耗能也就……[/P][P]顺这几个思路理解吧![/P]
              微控论坛特约嘉宾
              在线情况
              9
              • 头像
              • 级别
                • 积分21
                • 经验169
                • 文章16
                • 注册2013-06-05
                我能加你吗!qq441747863.翻转是状态转换的瞬间吗?你怀疑我的430不稳定是吗?有这个可能,但不像。我现在在做一个msp430f149和cc1101的无线系统,cc1101进入sleep,一旦有信号,cc1101就会给430个信号(外部中断)。如果不启动XT2的话进入中断后就死掉了,如果启动XT2的话功耗在150ua左右。现在没查出来在默认频率下为什么启动不起来,我试着将高速晶振分频8,结果启动起来,功耗为150ua说明和晶振速度没关。接着我有在猜测这个150ua是从哪里来的,我把cc1101卸掉,运行空程序并进入LPM4模式下,功耗也在150ua。那么这个150ua应该是430的问题,但是不知道具体错在哪。卸掉cc1101后,电路除了复位和晶振外没有别的东西了。
                微控网感谢您的参与
                在线情况
                10
                • 头像
                • 级别
                  • 积分51
                  • 经验2657
                  • 文章206
                  • 注册2007-03-18
                  [P]翻转是指晶振的振荡电路,每次从高变低和从低变高都是在翻转的过程中,是时钟工作的正常现象,除非停振才不会翻转。[/P][P]不是启动不起来,是你要设置等待时钟稳定再把MCLK切换时钟为XT2,在此之前,要用DCO作为MCLK,不然CPU没有时钟,当然死掉了。[/P]
                  微控论坛特约嘉宾
                  在线情况
                  11
                  • 头像
                  • 级别
                    • 积分21
                    • 经验169
                    • 文章16
                    • 注册2013-06-05
                    [P]这个问题我决定先放放了,先谢谢啦![/P]
                    微控网感谢您的参与
                    在线情况
                    12
                    • 头像
                    • 级别
                      • 积分51
                      • 经验2657
                      • 文章206
                      • 注册2007-03-18
                      [P]说有一个人,决定游泳穿过一个湖,他游了好久,抬头一看,离对岸还有那么远!于是他放弃了,调头往回游。但是,旁观的人看到他从离对岸不到一半路程的位置折了回去,他觉得放弃很轻松,其实负出的代价更大,而且还浪费了之前所付出的一多半努力。希望楼主能看懂这则故事。[/P]
                      微控论坛特约嘉宾
                      Powered by LeadBBS 9.2 .
                      Page created in 1.0947 seconds with 5 queries.