|
// HFP -- SYNC前面的同步信號// HBP -- SYNC后面的同步信號
// 一般時序圖是以SYNC為一個周期的起點畫的,所以HFP和HBP看起來很奇怪,而實際的一個周期
// 的起點是ACT_END之后,這樣理解FP和BP就很好理解了
====================================
在RGB模式中,LCD數據的掃描是以行為單位的。HSYNC是水平同步信號。PCLK是象素時鐘。ENABLE是數據使能信號,當它為高時,在PCLK的上升沿輸出有效數據。P_DATA是輸出的數據。
水平同步信號的上升沿到ENABLE的上升沿的間隔稱為HBP。把ENABLE的下降沿到水平同步信號的下升沿的間隔稱為HFP。把水平同步信號的低電平(非有效電平)持續時間稱為HSW。
HSW存在的必要性:水平同步信號為低電平有效。在水平同步信號有效時,需要等待HBP的時間,才從數據線取數。由于水平同步信號的有效電平持續時間通常比無效電平長,因此占空比不是50%。無效電平短些比較好。
HBP和HFP存在的必要性:從道理上說,LCD使用矩陣尋址這兩個階段完全可以沒有。但是考慮到從前CRT電子槍行掃描時,需要一個返回時間,而且目前的制式中,在有效信號的兩端分別加入了消隱時間。就是為了做到一致,這二者才出來的。

====================================================================
第一次調試lcd驅動的話是不是對下面的結構有點陌生,不知道那些值是如何得來的,當然我就屬于其中的一個
點擊(此處)折疊或打開
- static struct s3cfb_lcd lte480wv = {
- .width = 1024,//800,
- .height = 600,//480,
- .bpp = 24,//24,//32,
- .freq = 45,//45,//60
- .timing = { //這里主要會影響圖像在LCD上顯示的位置,偏移啥的
- .h_fp = 160,//210,//8,
- .h_bp = 160,//46,//13,
- .h_sw = 16, // 3
- .v_fp = 12,//12,//15,//22, liao
- .v_fpe = 0,/*1,//0,*/
- .v_bp = 23,//22, liao
- .v_bpe = 0,/*1,//0,*/
- .v_sw = 2,//
- },
- .polarity = { //這幾個參數挺重要的,判斷你極性是否要反轉(0--normal,1---inverted)
- .rise_vclk = 0,
- .inv_hsync = 1,
- .inv_vsync = 1,
- .inv_vden = 0,
- },
- };
好吧,言歸正傳,首先有必要理解幾個定義:
一般TFT型LCD時序圖如下所示
圖1 我們先來理解下面引腳有寄存器中相關參數的意義吧 外部引腳信號: VSYNC: 幀同步信號,表示掃描1幀的開始,一幀也就是LCD顯示的一個畫面。 HSYNC: 行同步信號,表示掃描1行的開始。 VDEN:數據使能信號。 VD[23:0] : LCD像素數據輸出端口。 VCLK:像素時鐘信號。 寄存器參數: VSPW:幀同步信號的脈寬,單位為1行(Line)的時間。 VFPD: 幀同步信號的前肩,單位為1行(Line)的時間。 VBPD: 幀同步信號的后肩,單位為1行(Line)的時間。 LINEVAL :幀顯示尺寸-1,即屏行寬-1,對于800*480分配率的LCD屏,那么LINEVAL=480-1=479,請記住,是屏行寬,也就是LCD屏顯示一幀數據所需要的行的數目。 HBPD:行同步信號的后肩,單位為1VCLK的時間。 HFPD:行同步信號的前肩,單位為1VCLK的時間。 HSPW:行同步信號的脈寬,單位為1VCLK的時間。 HOZVAL:行顯示尺寸-1,即屏列寬-1,對于800*480分配率的LCD屏,那么HOZVAL=800-1=799,請記住,是屏列寬,也就是LCD屏顯示一行數據所需要的像素(pixel)的數目。 由圖1可知: 掃描一幀所需的時間: =((VSPW+1)+(VBPD+1)+( LINEVAL+1)+(VFPD+1))個行時間。 掃描一行所所需的時間: = ((HSPW+1)+(HSPD+1)+(HFPD+1)+ (HOZVAL+1))個VCLK時間。 而一個VCLK時間由LCD寄存器VIDCON0內的CLKVAL決定: =HCLK/(CLKVAL+1) ------>這個公式是S3C2443的LCD控制器的,其他CPU的不一定一樣 因此掃描一幀所需的時間: T=[(VSPW+1)+(VBPD+1)+(LINEVAL+1)+(VFPD+1)]*[(HSPW+1)+(HSPD+1)+(HFPD+1)+ (HOZVAL+1)]* HCLK/ (CLKVAL+1) 即幀頻率為:1/T 1.首先來判斷 HSYNC,VSYNC,VCLK, VDEN信號是否需要反轉 這個其實還挺好判斷的,主要就是通過你主控的介紹lcd的時序圖,在結合你屏廠的spec文檔的時序圖就可以完全判斷出來了 先看LCD控制器默認情況下送出來的TFT LCD屏的時序圖: 再來看屏廠的提供的時序圖 看上面的介紹應該知道需要反轉 再來看看timing這個結構體如何配置,如果提供下面這個參數就很好確定相關的數值了 h_fp = (horizontal total time)- 1024 f_sw = (horizontal total time)- 1024 - h_fp 當然,如果沒有上面的介紹,其實也是可以通過時序圖來得到的
|
|