日韩欧美自拍在线观看-欧美精品在线看片一区二区-高清性视频一区二区播放-欧美日韩女优制服另类-国产精品久久久久久av蜜臀-成人在线黄色av网站-肥臀熟妇一区二区三区-亚洲视频在线播放老色-在线成人激情自拍视频

電源管理芯片WM8310在手持設(shè)備上的應(yīng)用方案

出處:toso9012 發(fā)布于:2012-02-15 10:26:19

  摘要: 介紹一種智能電源管理芯片WM8310的應(yīng)用方案,其應(yīng)用在以三星S5PC100移動(dòng)處理器為的手持設(shè)備上。文中給出了WM8310與S5PC100電源分配設(shè)計(jì)方法、上電時(shí)序,以及WM8310控制接口原理設(shè)計(jì)和基于Windows CE 6.0操作系統(tǒng)的驅(qū)動(dòng)程序設(shè)計(jì)。

  引言

  WM8310是Wolfson公司推出的電源管理集成電路(PMIC)產(chǎn)品,具有完全可編程化可定制化和優(yōu)良的性能。WM8310在7 mm×7 mm的小尺寸上集成了ADC、實(shí)時(shí)時(shí)鐘、低壓差穩(wěn)壓器、降壓穩(wěn)壓器以及用于背光的升壓穩(wěn)壓器,提供了一個(gè)高集成度的PMIC解決方案。WM8310具有尺寸小、功能強(qiáng)等優(yōu)點(diǎn),被多家手機(jī)廠商以及手持設(shè)備商采用,廣泛用于移動(dòng)電話、導(dǎo)航設(shè)備以及媒體播放器等消費(fèi)電子產(chǎn)品。

  S5PC100是三星公司發(fā)布的一款A(yù)RM CortexA8內(nèi)核的移動(dòng)處理器,主頻高達(dá)833 MHz.S5PC100處理器采用64位內(nèi)部總線構(gòu)架,內(nèi)含 32/32 KB數(shù)據(jù)/指令緩存、256 KB二級(jí)緩存。它的構(gòu)造基于三星的45 nm LP低功耗工藝技術(shù)S5PC100還包含強(qiáng)大的2D和3D硬件加速器。

  1 硬件設(shè)計(jì)

  1.1 S5PC100電源分配與上電時(shí)序

  WM8310具有4路DCDC穩(wěn)壓器以及13路LDO穩(wěn)壓器。其中,2路DCDC同步降壓穩(wěn)壓器輸出電流達(dá)1.2 A,并具有硬件DVS(動(dòng)態(tài)電壓調(diào)節(jié))功能;1路升壓DCDC穩(wěn)壓器輸出電壓達(dá)30 V,可驅(qū)動(dòng)多個(gè)串行白光LED.還包括6路標(biāo)準(zhǔn)LDO穩(wěn)壓器和4路低噪聲LDO穩(wěn)壓器,另有3路低功耗LDO用于內(nèi)部電路。

  WM8310的DCDC1與DCDC2具有DVS(動(dòng)態(tài)電壓調(diào)試)功能,可以通過外部GPIO來切換輸出電壓,當(dāng)然每一路DCDC和LDO都可以通過I2C控制接口來調(diào)節(jié)輸出電壓。將DCDC1與DCDC2分別接到S5PC100的內(nèi)核電源(即VCC_ARM和VCC_INT),這兩個(gè)內(nèi)核電壓可以根據(jù)當(dāng)前處理器的運(yùn)行頻率自動(dòng)調(diào)節(jié)輸出電壓的大小并減小系統(tǒng)的功耗。DCDC3給DDR內(nèi)存和S5PC100的內(nèi)存總線接口電路供電。DCDC4用于LCD屏的背光驅(qū)動(dòng)。其他各路LDO給S5PC100的I/O電路供電。

  S5PC100的上電時(shí)序較為嚴(yán)格,如圖1所示。為了保證處理器每次上電能正確運(yùn)行,電源設(shè)計(jì)要滿足其上電時(shí)序要求。WM8310可以為每一路DCDC以及LDO分配時(shí)序,非常容易滿足S5PC100的上電時(shí)序要求。

圖1 S5PC100上電時(shí)序

圖1 S5PC100上電時(shí)序

  圖1中的時(shí)間大小如表1所列。

  它描述了WM8310的各路輸出與S5PC100電源的連接以及每一路電源的上電時(shí)序。

表1 S5PC100的時(shí)間大小

表1 S5PC100的時(shí)間大小

  1.2 外部EEPROM設(shè)計(jì)

  WM8310上電的時(shí)候需要讀取外部EEPROM的數(shù)據(jù)來設(shè)定每一路DCDC和LDO的初始輸出電壓以及上電時(shí)序,外部EEPROM芯片通過I2C接口與WM8310連接,上電后WM8310自動(dòng)讀出EEPROM頁的32字節(jié)數(shù)據(jù),WM8310的寄存器長(zhǎng)度是16位的,所以外部EEPROM芯片要選2字節(jié)寬度的。WM8310與外部EEPROM的連接電路如圖2所示。

圖2 WM8310與外部EEPROM的連接電路

圖2 WM8310與外部EEPROM的連接電路

  這32字節(jié)初始化數(shù)據(jù)除了保存在外部EEPROM中,也可以保存在WM8310內(nèi)部的OTP存儲(chǔ)器中,在WM8310芯片出廠的時(shí)候就把數(shù)據(jù)寫進(jìn)內(nèi)部的OTP存儲(chǔ)器,以后就不能改變了。WM8310上電的時(shí)候檢測(cè)SCLK2引腳,如果發(fā)現(xiàn)是高電平,則讀取EEPROM的數(shù)據(jù)作為初始化數(shù)據(jù)。如果已將數(shù)據(jù)燒寫到WM8310的OTP存儲(chǔ)器中,則將SCLK2與SDA2引腳懸空。

  本方案中WM8310的32字節(jié)初始化數(shù)據(jù)為:

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

  1.3 WM8310與S5PC100的控制接口

  WM8310具有兩種控制接口,一種是I2C接口,另一種是SPI接口??梢赃x擇一個(gè)接口與CPU進(jìn)行通信控制。WM8310的IREFR引腳是控制接口模式選擇端,若IREFR引腳接低電平則選擇I2C接口,反之則選擇SPI接口。本方案中選擇把WM8310的I2C接口與S5PC100的I2C0接口通信,WM8310控制接口如圖3所示。

圖3 WM8310控制接口2驅(qū)動(dòng)程序設(shè)計(jì)

圖3 WM8310控制接口2驅(qū)動(dòng)程序設(shè)計(jì)

  2.驅(qū)動(dòng)程序設(shè)計(jì)

  2.1 流驅(qū)動(dòng)接口

  本方案中采用Windows CE 6.0操作系統(tǒng),Windows CE 6.0操作系統(tǒng)的進(jìn)程數(shù)由Windows CE 5.0的32個(gè)擴(kuò)展到32 000個(gè),每個(gè)進(jìn)程的地址空間從32 MB擴(kuò)展到2 GB,并且將代碼的運(yùn)行權(quán)限分成用戶模式和內(nèi)核模式。驅(qū)動(dòng)程序置于內(nèi)核模式,而應(yīng)用程序置于用戶模式有助于整個(gè)環(huán)境更可靠、更安全地運(yùn)行。

  Windows CE 6.0的驅(qū)動(dòng)模式分為本地驅(qū)動(dòng)和流式驅(qū)動(dòng),流式驅(qū)動(dòng)為操作系統(tǒng)提供了標(biāo)準(zhǔn)流接口函數(shù),如XXX_Init()、XXX_Open()、XXX_Read()、XXX_Write()、XXX_Close()、XXX_IOControl()等。比如串口驅(qū)動(dòng)、SPI接口驅(qū)動(dòng)、I2C接口驅(qū)動(dòng)等就是采用流式驅(qū)動(dòng)。而本地驅(qū)動(dòng)提供給操作系統(tǒng)的不是標(biāo)準(zhǔn)的接口,不同的設(shè)備接口也不一樣。常見的本地驅(qū)動(dòng)有顯示驅(qū)動(dòng)、觸摸屏驅(qū)動(dòng)等。不管是本地驅(qū)動(dòng),還是流式驅(qū)動(dòng),所有驅(qū)動(dòng)都是以DLL(動(dòng)態(tài)鏈接庫(kù))文件形式存在。

  本方案中PMIC(WM8310)的驅(qū)動(dòng)采用流式驅(qū)動(dòng)。驅(qū)動(dòng)實(shí)現(xiàn)的功能有系統(tǒng)開關(guān)機(jī)功能設(shè)置、DCDC與LDO動(dòng)態(tài)電壓設(shè)置、背光亮度設(shè)置以及各路DCDC與LDO的打開與關(guān)閉等。具體的實(shí)現(xiàn)過程則是通過調(diào)用I2C驅(qū)動(dòng)讀寫WM8310的寄存器。所有的功能通過PMU_IOControl()函數(shù)提供給操作系統(tǒng),PMU_IOControl()函數(shù)是一個(gè)標(biāo)準(zhǔn)的流式驅(qū)動(dòng)函數(shù)。PMU_IOControl()函數(shù)的源代碼如下:

  BOOL PMU_IOControl(DWORD pContext, DWORD dwCode, PBYTE pBufIn, DWORD dwLenIn, PBYTE pBufOut, DWORD dwLenOut, PDWORD pdwActualOut){

  BOOL RetVal=TRUE;

  DWORD dwIndex;

  if (NULL==pBufIn) {//檢查參數(shù)是否合法

  SetLastError (ERROR_INVALID_PARAMETER);

  RetVal=FALSE;

  DEBUGMSG (ZONE_ERROR, (TEXT("Invalid parameter\\r\\n")));

  return(RetVal);

  }

  switch(dwCode){

  case IOCTL_PMU_REGULATOR_ON://打開DC DC/LDO

  if((PMIC_Regulator_On((PMU_IO_DESC *)pBufIn))==FALSE){

  SetLastError(ERROR_TIMEOUT);

  RetVal=FALSE;

  }

  break;

  case IOCTL_PMU_REGULATOR_OFF://關(guān)閉

  DC DC/LDO

  if((PMIC_Regulator_Off((PMU_IO_DESC *)pBufIn))==FALSE){

  SetLastError(ERROR_TIMEOUT);

  RetVal=FALSE;

  }

  break;

  case IOCTL_PMU_SET_REGULATOR_VOLTAGE://設(shè)置DC DC/LDO輸出電壓

  if((PMIC_Set_Regulator_Voltage((PMU_IO_DESC *)pBufIn))==FALSE){

  SetLastError(ERROR_TIMEOUT);

  RetVal=FALSE;

  }

  break;

  case IOCTL_PMU_SET_BACKLIGHT_LEVEL://設(shè)置背光亮度等級(jí)

  if((PMIC_Set_Backlight_Level((PMU_IO_DESC *)pBufIn))==FALSE){

  SetLastError(ERROR_TIMEOUT);

  RetVal=FALSE;

  }

  break;

  case IOCTL_PMU_TURN_OFF://關(guān)閉設(shè)備電源

  PMIC_Turn_Off();

  break;

  case IOCTL_PMU_IS_BACKLIGHT_ON://查詢背光是否打開

  *pBufOut=PMIC_Is_Backlight_On();

  break;

  }

  return(RetVal);

  }

  2.2 PMIC(WM8310)初始化

  PMIC(WM8310)初始化主要完成開機(jī)鍵的時(shí)間設(shè)置,打開背光設(shè)置默認(rèn)亮度,設(shè)置HWC功能實(shí)現(xiàn)CPU休眠喚醒電源控制。PMIC(WM8310)初始化函數(shù)為PMIC_Init(),源代碼如下:

  DWORD PMIC_Init(HANDLE hIIC){

  DWORD r, dwErr=0;

  PMU_IO_DESC pmic_data;

  hI2C=hIIC;//I2C驅(qū)動(dòng)句柄

  wm831x_reg_unlock();

  wm831x_set_bits(WM831X_ON_PIN_CONTROL, 0x03ff, 0x0212); //設(shè)置關(guān)機(jī)時(shí)間為4s

  wm831x_reg_lock();

  wm831x_isink_enable(WM831X_CS1_BASE);//打開背光電流控制

  dwErr=wm831x_isink_set_current(WM831X_CS1_BASE, 6889);//設(shè)置默認(rèn)背光亮度

  pmic_data.RegulatorIndex=VCC_BL;

  pmic_data.pData=0;

  pmic_data.Count=0;

  if(!PMIC_Regulator_On(&pmic_data))dwErr=1;//打開背光設(shè)置HWC功能實(shí)現(xiàn)CPU休眠喚醒電源控制

  wm831x_buckv_enable_hwc(WM831X_DC1_BASE,WM831X_DCDC_HWC_MODE_DISABLED,WM831X_DCDC_HWC_SRC_HC1);

  wm831x_gpio_direction_in(0);//設(shè)置WM8310GPIO1 為輸入

  wm831x_gpio_configuration(0, WM831X_GPN_POL_MASK, 0);//設(shè)置WM8310GPIO1 為低電平有效

  wm831x_gpio_set_function(0, 0x0c);//設(shè)置WM8310GPIO1為HW Control1 input功能

  return dwErr;

  }

  2.3 PMIC(WM8310)驅(qū)動(dòng)調(diào)用示例

  PMIC(WM8310)的驅(qū)動(dòng)采用流式驅(qū)動(dòng),對(duì)其操作的方法就像操作文件的方法一樣非常方便。所有功能都通過調(diào)用DeviceIoControl()來實(shí)現(xiàn)。在此之前要先打開設(shè)備,代碼如下:

  static HANDLE hPMIC;//PMIC設(shè)備句柄

  hPMIC=CreateFile(PMIC_DRIVER_PORT,GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_EXISTING, 0, 0);

  if ( INVALID_HANDLE_VALUE==hPMIC ) {

  dwErr=GetLastError();

  return FALSE;

  }

  然后將CreateFile()返回的設(shè)備句柄傳遞給DeviceIoControl()來實(shí)現(xiàn)功能,例如實(shí)現(xiàn)調(diào)整背光亮度等級(jí)的代碼如下:

  DWORD dwErr, bytes, dat;

  PMU_IO_DESC pmic_data;

  dat=BACKLIGHT_VALUE10;//背光等級(jí)10

  pmic_data.RegulatorIndex=VCC_BL;

  pmic_data.pData=&dat;

  pmic_data.Count=1;

  if ( !DeviceIoControl(hPMIC,IOCTL_PMU_SET_BACKLIGHT_LEVEL, &pmic_data, sizeof(PMU_IO_DESC), NULL, 0, &bytes, NULL) ) {

  dwErr=GetLastError();

  return FALSE;

  }

  else{

  return TRUE;//調(diào)整成功

  }

  結(jié)語

  本方案利用WM8310的可編程及高性能的特點(diǎn),將其用于手持設(shè)備的CPU供電,結(jié)合Windows CE 6.0操作系統(tǒng)實(shí)現(xiàn)了動(dòng)態(tài)電壓頻率調(diào)節(jié)、背光光控制以及休眠喚醒等功能,極大地降低了系統(tǒng)的功耗,延長(zhǎng)了手持設(shè)備的工作時(shí)間,在相同的工作時(shí)間要求下減小了電池尺寸的要求。并且WM8310的高度集成、芯片面積小等特點(diǎn)大大地減小了手持設(shè)備PCB板尺寸,使手持設(shè)備能做到更小化、更輕便。本方案已經(jīng)成功應(yīng)用于中海達(dá)測(cè)繪儀器有限公司的手持設(shè)備中,經(jīng)過長(zhǎng)時(shí)間的使用工作穩(wěn)定、可靠。該方案所帶來的優(yōu)點(diǎn)使產(chǎn)品的競(jìng)爭(zhēng)力有很大提高。

關(guān)鍵詞:電源管理芯片WM8310在手持設(shè)備上的應(yīng)用方案

版權(quán)與免責(zé)聲明

凡本網(wǎng)注明“出處:維庫(kù)電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫(kù)電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫(kù)電子市場(chǎng)網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。

如涉及作品內(nèi)容、版權(quán)等問題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機(jī)號(hào)碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買家服務(wù):
賣家服務(wù):
技術(shù)客服:

0571-85317607

網(wǎng)站技術(shù)支持

13606545031

客服在線時(shí)間周一至周五
9:00-17:30

關(guān)注官方微信號(hào),
第一時(shí)間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫(kù)提出的寶貴意見,您的參與是維庫(kù)提升服務(wù)的動(dòng)力!意見一經(jīng)采納,將有感恩紅包奉上哦!