LCD驅動中引數的設定

2021-08-14 01:32:34 字數 1446 閱讀 4133

在lcd驅動程式中,需要我們根據lcd datasheet來設定相應的引數,這些引數包括:pixclock,left_margin,right_margin,upper_margin,lower_margin,hsync_len,vsync_len,vbp,vfb,vspw,hbp,hfp,hspw。下圖是典型的tft lcd時序圖:

__u32 pixclock; /*畫素時鐘(皮秒

)*/__u32 left_margin; /*行切換,從同步到繪圖之間的延遲

*/__u32 right_margin; /*行切換,從繪圖到同步之間的延遲

*/__u32 upper_margin; /*幀切換,從同步到繪圖之間的延遲

*/__u32 lower_margin; /*幀切換,從繪圖到同步之間的延遲

*/__u32 hsync_len; /*水平同步的長度

*/__u32 vsync_len; /*垂直同步的長度*/

vbp(vertical back porch):表示在一幀影象開始時,垂直同步訊號以後的無效的行數,對應驅動中的upper_margin;

vfb(vertical front porch):表示在一幀影象結束後,垂直同步訊號以前的無效的行數,對應驅動中的lower_margin;

vspw(vertical sync pulse width):表示垂直同步脈衝的寬度,用行數計算,對應驅動中的vsync_len;

hbp(horizontal back porch):表示從水平同步訊號開始到一行的有效資料開始之間的vclk的個數,對應驅動中的left_margin;

hfp(horizontal front porth):表示一行的有效資料結束到下乙個水平同步訊號開始之間的vclk的個數,對應驅動中的right_margin;

hspw(horizontal sync pulse width):表示水平同步訊號的寬度,用vclk計算,對應驅動中的hsync_len;

pixclock的計算:

dotclk = fframe × (x + hbp + hfp+hspw) × (y + vbp + vfp+vspw) (單位:mhz)

pixclock = 1012/ dotclk=1012/ (fframe × (x + hbp + hfp+hspw) × (y + vbp + vfp+vspw)) (單位:皮秒)

根據上圖及上面的解說就容易看懂這值是如何設定的了:

.left_margin = 68,   //調整水平的位置,如果太小就會把影象左邊的部分會顯示在屏的右邊

.right_margin = 39, //其他的如何設定請檢視

.upper_margin = 16,

.lower_margin = 13,

.hsync_len = 31,

.vsync_len = 4,

上面的那個left_margin有時不太準確,在應用的過程中可以修正,下面的這幾個修改好後就可以用。

LCD驅動中pixclock的計算

在lcd驅動程式中,需要我們根據lcd datasheet來設定相應的引數,這些引數包括 pixclock,left margin,right margin,upper margin,lower margin,hsync len,vsync len,vbp,vfb,vspw,hbp,hfp,hspw...

LCD驅動中pixclock的計算

在lcd驅動程式中,需要我們根據lcd datasheet來設定相應的引數,這些引數包括 pixclock,left margin,right margin,upper margin,lower margin,hsync len,vsync len,vbp,vfb,vspw,hbp,hfp,hspw...

LCD以及引數設定問題

1 在kernel中的oal層有對lcd的初始化配置initdisplay 這個是我需要修改的部分 在這裡主要是對2440的5個lcd暫存器配置 lcdcon1 lcdcon5 在s2440.h中對lcd的幾個時序進行了初始化 define vbpd 15 垂直同步訊號後肩vsync back po...