各位开发者:
大家好。我现在在C6748上设计一个程序,工作一段时间后进入深休眠模式来降低功耗,等待一段时间后继续工作。参考C6748的TRM手册通过RTC来控制芯片进入和退出深休眠模式。进入深休眠模式如下:
Step1:为了保存DDR2/mDDR内存的内容,激活自刷新模式并解除DDR2/mDDR内存控制器的时钟。你可以使用额外电源的部分阵列自刷新(PASR)来保存mDDR的内容
Step2:SATA PHY需要被禁用。:
Step3:USB2.0(USB0) PHY需要被禁用,如果这个接口被使用并且内部时钟被选择。
Step4:USB1.1(USB1) PHY需要被禁用,如果这个接口被使用并且内部时钟被选择。
Step5:PLL/PLLC0和PLL/PLLC1需要被设置在旁路模式(清空每个PLLC的PLL控制寄存器(PLLCTL)的PLLEN位为0)。
Step6:PLL/PLLC0和PLL/PLLC1需要被断电(设置每个PLLC的PLLCTL的PLLPWRD位为1)。
Step7:在RTC中配置期望的唤醒时间作为一个告警。
Step8:使用SYSCFG模块的PINMUX0寄存器的PINMUX0_31_28位配置DEEPSLEEP/RTC_ALARM管脚输出RTC_ALARM告警。当告警没有发生,这个管脚被驱动为低。
Step9:在SYSCFG模块的深休眠寄存器(DEEPSLEEP)中的SLEEPCOUNT位配置期望的延时。这个计数确定了在唤醒过程中深休眠逻辑释放时钟到设备之前的延时。:
Step10:设置DEEPSLEEP寄存器的SLEEPENABLE位为1.这会自动清空SLEEPCOMPLETE位。当DEEPSLEEP管脚为低时,设备进入深休眠模式。