轻松玩转DSP:基于TMS320F2833x
上QQ阅读APP看书,第一时间看更新

2.3 F2833x的低功耗模式

我们在使用仿真器调试时,貌似很少会关注低功耗模式。一般是在仿真器连不上的时候(特别是在DSP芯片被损坏之后),会看到“xxxxfault,the device may be in low power mode”。

CMOS器件的主要功耗是动态功耗(主要发生在晶体管的开通与关断过程,而静态功耗几乎可以忽略),所以关闭外设时钟就取消了其动态工作条件。在供电电压不变的情况下,降低功耗意味着芯片需要的电流减小,从而降低供电电路的功耗。

2.3.1 低功耗的分类及应用

1.F2833x低功耗模式的分类

低功耗模式是与普通运行模式相对的,包括空闲(Idle)、待机(Standby)、暂停(Halt)三种模式,它们的区别主要在于内核时钟、外设时钟、看门狗时钟、PLL/晶振的使能与否。

(1)IDLE(空闲)模式

IDLE模式下,指令计数器PC不再增加,CPU停止执行指令,处于休眠状态。复位信号、XNMI信号、信号及任何使能的中断均可使系统退出该模式。

IDLE模式下可以只使能部分模块的时钟,通过关闭不用的外设,达到降低功耗的目的。

(2)STANDBY(待机)模式

该模式下,进出CPU的时钟均关闭。但看门狗模块时钟未关闭,看门狗仍然工作。复位信号、XNMI信号、信号及指定的GP IOA口信号可使系统退出该模式。

STANDBY模式关闭了CPU和外设的时钟,但是保留PLL,与PC的待机模式比较接近。

(3)HALT(暂停)模式

该模式下,振荡器和P LL模块关闭,看门狗模块也停止工作。复位信号、XNMI信号及指定的GP IOA口信号可使系统退出该模式。

使用仿真器调试时,HALT模式很容易观察到:仿真器连接DSP并下载程序后,CCS的左下角就有“CPU Halted”的指示,在程序运行时单击CCS的Halt按钮之后,还可以看到CCS的左下角有“CPU Halted”的指示。

几种低功耗模式的比较见表2.7。

表2.7 三种低功耗模式的比较

需要特别注意的是:

1)必须使用一个足够宽(一般由GPIO的输入限制寄存器来设置)的低电平信号,若低电平信号的宽度不够,则系统无法退出低功耗模式。

2)空闲模式下C28x的SYSCLKOUT会继续保持工作,这与C24x不同。

3)在C28x DSP中,即使关闭了CPU时钟(CLKIN),JTAG仍然可保持工作。

4)无论哪种低功耗模式,都不会影响输出引脚的状态(包括PWM引脚),即DSP切换至低功耗模式时,输出引脚将保持切换前的状态,使用PWM时须特别注意!

2.低功耗模式控制寄存器LPMCR0

寄存器位寻址格式为SysCtrlRegs.LPMCR0。位格式如图2.20所示。

图2.20 LPMCR0的位格式

低功耗模式的进入可按如下步骤进行。

步骤1:使能希望的外部中断。

例如,使能PIE中的XINT1:PieCtrlRegs.PIEIER1.bit.INTx4=1。

步骤2:设置LPM标志位。

例如,CPU进入HALT模式:SysCtrlRegs.LPMCR0.bit.LPM=0x0002;

步骤3:按照预设的模式,硬件进入低功耗。

2.3.2 低功耗模式程序分析

1.HALT模式

CPU处于HALT模式,配置GPIO0为CPU唤醒引脚(高→低→高),GPIO1为进入中断指示引脚。需要特别注意的是,低电平的保持时间至少是在晶振启动时间的基础上加2个晶振时钟。

二维码2.6

2.IDLE 模式

CPU处于IDLE 模式,GPIO0配置为XINT1,下降沿触发XINT1中断将CPU唤醒。GPIO1为进入中断指示引脚。

二维码2.7

3.STANDBY模式

该模式下,配置GPIO0为CPU唤醒引脚(高→低→高),GPIO1为进入中断指示引脚。需要特别注意的是,低电平至少保持(2+QUALSTDBY)个晶振时钟。

二维码2.8