tft_LCD一些引腳極性設置方法:vsync, hsync, VBLANK

轉載:https://blog.csdn.net/u014170207/article/details/52662988/url

在RGB模式中,LCD數據的掃描是以行爲單位的。HSYNC是水平同步信號。PCLK是象素時鐘。ENABLE是數據使能信號,當它爲高時,在PCLK的上升沿輸出有效數據。P_DATA是輸出的數據。
 水平同步信號的上升沿到ENABLE的上升沿的間隔稱爲HBP。把ENABLE的降低沿到水平同步信號的下升沿的間隔稱爲HFP。把水平同步信號的低電平(非有效電平)持續時間稱爲HSW。
 HSW存在的必要性:水平同步信號爲低電平有效。在水平同步信號有效時,須要等待HBP的時間,才從數據線取數。因爲水平同步信號的有效電平持續時間一般比無效電平長,所以佔空比不是50%。無效電平短些比較好。
 HBP和HFP存在的必要性:從道理上說,LCD使用矩陣尋址這兩個階段徹底能夠沒有。可是考慮到從前CRT電子槍行掃描時,須要一個返回時間,並且目前的制式中,在有效信號的兩端分別加入了消隱時間。就是爲了作到一致,這兩者纔出來的。
 .net

 
====================================================================
第一次調試lcd驅動的話是否是對下面的結構有點陌生,不知道那些值是如何得來的,固然我就屬於其中的一個

點擊(此處)摺疊或打開3d

  1. static struct s3cfb_lcd lte480wv = {
  2.     .width    = 1024,//800,
  3.     .height    = 600,//480,
  4.     .bpp    = 24,//24,//32,
  5.     .freq    = 45,//45,//60
  6.     .timing = {  //這裏主要會影響圖像在LCD上顯示的位置,偏移啥的
  7.         .h_fp    = 160,//210,//8,
  8.         .h_bp    = 160,//46,//13,
  9.         .h_sw    = 16,    // 3
  10.         .v_fp    = 12,//12,//15,//22, liao
  11.         .v_fpe    = 0,/*1,//0,*/
  12.         .v_bp    = 23,//22, liao
  13.         .v_bpe    = 0,/*1,//0,*/
  14.         .v_sw    = 2,//
  15.     },
  16.     .polarity = {  //這幾個參數挺重要的,判斷你極性是否要反轉(0--normal,1---inverted)
  17.         .rise_vclk    = 0,
  18.         .inv_hsync    = 1,
  19.         .inv_vsync    = 1,
  20.         .inv_vden    = 0,
  21.     },
  22. };
好吧,言歸正傳,首先有必要理解幾個定義:

通常TFT型LCD時序圖以下所示unix

 

圖1調試

咱們先來理解下面引腳有寄存器中相關參數的意義吧orm

 

外部引腳信號:blog

 

VSYNC: 幀同步信號,表示掃描1幀的開始,一幀也就是LCD顯示的一個畫面。文檔

HSYNC: 行同步信號,表示掃描1行的開始。get

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屏的時序圖:

再來看屏廠的提供的時序圖

看上面的介紹應該知道須要反轉HSYNC,VSYNC,VCLK信號輸出,這樣才能輸出知足lcd所須要的時序圖

 

再來看看timing這個結構體如何配置,若是提供下面這個參數就很好肯定相關的數值了

 

h_fp  = (horizontal total time)- 1024

f_sw  =  (horizontal total time)- 1024 - h_fp 

相關文章
相關標籤/搜索