WINCE基于PWM实现的背光驱动
********************************LoongEmbedded********************************
作者:LoongEmbedded(kandi)
時間:2010.12.16
類別:WINCE驅動開發
********************************LoongEmbedded********************************
?
硬件
CPU:S3C2443,背光IC:AT1312B,LCD: KD50G9-40NM-A3
系統
WINCE6.0
?
1背光驅動的技術分析
LCD顯示屏自身并不發光,為了可以清楚地看到LCD顯示屏的內容,需要一定的白光背光源。在中小尺寸LCD顯示屏中,一般采用白光LED作為顯示屏的背光源。白色LED背光電源由數個白光LED組成,如手機、數碼相機一般僅需要2到3個白光LED,而PDA和PMP則根據其顯示屏的面積,可能需要3到6個LED,我們的GPS產品的LCD是KD50G9-40NM-A3,就用了12個白色LED作為背光源。對背光驅動電路的要求是:
⑴ 滿足背光的亮度要求;
⑵ 整個顯示屏亮度均勻(不允許有某一部分較亮、另一部分較暗的情況);
⑶ 亮度可以方便地調節;
⑷ 驅動電路占PCB空間要小;
⑸ 工作效率高;
⑹ 綜合成本低;
⑺ 對系統其它模塊干擾小。
?
目前調光方式主要有兩種,一種是通過改變LED的直流工作電流的方式來調整亮度,例如,有的芯片通過設置內部的寄存器來直接設置LED的直流工作電流,從而達到不同的亮度級,這種方式的缺點是可能會產生色移。所謂白光LED,其實是利用一種作為其管芯的藍光LED所發出的短波長紫藍光,激發涂布于輸出光學透鏡內壁的熒光材料,進而產生波譜較寬的白色復合光。在非額定電流工作情況下,LED所產生的光譜會有變化,導致最終的白光有色移。
?
??? 而另一種方式就是PWM調光,利用人眼的視覺暫停原理,以一定的頻率和占空比來周期性的控制白光LED的導通電流在零電流到額定工作電流之間來回切換,從而調整亮度,這種調光方式就不會產生色移。在應用時,為了確保人眼看不到LED周期亮滅的情況,PWM調光的頻率一般要大于100Hz,否則會給別人閃爍的感覺。
?
?
2.PWM的原理
脈沖寬度調制(PWM),是英文“Pulse Width Modulation”的縮寫,簡稱脈寬調制,是利用微處理器的數字輸出(高電平或是低電平)來對模擬電路進行控制的一種非常有效的技術,廣泛應用在從測量、通信到功率控制與變換的許多領域中。
?
脈沖寬度調制(PWM)是一種對模擬信號電平進行數字編碼的方法。通過高分辨率計數器(比如S3C2443的計時器3)的使用,方波的占空比被調制用來對一個具體模擬信號的電平進行編碼。PWM信號仍然是數字的,因為在給定的任何時刻,滿幅值的直流供電要么完全有(ON),要么完全無(OFF)。電壓或電流源是以一種通(ON)或斷(OFF)的重復脈沖序列被加到模擬負載上去的。通的時候即是直流供電被加到負載上的時候,斷的時候即是供電被斷開的時候。只要帶寬足夠,任何模擬值都可以使用PWM進行編碼。多數負載(無論是電感性負載還是電容性負載)需要的調制頻率高于10Hz,通常調制頻率為1kHz到200kHz之間。
?
3.CPU和AT1312B的電路設計
我們產品的背光控制IC采用AT1312B,電路設計部分如下:
圖1
?
5.CPU PWM計時器
S3C2443有5個16位的定時器,其中定時器0、1、2和3有PWM功能,定時器4只是一個沒有輸出引腳的內部計數器。本系統用定時器3來輸出PWM信號來控制背光亮度,S3C2443中PWM定時器結構圖如下;
圖2
6.系統中代碼實現的部分
⑴PCLK、8位prescaler和clock diver值的確定
PCLK:
本系統的FCLK=400MHZ,PCLK=FCLK/6
?
8位prescaler的值:
見/Src/Common/Timer/timer_fixedtick.c下的OALTimerInit函數的下面的代碼
圖3
所以可得到prescaler value=14。
?
clock diver值:
我們在/Src/Oal/Oallib/init.c中實現InitPWMTimer3函數,在這個函數中選擇時鐘分隔值的代碼如下:
圖4
下圖是定時器配置寄存器中相關部分
圖5
結合圖6,可知定時器3的輸入時鐘源的頻率為PCLK/(2*(14+1))
圖6
所以可以算出定時器輸入時鐘頻率= PCLK/(2*(14+1))=400MHZ/(2*6*15)=20MHZ/9
⑵系統啟動的時候在/Src/Oal/Oallib/init.c中的函數OEMInit中調用InitPWMTimer3函數,這個函數體如下:
圖7
下圖是根據PCLK,prescaler和時鐘分割器的值來決定定時器輸入頻率計PWM頻率的計算示例圖
圖8
圖9
圖10
?
⑶背光驅動中控制背光的亮度
應用程序通過改變注冊表項的值,從而通過SetEvent的方式告訴背光驅動的IST,從而背光的IST來根據應用程序新的注冊表值來設置PWM的脈沖寬度來控制背光亮度,下面來看背光驅動的線程相關調控背光亮度部分的代碼如下:
?
背光驅動創建所需要的事件對象
圖11
背光驅動的IST相關部分
圖12
通過改變PWM脈沖寬度來調整背光亮度
圖13
?
?
?
脈沖寬度調制
http://baike.baidu.com/view/168039.htm
?
LCD背光控制的實現(PWM應用)(1)
http://hi.baidu.com/rwen2012/blog/item/f96a4dd17509bdd6562c8410.html
?
背光驅動電路的選擇策略和應用介紹
http://www.dzsc.com/news/html/2006-9-11/16817.html
?
總結
以上是生活随笔為你收集整理的WINCE基于PWM实现的背光驱动的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 黄金积存业务
- 下一篇: CE5.0 - eboot汇编Start