430功耗问题

楼主
430功耗问题
大家你好,我是新手,请教个430低功耗的问题。开XT2(8M)和使用默认频率下,LPM4功耗是不同的吗?我是这样理解的,系统虽然进入低功耗可是晶振并没有关闭,只是通往cpu的通道关闭。即在不同晶振下,LPM4的功耗不同。我这里实测是10ua和150ua。不知道是不是像我想的那样,还是别的地方出了错。qq441747863,求赐教!!!!
1楼
我记得高频晶振荡器进入低功耗模式LPM4时是关闭的。但32K晶振早期的1系列型号,是不能关闭的。是要人工关闭32K时钟源的。我印象是这样,请其他网友补充...。
2楼
[P]那在外部中断唤醒后,这个时候用的是直接高频晶振吗?如果是这样,那么是否还需要等待晶振稳定呢,可是好像没有这个过程。于是我感觉晶振没关。[/P][P]板主,我可以加你qq吗,上面我是我的qq,很希望能结识你。[/P]
3楼
QQ不讨论430技术问题,有问题还是在论坛上解决。
LPM4中断唤醒后CPU时钟是默认为DCO源,如果休眠前CPU使用的时钟是用高频时钟的话,将自动由DCO时钟转到高频时钟去(此时高频开启时钟源,自动开启并等待)。[P]我印象是这样(太久没用430了,不肯定)...,你最好在本论坛上查查关于430的中断机制方面和时钟源、低功耗方面的贴子。[/P]
4楼
[P]非常感谢了![/P]
5楼
[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]

电脑版 Page created in 0.0938 seconds width 2 queries.