TI中文支持网
TI专业的中文技术问题搜集分享网站

CC2640 如何进入shutdown模式?

大家好!我在TI的simpleBLEPer…工程基础上,希望能够将cc2640进入shutdown模式,我在程序中调用:

PowerCtrlIOFreezeEnable();
PowerCtrlStateSet(PWRCTRL_SHUTDOWN);

之后,cc2640没有进入shutdown模式,此时测量两颗晶振,都在不停震动,好像是进入了active模式,请问下,如何在程序中让cc2640进入shutdown模式?

谢谢!

Barbara Wu:

请问为什么要这么做?CC2640的Powermode在协议栈里面自己有控制,上层可以不自己调用。

Chen Li75:

回复 Barbara Wu:

您好!为了无开关的设计,在产品仓储过程中保持最低功耗。现在调用该函数后,虽然看上去像睡眠了,但晶振都没有停,功耗反而更大了,请问应该如何才能让cc2640完全停机?

liang bai:

回复 Barbara Wu:

HI wbj,

     我们也用到了,具体步骤是按键按下,CC2640进入Powermode,再按下按键返回到正常模式。

    我在贵司提供的一篇文档中看到有许多的步骤:

 1. Switch to RCOSC_HF— Switch to high-speed RC oscillator.

2. Make sure DMA and CRYTO clocks are off before entering shutdown— Ensure the DMA and crypto deep-sleep clocks are turned off.

 3. Power OFF AUX and disconnect from bus— Configure the auxiliary domain.

。。。。

11. Deep sleep to activate shutdown— Enter deep-sleep by executing WFI instruction. WFI instruction shuts down the system. Because the CM3 reboots when waking up, no instructions execute after the PRCMDeepSleep() function.

我发现这里面的实现函数在STACK中有。

请问:

1 上层不用调用,那如何控制CC2640进入shutdown模式和从shutdown模式唤醒那?

2 我看文档中说,系统进入shutdown模式后,只能有复位管脚和GPIO中断来唤醒。

3 我们如果这样设计可以实现需求功能吗?

谢谢!

期待你的答复!

Yan:

回复 liang bai:

liang,

系统没法自动进入shutdown 模式,你需要手工调用Power_shutdown(NULL);。

因为在shutdown模式下晶振都没了,RTOS是没法运行的。RTOS只能控制系统进入standby模式,shutdown只能手动。

而且shutdown是不会有内存保持的,这点要注意。

liang bai:

回复 Yan:

Hi wbj.

      请问:

1 RTOS如何控制系统进入standby模式?在什么情况下回进入standby模式?如何唤醒那?

2 Power_shutdown(NULL);一条命令就可以让系统自动进入shutdown 模式?在这种情况,用什么命令唤醒那?

谢谢~!

Yan:

回复 liang bai:

liang,

2640的datasheet 上有很详细的各种power mode的描述,我记得有个表格,很清楚。

1. standby 是RTOS自动根据MCU和射频的状态来控制的。简单说,就是在广播间隙,连接间隔间隙,或者timer间隙,M3就是在standby模式下。

2. 前面说了,shutdown以后,没晶振了。既然没晶振了,M3就歇菜了,没有代码可以跑,当然也没有命令可以发。这个时候就是靠IO唤醒了。

赞(0)
未经允许不得转载:TI中文支持网 » CC2640 如何进入shutdown模式?
分享到: 更多 (0)