新闻中心

EEPW首页>电源与新能源>设计应用> 一种基于SEP0611的电源管理驱动设计方案实现

一种基于SEP0611的电源管理驱动设计方案实现

作者: 时间:2014-02-09 来源:网络 收藏
em; line-height: 25px; text-align: justify; background-color: rgb(255, 255, 255); ">i2s_regs = NULL;

本文引用地址://m.amcfsurvey.com/article/226567.htm

return 0;

这段代码主要实现:

(1) 使能音频设备时钟;初始化音频相关的GPIO口;恢复音频设备硬件寄存器。

(2) 调用resume_console函数释放控制台信号量以唤醒控制台。

(3) 调用suspend_ops-》end.

其次suspend_finish函数完成与suspend_prepare函数相逆的操作:

(1) 唤醒进程,通过thaw_processses函数实现。

(2) 执行pm_notifier_call_chain函数,该函数调用notifier_call_chain函数来通知事件(完成唤醒)的到达。

(3) 从全局变量恢复控制台。

至此,系统完成唤醒,且系统中所有的设备驱动能正常工作。

驱动验证

1、验证环境和方法

驱动验证在江苏东大集成电路有限公司生产的功耗测试板上进行,该测试板编号为:SEUIC东集PCB602_DEMO0611,生产日期为 2011.05.13.测试时:CPU运行在800MHz,AHB总线运行在180MHz,DDR运行在400MHz;测试板采用4路LDO供电,4路分别为core、arm、ddr_phy、cpu_io.测试方法为:1) 用万用表的毫安档测试电流,每测一路,要将该路的0Ω电阻吹掉,将万用表串入电路,同时保证其他路的0Ω电阻连接。2)通过操作linux操作系统中 sysfs文件系统提供的接口让测试板进入休眠,即是在终端输入命令:echo mem 》 sys/power/state.3) 通过电源键(或RTC定时中断)唤醒系统,唤醒后验证设备驱动功能。

2、验证结果

测试的0Ω电阻上的电流值如表1所示。b-s(mA)列代表系统休眠之前某电阻上的电流值;i-s(mA)列代表系统休眠之时某电阻上的电流值;a- s(mA)列代表系统完成唤醒时某电阻上的电流值;最后一列除了包含了上面提到了4路外,还包含DDR颗粒(ddr_mem)和外设(io)这两路。

表1 各0Ω电阻上的电流值

一种基于SEP0611的电源管理驱动设计方案实现

phy、cpu_io这四路的电流下降为0,因为这4路电压都为0,而此时DDR颗粒和外设上分别有14mA和17mA的电流。在测量各路电流的同时,还采用稳压源供电,测试了板级总电流:系统休眠之前的板级总电流为287mA,休眠之时为23mA,完成唤醒时为284mA.

在系统完成唤醒后,测试了系统中所有设备驱动的工作情况:系统中的包括TIMER、CPU这样的系统设备工作正常;系统中的外设驱动包括UART、LCDC、I2C、I2S、SDIO、NAND、USB等都能正常工作。

结论

由于在系统休眠时4路LDO的掉电和除常开区外各路时钟的切断,系统休眠的电流降到了23mA.这个数值为系统运行时的8%,大大降低了系统的功耗。目前的休眠电流主要消耗在DDR颗粒和外部io上,这都有改进的空间,例如:可以通过配置DDR控制器优化DDR时序、打开DDR的低功耗模式;采用具有更低功耗的DDR3颗粒;可以检查整板电路,是否在测试板休眠时有回路导致电流泄漏;可以检查io电路,等等。总体来说,本设计实现了处理器板级的休眠和唤醒、所有设备驱动的休眠和唤醒;完成了驱动的设计;并在功耗测试板上验证了驱动的正确性。这对以后管理、降低平台的整板功耗有重要意义,对其他平台下的驱动也有一定的借鉴意义。


上一页 1 2 3 下一页

关键词:SEP0611电源管理

评论


相关推荐

技术专区

关闭