電源管理芯片WM8310在手持設備上的應用
1.2 外部EEPROM設計
WM8310上電的時候需要讀取外部EEPROM的數(shù)據(jù)來設定每一路DC-DC和LDO的初始輸出電壓以及上電時序,外部EEPROM芯片通過I2C接口與WM8310連接,上電后WM8310自動讀出EEPROM第一頁的32字節(jié)數(shù)據(jù),WM8310的寄存器長度是16位的,所以外部EEPROM芯片要選2字節(jié)寬度的。 WM8310與外部EEPROM的連接電路如圖2所示。本文引用地址:http://www.ex-cimer.com/article/177325.htm
這32字節(jié)初始化數(shù)據(jù)除了保存在外部EEPROM中,也可以保存在WM8310內(nèi)部的OTP存儲器中,在WM8310芯片出廠的時候就把數(shù)據(jù)寫進內(nèi)部的OTP存儲器,以后就不能改變了。WM8310上電的時候檢測SCLK2引腳,如果發(fā)現(xiàn)是高電平,則讀取EEPROM的數(shù)據(jù)作為初始化數(shù)據(jù)。如果已將數(shù)據(jù)燒寫到WM8310的OTP存儲器中,則將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擇一個接口與CPU進行通信控制。WM8310的IREFR引腳是控制接口模式選擇端,若IREFR引腳接低電平則選擇I2C接口,反之則選擇SPI接口。本方案中選擇把WM8310的I2C接口與S5PC100的I2C0接口通信,WM83 10控制接口如圖3所示。
2 驅動程序設計
2.1 流驅動接口
本方案中采用Windows CE 6.0操作系統(tǒng),WindowsCE 6.0操作系統(tǒng)的進程數(shù)由Windows CE 5.0的32個擴展到32 000個,每個進程的地址空間從32 MB擴展到2 GB,并且將代碼的運行權限分成用戶模式和內(nèi)核模式。驅動程序置于內(nèi)核模式,而應用程序置于用戶模式有助于整個環(huán)境更可靠、更安全地運行。
Windows CE 6.0的驅動模式分為本地驅動和流式驅動,流式驅動為操作系統(tǒng)提供了標準流接口函數(shù),如XXX_Init()、XXX_Open()、XXX_ Read()、XXX_Write()、XXX_Close()、XXX_IOControl()等。比如串口驅動、SPI接口驅動、I2C接口驅動等就是采用流式驅動。而本地驅動提供給操作系統(tǒng)的不是標準的接口,不同的設備接口也不一樣。常見的本地驅動有顯示驅動、觸摸屏驅動等。不管是本地驅動,還是流式驅動,所有驅動都是以DLL(動態(tài)鏈接庫)文件形式存在。
本方案中PMIC(WM8310)的驅動采用流式驅動。驅動實現(xiàn)的功能有系統(tǒng)開關機功能沒置、DC-DC與LDO動態(tài)電壓設置、背光亮度設置以及各路DC-DC與LDO的打開與關閉等。具體的實現(xiàn)過程則是通過調(diào)用I2C驅動讀寫WM8310的寄存器。所有的功能通過PMU_IOContrl()函數(shù)提供給操作系統(tǒng),PMU_IOControl()函數(shù)是一個標準的流式驅動函數(shù)。PMU_IOControl()函數(shù)的源代碼如下:
評論