APP下载

电源管理芯片WM8310在手持设备上的应用※

2012-06-25陈伟

单片机与嵌入式系统应用 2012年1期
关键词:稳压器流式内核

陈伟

(广州市中海达测绘仪器有限公司 产品研发中心,广州 511400)

陈伟(工程师),主要从事手持设备研发工作。

引 言

WM8310是Wolfson公司推出的电源管理集成电路(PMIC)产品,具有完全可编程化可定制化和优良的性能。WM8310在7mm×7mm的小尺寸上集成了ADC、实时时钟、低压差稳压器、降压稳压器以及用于背光的升压稳压器,提供了一个高集成度的PMIC解决方案。WM8310具有尺寸小、功能强等优点,被多家手机厂商以及手持设备商采用,广泛用于移动电话、导航设备以及媒体播放器等消费电子产品。

S5PC100是三星公司发布的一款ARM Cortex-A8内核的移动处理器,主频高达833MHz。S5PC100处理器采用64位内部总线构架,内含32/32KB数据/指令一级缓存、256KB二级缓存。它的构造基于三星的45nm LP低功耗工艺技术S5PC100还包含强大的2D和3D硬件加速器。

1 硬件设计

1.1 S5PC100电源分配与上电时序

WM8310具有4路DC-DC稳压器以及13路LDO稳压器。其中,2路DC-DC同步降压稳压器输出电流达1.2 A,并具有硬件DVS(动态电压调节)功能;1路升压DCDC稳压器输出电压达30V,可驱动多个串行白光LED。还包括6路标准LDO稳压器和4路低噪声LDO稳压器,另有3路低功耗LDO用于内部电路。

WM8310的DCDC1与DCDC2具有DVS(动态电压调试)功能,可以通过外部GPIO来切换输出电压,当然每一路DC-DC和LDO都可以通过I2C控制接口来调节输出电压。将DCDC1与DCDC2分别接到S5PC100的内核电源(即VCC_ARM和VCC_INT),这两个内核电压可以根据当前处理器的运行频率自动调节输出电压的大小并减小系统的功耗。DCDC3给DDR内存和S5PC100的内存总线接口电路供电。DCDC4用于LCD屏的背光驱动。其他各路LDO给S5PC100的I/O电路供电。

S5PC100的上电时序较为严格,如图1所示。为了保证处理器每次上电能正确运行,电源设计要满足其上电时序要求。WM8310可以为每一路DC-DC以及LDO分配时序,非常容易满足S5PC100的上电时序要求。

图1中的时间大小如表1所列。

它描述了WM8310的各路输出与S5PC100电源的连接以及每一路电源的上电时序。

图1 S5PC100上电时序

表1 S5PC100的时间大小

1.2 外部EEPROM设计

WM8310上电的时候需要读取外部EEPROM的数据来设定每一路DC-DC和LDO的初始输出电压以及上电时序,外部EEPROM芯片通过I2C接口与WM8310连接,上电后WM8310自动读出EEPROM第一页的32字节数据,WM8310的寄存器长度是16位的,所以外部EEPROM芯片要选2字节宽度的。WM8310与外部EEPROM的连接电路如图2所示。

图2 WM8310与外部EEPROM的连接电路

这32字节初始化数据除了保存在外部EEPROM中,也可以保存在WM8310内部的OTP存储器中,在WM8310芯片出厂的时候就把数据写进内部的OTP存储器,以后就不能改变了。WM8310上电的时候检测SCLK2引脚,如果发现是高电平,则读取EEPROM的数据作为初始化数据。如果已将数据烧写到WM8310的OTP存储器中,则将SCLK2与SDA2引脚悬空。

本方案中WM8310的32字节初始化数据为:

0x7FFE,0x43BE,0x433E,0x602A,0x267F,0x6666,0x7F7F,0x7A7D,0x7D78,0x0000,0xA40C,0xA400,0xA400,0xA401,0xA406,0xA40A。

1.3 WM8310与S5PC100的控制接口

WM8310具有两种控制接口,一种是I2C接口,另一种是SPI接口。可以选择一个接口与CPU进行通信控制。WM8310的IREFR引脚是控制接口模式选择端,若IREFR引脚接低电平则选择I2C接口,反之则选择SPI接口。本方案中选择把WM8310的I2C接口与S5PC100的I2C0接口通信,WM8310控制接口如图3所示。

图3 WM8310控制接口

2 驱动程序设计

2.1 流驱动接口

本方案中采用 Windows CE 6.0操作系统,Windows CE 6.0操作系统的进程数由Windows CE 5.0的32个扩展到32 000个,每个进程的地址空间从32MB扩展到2GB,并且将代码的运行权限分成用户模式和内核模式。驱动程序置于内核模式,而应用程序置于用户模式有助于整个环境更可靠、更安全地运行。

Windows CE 6.0的驱动模式分为本地驱动和流式驱动,流式驱动为操作系统提供了标准流接口函数,如XXX_Init()、XXX_Open()、XXX_Read()、XXX_Write()、XXX_Close()、XXX_IOControl()等。比如串口驱动、SPI接口驱动、I2C接口驱动等就是采用流式驱动。而本地驱动提供给操作系统的不是标准的接口,不同的设备接口也不一样。常见的本地驱动有显示驱动、触摸屏驱动等。不管是本地驱动,还是流式驱动,所有驱动都是以DLL(动态链接库)文件形式存在。

本方案中PMIC(WM8310)的驱动采用流式驱动。驱动实现的功能有系统开关机功能设置、DC-DC与LDO动态电压设置、背光亮度设置以及各路DC-DC与LDO的打开与关闭等。具体的实现过程则是通过调用I2C驱动读写WM8310的寄存器。所有的功能通过PMU_IOControl()函数提供给操作系统,PMU_IOControl()函数是一个标准的流式驱动函数。PMU_IOControl()函数的源代码如下:

2.2 PMIC(WM8310)初始化

PMIC(WM8310)初始化主要完成开机键的时间设置,打开背光设置默认亮度,设置HWC功能实现CPU休眠唤醒电源控制。PMIC(WM8310)初始化函数为PMIC_Init(),源代码如下:

2.3 PMIC(WM8310)驱动调用示例

PMIC(WM8310)的驱动采用流式驱动,对其操作的方法就像操作文件的方法一样非常方便。所有功能都通过调用DeviceIoControl()来实现。在此之前要先打开设备,代码如下:

然后将CreateFile()返回的设备句柄传递给DeviceIoControl()来实现功能,例如实现调整背光亮度等级的代码如下:

结 语

本方案利用WM8310的可编程及高性能的特点,将其用于手持设备的CPU供电,结合Windows CE 6.0操作系统实现了动态电压频率调节、背光光控制以及休眠唤醒等功能,极大地降低了系统的功耗,延长了手持设备的工作时间,在相同的工作时间要求下减小了电池尺寸的要求。并且WM8310的高度集成、芯片面积小等特点大大地减小了手持设备PCB板尺寸,使手持设备能做到更小化、更轻便。本方案已经成功应用于中海达测绘仪器有限公司的手持设备中,经过长时间的使用工作稳定、可靠。该方案所带来的优点使产品的竞争力有很大提高。

编者注:本文为期刊缩略版,全文见本刊网站(www.mesnet.com.cn)。

[1]何宗键.Windows CE嵌入式系统[M].北京:北京航空航天大学出版社,2006.

[2]Samsung Electronics. User's manual (SMDK S5PC110 Rev0.1)[EB/OL].[2011-08].http://www.samsungsemi.com/.

[3]Wolfson Microelectronics.WM8310User's manual REV3.0[EB/OL].[2011-08].http://www.wolfsonmicro.com.

猜你喜欢

稳压器流式内核
强化『高新』内核 打造农业『硅谷』
辐流式二沉池的结构优化研究
低压差线性稳压器专利技术综述
基于嵌入式Linux内核的自恢复设计
Linux内核mmap保护机制研究
微球测速聚类分析的流式液路稳定性评估
微生物内核 生态型农资
信号UPS与稳压器配套连接问题研究
自调流式喷管型ICD的设计与数值验证
流式在线直播视频的采集