日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

WINCE基于PWM实现的背光驱动

發布時間:2025/4/16 编程问答 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 WINCE基于PWM实现的背光驱动 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

********************************LoongEmbedded********************************

作者:LoongEmbedded(kandi)

時間:2010.12.16

類別:WINCE驅動開發

********************************LoongEmbedded********************************

?

硬件

CPU:S3C2443,背光IC:AT1312BLCD: KD50G9-40NM-A3

系統

WINCE6.0

?

1背光驅動的技術分析

LCD顯示屏自身并不發光,為了可以清楚地看到LCD顯示屏的內容,需要一定的白光背光源。在中小尺寸LCD顯示屏中,一般采用白光LED作為顯示屏的背光源。白色LED背光電源由數個白光LED組成,如手機、數碼相機一般僅需要23個白光LED,而PDAPMP則根據其顯示屏的面積,可能需要36LED,我們的GPS產品的LCDKD50G9-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,通常調制頻率為1kHz200kHz之間。

?

3.CPUAT1312B的電路設計

我們產品的背光控制IC采用AT1312B,電路設計部分如下:

1

?

5.CPU PWM計時器

S3C2443516位的定時器,其中定時器0123PWM功能,定時器4只是一個沒有輸出引腳的內部計數器。本系統用定時器3來輸出PWM信號來控制背光亮度,S3C2443PWM定時器結構圖如下;

2

6.系統中代碼實現的部分

PCLK8prescalerclock diver值的確定

PCLK:

本系統的FCLK=400MHZPCLK=FCLK/6

?

8prescaler的值:

/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

下圖是根據PCLKprescaler和時鐘分割器的值來決定定時器輸入頻率計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实现的背光驱动的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。