打印

ZigBee研究之旅(三)---CC2530的电源管理模块

[复制链接]
2048|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
        CC2530通过不同的操作模式(电源模式)可以实现低功耗的操作。被提及的多种操作模式有活跃模式、闲置模式,还有电源模式1、2和3(即PM1-PM3)。最低功耗操作是通过关闭给个模块的供电电源以避免静态(电流泄漏)的电源损失获得,还有通过门控时钟和和关闭振荡器的方式来减小动态电源消耗的方式获得。

相关帖子

沙发
elecintop|  楼主 | 2015-2-28 23:49 | 只看该作者
1. 电源管理介绍
        不同的操作模式,或者电源模式,被用来允许低功耗模式。最低功耗操作是通过关闭给个模块的供电电源以避免静态(电流泄漏)的电源损失获得,还有通过门控时钟和和关闭振荡器的方式来减小动态电源消耗的方式获得。
        五种多样的操作模式(电源模式)分别称为活跃模式、闲置模式、PM1、PM2和PM3。活跃模式是正常模式,然而,PM3却拥有最低电源消耗。不同系统操作的电源模式所带来的影响如下表所示,一起的还有电压调整器和振荡器的选项。

使用特权

评论回复
板凳
elecintop|  楼主 | 2015-2-28 23:49 | 只看该作者

使用特权

评论回复
地板
elecintop|  楼主 | 2015-2-28 23:50 | 只看该作者
活跃模式:全功能模式。电压调节器到数字核心是工作的,16MHz的RC振荡器和32MHz晶振两者或者其中之一可以是运行的。32KHz的RC振荡器或者32kHz的晶体振荡器中的一个是运行的。

使用特权

评论回复
5
elecintop|  楼主 | 2015-2-28 23:51 | 只看该作者
闲置模式:除了CPU核停止运行外其他的和活跃模式完全相同。

使用特权

评论回复
6
elecintop|  楼主 | 2015-2-28 23:51 | 只看该作者
PM1模式:电压调节器到数字核心是工作的。16MHz的RC振荡器和32MHz晶振都不运行,32KHz的RC振荡器或者32kHz的晶体振荡器中的一个是运行的。如果复位、外部中断或者睡眠时钟到期时都会转向活跃模式。

使用特权

评论回复
7
elecintop|  楼主 | 2015-2-28 23:51 | 只看该作者
PM2模式:电压调节器到数字核心是不工作的。16MHz的RC振荡器和32MHz晶振都不运行,32KHz的RC振荡器或者32kHz的晶体振荡器中的一个是运行的。如果复位、外部中断或者睡眠时钟到期时都会转向活跃模式。

使用特权

评论回复
8
elecintop|  楼主 | 2015-2-28 23:52 | 只看该作者
PM3模式:电压调节器到数字核心是不工作的。时钟振荡器全部关闭。一旦复位或是外部中断都会进入活跃模式。

使用特权

评论回复
9
elecintop|  楼主 | 2015-2-28 23:52 | 只看该作者
         在PM2/PM3模式下POR(power on reset,上电复位)但是掉电检测是关闭的,这样一来只能提供有限的电压检测。这时如果在PM2/PM3模式期间供电电压低到1.4V以下温度达到70度或更高,然后被带回到良好的操作电压之前会重新进入主动模式,在PM2/PM3模式中保存到寄存器和RAM中的内容可能发生了变化。因此在设计系统电源时有必要关心一下这个问题,确保不要发生。在活跃模式中会定期准确的检测电压,当电压低于约1.7V时,掉电检测会触发复位。

使用特权

评论回复
10
elecintop|  楼主 | 2015-2-28 23:53 | 只看该作者

使用特权

评论回复
11
elecintop|  楼主 | 2015-2-28 23:53 | 只看该作者
上电复位和外部中断两个功能是唯一在PM3模式下工作的功能。I/O端口继续保存再进入PM3模式之前的I/O模式和输出值。上电复位或外部中断会使设备进入活跃模式(如果是外部中断回到进入PM3模式时运行的位置,如果是上电复位重新执行程序了)。PM3和PM2一样使用了一个快速power-down sequence。
PM3被用来等待一个外部中断事件而达到一个最低功耗的情况下。一般被使用在预期睡眠时间长于3ms的情况下。

使用特权

评论回复
12
elecintop|  楼主 | 2015-2-28 23:54 | 只看该作者
      2.  电源管理控制
      SLEEPCMD寄存器中的MODE位和PCON.IDLE位来控制电源模式。设置SFR(Specialfunction register,特殊寄存器)PCON.IDLE位是要依赖SLEEPCMD.MODE位的选择。
一个被使能为外部中断、睡眠时钟和上电复位都能唤醒设备从其他模式进入活跃模式。

使用特权

评论回复
13
elecintop|  楼主 | 2015-2-28 23:54 | 只看该作者
       当进入PM1-PM3,一个power-down sequence将运行。当设备跳出PM1-PM3模式时,如果CLKCONCMD.OSC=0且过渡到另一个模式时(正在设置PCON.IDLE,一个模式到另一个模式会有一个过渡期),设备的时钟频率从16MHz自动改变到32MHz。如果CLKCONCMD.OSC = 1当PCON.IDLE过去被设置时设备会继续运行在16MHz时钟频率下。

使用特权

评论回复
14
elecintop|  楼主 | 2015-2-28 23:55 | 只看该作者
       设置PCON.IDLE位的指令必须安排在一个正确的方式下操作。紧接着上面指令的下一个汇编指令的第一个字节不能是在4字节边界位置。而且,高速缓冲器一定是使能的(参考FCTL寄存器中的CM描述)。如果上面的要求不能满足很可能带来更大的功耗。如果这些条件满足,紧接着设置PCON.IDLE位指令后的第一个汇编指令在导致系统被唤醒的中断服务子程序之前执行,但是在系统被唤醒之后(这句太复杂,英文如下:Provided this requirement is fulfilled, the first assembly instruction after the instruction that sets the PCON.IDLE bitis performed before the ISR of the interrupt that caused the system to wakeup,but after the system wokeup.)。如果这个指令是一个全局性的中断禁用,它有可能在唤醒后紧跟代码执行,但是要在中断服务子程序被服务之前。

使用特权

评论回复
15
elecintop|  楼主 | 2015-2-28 23:55 | 只看该作者
       IAR中有个例子展示了如何被使用如下。在一个汇编程序中的指令设置了PCON为1。在一个C文件中被声明为形如extern void EnterSleepModeDisableInterruptsOnWakeup(void),并且被调用。这一句RSEG NEAR_CODE:CODE:NOROOT(2)声明是为了确保MOV PCON,#1 执行的位置是2字节对齐的。因为MOV PCON,#1指令是3字节的,满足其后一条的一条指令不是4字节对齐的。下面的例子中的这条指令是CLR EA使全局中断禁用,这就意味着唤醒系统的中断服务子程序不被执行直到IEN0.EA位在后面的代码中被重新设置之后。如果这个这个功能不需要,可以吧CLR EA指令换成一个NOP就行。

使用特权

评论回复
16
elecintop|  楼主 | 2015-2-28 23:56 | 只看该作者
      3. 电源管理寄存器
      这节描述电源管理的寄存器。所有寄存器的值再进入PM2或PM3时会一直保持。

使用特权

评论回复
17
elecintop|  楼主 | 2015-2-28 23:56 | 只看该作者

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

176

主题

1329

帖子

3

粉丝