在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;
之前老是搞不清楚lcd驅動程式中的pixclock的計算方法,閒雜清楚了,趕緊記錄下來:
pixclock的計算:
fframe= 1/((x + hbp + hfp+hspw) × (y + vbp + vfp+vspw)/dotclk)
=dotclk/( (x + hbp + hfp+hspw) × (y + vbp + vfp+vspw))
dotclk = fframe × (x + hbp + hfp+hspw) × (y + vbp + vfp+vspw) (單位:mhz)
pixclock = 1012/ dotclk=1012/ (fframe × (x + hbp + hfp+hspw) × (y + vbp + vfp+vspw)) (單位:皮秒)
時間的單位換算
1秒=1000毫秒(ms)
1毫秒=1/1,000秒(s)
1秒=1,000,000 微秒(μs)
1微秒=1/1,000,000秒(s)
1秒=1,000,000,000 納秒(ns)
1納秒=1/1,000,000,000秒(s)
1秒=1,000,000,000,000 皮秒(ps)
1皮秒=1/1,000,000,000,000秒(s)
如從lcd的datasheet中看到pixclk典型值為45mhz,那
pixclk = 1000000000000/45000000=1000000/45=22222.22222
1. struct fb_videomode ;
18. struct fb_videomode mxcfb_modedb =
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驅動中引數的設定
在lcd驅動程式中,需要我們根據lcd datasheet來設定相應的引數,這些引數包括 pixclock,left margin,right margin,upper margin,lower margin,hsync len,vsync len,vbp,vfb,vspw,hbp,hfp,hspw...
LCD驅動的問題
最近遇到lcd驅動的問題,lcd可以點亮,但是畫影象的時候螢幕上只顯示各種顏色垂直的線條,不知 出了問題,不知哪位高手可以指點一下!我用的是mtk6205 st7367的dirver ic,init成功,但是畫圖就有問題了,畫全黑的過去居然顯示成彩色的條狀。每一列的顏色一樣,這個很奇怪阿,不同列的顏...