找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5715|回復(fù): 0
收起左側(cè)

VBP/VFP/HBP/HFP

[復(fù)制鏈接]
ID:104287 發(fā)表于 2016-1-31 04:34 | 顯示全部樓層 |閱讀模式
//        HFP -- SYNC前面的同步信號//        HBP -- SYNC后面的同步信號
//                一般時(shí)序圖是以SYNC為一個周期的起點(diǎn)畫的,所以HFP和HBP看起來很奇怪,而實(shí)際的一個周期
//                的起點(diǎn)是ACT_END之后,這樣理解FP和BP就很好理解了

====================================

在RGB模式中,LCD數(shù)據(jù)的掃描是以行為單位的。HSYNC是水平同步信號。PCLK是象素時(shí)鐘。ENABLE是數(shù)據(jù)使能信號,當(dāng)它為高時(shí),在PCLK的上升沿輸出有效數(shù)據(jù)。P_DATA是輸出的數(shù)據(jù)。
水平同步信號的上升沿到ENABLE的上升沿的間隔稱為HBP。把ENABLE的下降沿到水平同步信號的下升沿的間隔稱為HFP。把水平同步信號的低電平(非有效電平)持續(xù)時(shí)間稱為HSW。
HSW存在的必要性:水平同步信號為低電平有效。在水平同步信號有效時(shí),需要等待HBP的時(shí)間,才從數(shù)據(jù)線取數(shù)。由于水平同步信號的有效電平持續(xù)時(shí)間通常比無效電平長,因此占空比不是50%。無效電平短些比較好。
HBP和HFP存在的必要性:從道理上說,LCD使用矩陣尋址這兩個階段完全可以沒有。但是考慮到從前CRT電子槍行掃描時(shí),需要一個返回時(shí)間,而且目前的制式中,在有效信號的兩端分別加入了消隱時(shí)間。就是為了做到一致,這二者才出來的。

====================================================================
第一次調(diào)試lcd驅(qū)動的話是不是對下面的結(jié)構(gòu)有點(diǎn)陌生,不知道那些值是如何得來的,當(dāng)然我就屬于其中的一個
點(diǎn)擊(此處)折疊或打開

  • 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 = {  //這幾個參數(shù)挺重要的,判斷你極性是否要反轉(zhuǎn)(0--normal,1---inverted)
  •         .rise_vclk    = 0,
  •         .inv_hsync    = 1,
  •         .inv_vsync    = 1,
  •         .inv_vden    = 0,
  •     },
  • };


好吧,言歸正傳,首先有必要理解幾個定義:
一般TFTLCD時(shí)序圖如下所示

1
我們先來理解下面引腳有寄存器中相關(guān)參數(shù)的意義吧
外部引腳信號:
VSYNC: 幀同步信號,表示掃描1幀的開始,一幀也就是LCD顯示的一個畫面。
HSYNC: 行同步信號,表示掃描1行的開始。
VDEN數(shù)據(jù)使能信號。
VD[23:0] : LCD像素?cái)?shù)據(jù)輸出端口。
VCLK像素時(shí)鐘信號。
寄存器參數(shù):
VSPW幀同步信號的脈寬,單位為1行(Line)的時(shí)間。
VFPD: 幀同步信號的前肩,單位為1行(Line)的時(shí)間。
VBPD: 幀同步信號的后肩,單位為1行(Line)的時(shí)間。
LINEVAL 幀顯示尺寸-1,即屏行寬-1,對于800*480分配率的LCD屏,那么LINEVAL=480-1=479,請記住,是屏行寬,也就是LCD屏顯示一幀數(shù)據(jù)所需要的行的數(shù)目。
HBPD行同步信號的后肩,單位為1VCLK的時(shí)間。
HFPD行同步信號的前肩,單位為1VCLK的時(shí)間。
HSPW行同步信號的脈寬,單位為1VCLK的時(shí)間。
HOZVAL行顯示尺寸-1,即屏列寬-1,對于800*480分配率的LCD屏,那么HOZVAL=800-1=799,請記住,是屏列寬,也就是LCD屏顯示一行數(shù)據(jù)所需要的像素(pixel)的數(shù)目。
由圖1可知:
掃描一幀所需的時(shí)間:
=((VSPW+1)+(VBPD+1)+( LINEVAL+1)+(VFPD+1))個行時(shí)間。
掃描一行所所需的時(shí)間:
= ((HSPW+1)+(HSPD+1)+(HFPD+1)+ (HOZVAL+1))VCLK時(shí)間。
而一個VCLK時(shí)間由LCD寄存器VIDCON0內(nèi)的CLKVAL決定:
=HCLK/(CLKVAL+1)  ------>這個公式是S3C2443LCD控制器的,其他CPU的不一定一樣
因此掃描一幀所需的時(shí)間:
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信號是否需要反轉(zhuǎn)
這個其實(shí)還挺好判斷的,主要就是通過你主控的介紹lcd的時(shí)序圖,在結(jié)合你屏廠的spec文檔的時(shí)序圖就可以完全判斷出來了
先看LCD控制器默認(rèn)情況下送出來的TFT LCD屏的時(shí)序圖:
再來看屏廠的提供的時(shí)序圖
看上面的介紹應(yīng)該知道需要反轉(zhuǎn)
再來看看timing這個結(jié)構(gòu)體如何配置,如果提供下面這個參數(shù)就很好確定相關(guān)的數(shù)值了
h_fp  = (horizontal total time)- 1024
f_sw  =  (horizontal total time)- 1024 - h_fp   
當(dāng)然,如果沒有上面的介紹,其實(shí)也是可以通過時(shí)序圖來得到的



回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表