关键字:MCIMX31 功耗 睡眠/唤醒
参考文档:<<MCIMX31 and MCIMX31L Applications Processors Reference Manual>>
《Freescale Semiconductor Chip Errata>>
MCIMX31在功耗方面费了很多心思,配合MC13783有很不错的表现。
Freescale的手册上面说,MCIMX31有 Run,Wait,Doze,State Retention(ST)和Deep Sleep模式。从手册上面看是Deep Sleep是最"深"的睡眠模式,整个ARM 平台都被关闭。在进入这个模式以前很多运行关键数据都需要被保存,在CPU被唤醒的时候恢复。但综观Freescale提供的Linux的BSP和Redboot代码,并没有发现这部分代码。(有有兴趣的大家可以以前研究一下这个)。 所以我们在MX31 Linux平台下只能进入CPU的State Retention模式来实现最深的睡眠。

图1

图二
进入睡眠,关键是要能被唤醒。MCIMX31的唤醒是很有讲究的,需要CPU配合MC13783来工作。对比PXA2xx睡眠/唤醒的步骤,MC13783真是很能干。但同时也有很多的陷阱。比如对比图一和图二,这是成都莱得科技(http://www.nidetech.com/)出的两个版本的MCIMX31的板卡。大家仔细对照CPU手册的说明,发现图一PMIC_PWRRDY的使用是不正确的。还有很多比如MC13783在不同的CPU模式/频率下面提供不同的CPU电压,甚至关闭CPU电压,都需要我们非常细心的设计,要不然你的CPU能“睡”未必能“醒”或者睡了功耗还很高哦。
关于CPU功耗的微调,有兴趣的大家可以一起研究。
成都莱得科技有限公司开发中心--软件工程师开发心得
成都莱得科技有限公司--是一家专注于嵌入式领域,为客户提供定制服务的高科技公司。根据客户的需求,为客户提供一站式服务:总体解决方案,嵌入式平台硬件设计,底层驱动设计(BSP),应用软件设计,产品生产。专注于freescale,intel,marvell的嵌入式ARM的开发。http://www.nidetech.com
>