LCD控制器驅(qū)動的24位TFT真彩屏接口設(shè)計
引言
在嵌入式設(shè)計中常常會使用lcd屏,現(xiàn)在常用的屏大部分都是高性能的。因為lcd屏的生產(chǎn)廠商很多,標(biāo)準(zhǔn)也不統(tǒng)一,lcd屏往往不能與lcd控制器無粘合連接,所以在使用lcd屏?xí)r,廠家還會推薦使用其專為lcd屏是設(shè)計的時序芯片,例如,sharp的lcd lq035q7db02配套的控制器為lz9fc22;日本的lcd屏是16位色的,本身價格很高,控制器成本也非常高,性能卻不見得好,采用高性能的24位真彩色屏是比較理想的,但接口邏輯需要重新設(shè)計。
1 rgb565-rgb888的轉(zhuǎn)換
以友達(dá)光電auo生產(chǎn)的a06qu01[1]為例,這是一種24位的tft真彩屏,分辨率為320×240,每個象素由rgb888表示,其控制時序如圖1所示,lcd要求的時序由幀同步(vsync)、行同步(hsysnc)、比特時鐘(dclk)及數(shù)據(jù)(data[0:7])構(gòu)成,幀同步和行同步指示每一幀和每一行的開始。a06qu01每幀240行,每行320個象素,每個像素由依次產(chǎn)生的8b紅、8b綠、8b藍(lán)(r1,g2,b3,r4,g5,b6…)構(gòu)成,所以稱為rgb888。
以pxa25x為代表的嵌入式處理器擁有一個lcd控制器,可以將這個控制器配置為最高16位的tft lcd屏控制器,其控制時序如圖1所示,lcd要求的時序由幀同步(vsync)、行同步(hsysnc)、點時鐘(pclk)及數(shù)據(jù)(data[0:15]構(gòu)成,幀同步和行同步指示每一幀和每一行的開始。對于a06qu01,每幀將有240行,每行有320個像素,每個像素由5b紅、6b綠、5b藍(lán)構(gòu)成16位數(shù)據(jù),稱為rgb565。
將rgb565轉(zhuǎn)換為rgb888要解決2個問題:
1)比特時鐘3倍頻。lcd控制器每一個像素用一個時鐘1次送出16b數(shù)據(jù),而lcd屏每個像素需要3個時鐘,每次獲得8b。這樣就需要產(chǎn)生1個3倍于點時鐘pclk的時鐘。
2)16b到24b數(shù)據(jù)分解。在lcd控制器送出16b數(shù)據(jù)時,需要緩存,并分解出rgb信號分別送出,5b紅、6b綠、5b藍(lán)構(gòu)成16位數(shù)據(jù)可以采用補0的方法,構(gòu)成8b紅、8b綠、8b藍(lán)。數(shù)據(jù)高位補0時色彩較柔和,低位補0時彩色較艷麗。
通常情況下,使用模擬鎖相環(huán)技術(shù)可以實現(xiàn)均勻倍頻,在這個設(shè)計中,3倍頻時鐘與rgb數(shù)據(jù)必須同步,否則會出現(xiàn)顏色錯位;同時鎖相環(huán)還需要數(shù)據(jù)分解電路配合使用,這樣一個數(shù)字和模擬混合的電路會增加成本,因而特別設(shè)計使用了數(shù)字電路實現(xiàn)非均勻3倍頻。具體方案是:使用一個大于6小于7倍的lcd屏比特時鐘作為cpld的主控制時鐘,lcd屏的時鐘頻率約為7m赫茲,所以選擇cpld的主控制時鐘頻率為48m赫茲。如圖1所示,pclk為控制器輸出的點時鐘,pdata為rbg565數(shù)據(jù),pclkout和pdataout是送往lcd的信號,x7pclk為cpld的定時時鐘,在pclk上升沿將pdata存入緩沖器pdatabuf,并將內(nèi)部狀態(tài)位datavalid置位,在x7pclk的上升沿,如果檢測到datavalid為高,則使pclkout為低,將緩沖器中的數(shù)據(jù)取出高5位紅色信號,補零后送到pdataout,并將datavalid置為低,在下一個x7pclk的上升沿將pclkout置高,8b數(shù)據(jù)送出到lcd屏。使用這種方法依次將綠色及藍(lán)色信號送出,在藍(lán)色信號送出后,保持pclkout為高,直到下一個datavalid為高,進(jìn)入下一次轉(zhuǎn)換,從圖1中可以看出,數(shù)字3倍頻信號pclkout不是均勻的,藍(lán)色數(shù)據(jù)時鐘的占空比不是50%。根據(jù)lcd屏數(shù)據(jù)手冊的要求,pclkout的占空比變化容許的范圍是40%-60%,因而只要調(diào)整好x7pclk的時鐘頻率,還是比較容易產(chǎn)生符合占空比要求的pclkout時鐘的,lcd屏正常工作還需要幀同步(vsync)和行同步(hsysnc)信號,這些信號可以由軟件驅(qū)動程序編程產(chǎn)生。
2 lcd背光及l(fā)cd偏置的電源產(chǎn)生器
lcd屏需要特殊的供電,用于背景照明和lcd偏置,現(xiàn)在使用的小尺寸lcd大多數(shù)使用led作為背光,以及-10v的偏置電壓,本設(shè)計使用的lcd屏是2路各4個白光led串聯(lián),每路需要的供電電壓約為10v,電流為20ma。lcd偏置電壓為-10v,電流為3-5ma。這些電源利用lcd控制器內(nèi)部的電源控制器實現(xiàn)。如圖2所示,由l1、v1構(gòu)成升壓型dc-dc轉(zhuǎn)換器,l1為高頻功率電感,v1為高頻小功率開關(guān)晶體管。c4和r1構(gòu)成的微分電路可以提高v1的導(dǎo)通和關(guān)閉速度,有利于提高電源效率,v1由脈沖寬度調(diào)制信號控制,在導(dǎo)通期間使用l1存儲能量,在關(guān)閉時電感向負(fù)載釋放能量,這樣v1的集電極上生成高壓脈沖信號,這個信號經(jīng)過d1、c3和c6整流濾波后得到用于led供電正電壓,同樣經(jīng)過c2隔直流后再整流濾波得到用于lcd偏置的負(fù)電壓,注意,電容c7是正端接地的。led電流限制使用圖3所示的電路,v3和v4為led驅(qū)動管,v2為電流采樣管,v2、v3、v4是3個型號相同的晶體管。這3個晶體管的基級相連,因而基極電壓相等。因為型號相同,所以基極到發(fā)射極電壓近似相等,于是,r3、r6、r7上的壓降近似相等,這樣r3、r4上的電流被轉(zhuǎn)換為r2上的反饋電壓??刂破鞲鶕?jù)反饋電壓自動調(diào)整圖2中的pwm控制信號的占空比,從而改變輸出led供電電壓,使反饋電壓穩(wěn)定在0.6v,通過led的電流穩(wěn)定在22ma,lcd偏置電壓大約穩(wěn)定在-10v。
3 數(shù)字倍頻及數(shù)據(jù)分解實現(xiàn)
rgb565-rgb888轉(zhuǎn)換器用xc9536實現(xiàn),如圖4所示,來自lcd控制器的信號為:16b數(shù)據(jù)l_dd0..15、同步信號l_fclk及l(fā)_lclk、點時鐘信號l_pclk,輸出到lcd屏的信號為:8b數(shù)據(jù)信號lcd_d0..7、同步信號lcd_vsync及l(fā)cd_hsync、時鐘信號lcd_dclk。x7clk來自于48m赫茲的晶體振蕩器,使用verilog hdl開發(fā)。如果連接無誤,則上電后加載帶有tft屏驅(qū)動的嵌入式linux內(nèi)核,一般在lcd屏左上角能看到企鵝圖案,如果實際顯示的圖案位置和色彩不正確,則需要根據(jù)實際看到的圖像調(diào)整lcd控制寄存器中的時序設(shè)置,實現(xiàn)正確的顯示。
4 總結(jié)
由于接口標(biāo)準(zhǔn)不統(tǒng)一、將一個新型號的lcd屏接到嵌入式處理器比較困難,需要認(rèn)真分析lcd控制器及l(fā)cd屏的時序和驅(qū)動方式,使用低價可編程邏輯電路,可以實現(xiàn)接口的時序轉(zhuǎn)換,lcd屏需要的背光電源及偏置電源可以按本文所述方法,利用lcd屏內(nèi)部集成的電源控制器實現(xiàn),也可以通過外接專用的lcd背光電源和lcd偏置實現(xiàn)。
評論