電源管理芯片WM8310在手持設備上的應用
1.2 外部EEPROM設計
WM8310上電的時候需要讀取外部EEPROM的數據來設定每一路DC-DC和LDO的初始輸出電壓以及上電時序,外部EEPROM芯片通過I2C接口與WM8310連接,上電后WM8310自動讀出EEPROM第一頁的32字節數據,WM8310的寄存器長度是16位的,所以外部EEPROM芯片要選2字節寬度的。 WM8310與外部EEPROM的連接電路如圖2所示。本文引用地址:http://www.104case.com/article/177325.htm
這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接口通信,WM83 10控制接口如圖3所示。
2 驅動程序設計
2.1 流驅動接口
本方案中采用Windows CE 6.0操作系統,WindowsCE 6.0操作系統的進程數由Windows CE 5.0的32個擴展到32 000個,每個進程的地址空間從32 MB擴展到2 GB,并且將代碼的運行權限分成用戶模式和內核模式。驅動程序置于內核模式,而應用程序置于用戶模式有助于整個環境更可靠、更安全地運行。
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_IOContrl()函數提供給操作系統,PMU_IOControl()函數是一個標準的流式驅動函數。PMU_IOControl()函數的源代碼如下:
評論