zoukankan      html  css  js  c++  java
  • tft_LCD一些引脚极性设置方法:vsync, hsync, VBLANK

    转载:https://blog.csdn.net/u014170207/article/details/52662988/

    在RGB模式中,LCD数据的扫描是以行为单位的。HSYNC是水平同步信号。PCLK是象素时钟。ENABLE是数据使能信号,当它为高时,在PCLK的上升沿输出有效数据。P_DATA是输出的数据。
     水平同步信号的上升沿到ENABLE的上升沿的间隔称为HBP。把ENABLE的下降沿到水平同步信号的下升沿的间隔称为HFP。把水平同步信号的低电平(非有效电平)持续时间称为HSW。
     HSW存在的必要性:水平同步信号为低电平有效。在水平同步信号有效时,需要等待HBP的时间,才从数据线取数。由于水平同步信号的有效电平持续时间通常比无效电平长,因此占空比不是50%。无效电平短些比较好。
     HBP和HFP存在的必要性:从道理上说,LCD使用矩阵寻址这两个阶段完全可以没有。但是考虑到从前CRT电子枪行扫描时,需要一个返回时间,而且目前的制式中,在有效信号的两端分别加入了消隐时间。就是为了做到一致,这二者才出来的。
     

     
    ====================================================================
    第一次调试lcd驱动的话是不是对下面的结构有点陌生,不知道那些值是如何得来的,当然我就属于其中的一个

    点击(此处)折叠或打开

    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时序图如下所示

    图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屏的时序图:

    再来看屏厂的提供的时序图

    看上面的介绍应该知道需要反转HSYNC,VSYNC,VCLK信号输出,这样才能输出满足lcd所需要的时序图

    再来看看timing这个结构体如何配置,如果提供下面这个参数就很好确定相关的数值了

    h_fp  = (horizontal total time)- 1024

    f_sw  =  (horizontal total time)- 1024 - h_fp 

  • 相关阅读:
    【流量劫持】SSLStrip 终极版 —— location 瞒天过海
    【流量劫持】沉默中的狂怒 —— Cookie 大喷发
    【流量劫持】SSLStrip 的未来 —— HTTPS 前端劫持
    Web 前端攻防(2014版)
    流量劫持 —— 浮层登录框的隐患
    流量劫持能有多大危害?
    流量劫持是如何产生的?
    XSS 前端防火墙 —— 整装待发
    XSS 前端防火墙 —— 天衣无缝的防护
    XSS 前端防火墙 —— 无懈可击的钩子
  • 原文地址:https://www.cnblogs.com/zhihui-3669/p/11618711.html
Copyright © 2011-2022 走看看