转载: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

tft_LCD一些引脚极性设置方法:vsync, hsync, VBLANK的更多相关文章

  1. session超时时间设置方法

    session超时时间设置方法 由于session值之前没有设置,以至于刚登录的网站,不到一分钟就超时了,总结了一下,原来是session过期的原因,以下是设置session时间的3个方法: 1. 在 ...

  2. 第一种SUSE Linux IP设置方法

    第一种SUSE Linux IP设置方法ifconfig eth0 192.168.1.22 netmask 255.255.255.0 uproute add default gw 192.168. ...

  3. [Linux] - CentOS IP设置方法

    CentOS 7的IP设置方法: 1.手动设置IP方法 a) 运行命令,cd到目录: cd /etc/sysconfig/network-scripts/ b) 运行命令:ls -l 找到类似这个文件 ...

  4. linux自动以root登录,并自动启动用户程序的设置方法

    系统自动以root登录,并自动启动用户程序的设置方法 第一步:删除root用户 vi /etc/passwd 该文件的第一行:root:X:0:0:root:/root:/bin/bash,只需要把第 ...

  5. LR测试https协议设置方法

    测试ssl隧道的设置方法: 前一段时间使用loadrunner测试ssl vpn时,使用ssl隧道一直配置不成功,经过查资料,终于成功,记录一下,方便大家测试.走ssl隧道与普通http,只需多设两个 ...

  6. (转)mysql账号权限密码设置方法

    原文:http://www.greensoftcode.net/techntxt/2013410134247568042483 mysql账号权限密码设置方法 我的mysql安装在c:\mysql 一 ...

  7. Apache日志不记录图片文件设置方法和来源日志的配置

    Apache日志不记录图片文件设置方法 <FilesMatch "\.(ico|gif|jpg|swf)">SetEnv IMAG 1</FilesMatch&g ...

  8. 如何在低api中使用View的属性设置方法如setAlpha等

    ViewPagerTransforms 是一个自定义了各种翻转效果的开源库,其中的各种PageTransformer使用了view的很多属性设置方法如DepthPageTransformer中:? p ...

  9. PHP-Fcgi下PHP的执行时间设置方法

    昨天,一个程序需要导出500条数据,结果发现到150条是,Nginx报出504 Gateway Timeout错误,原来PHP-Fcgi下的设置执行时间与isapi的不同     一般情况下设置PHP ...

随机推荐

  1. 从TEB到PEB再到SEH(二)

    什么是SEH? SEH( Structured Exception Handling , 结构化异常处理 ) 结构化异常处理(SEH)是Windows操作系统提供的强大异常处理功能.而Visual C ...

  2. amundsen 来自lyft 的开源数据发现平台

    amundsen 是来自lyft 开源的元数据管理.数据发现平台,功能点很全,有一个比较全的前端.后端以及 数据处理框架 参考架构图 说明 从官方介绍以及github代码仓库可以看出还是比较全的整体解 ...

  3. UOJ46. 【清华集训2014】玄学 [线段树,二进制分组]

    UOJ 思路 模拟赛出了这题,结果我没学过二进制分组--一波主席树然后空间就爆炸了-- 用线段树维护时间序列,每个节点维护\(a_i\to x_i\times a_i+b_i,i\in [1,n]\) ...

  4. 「2019-8-13提高模拟赛」树 (tree)

    传送门 Description 你有一个 \(n\)个点的树,第 \(i\)个点的父亲是\(p_i\).每个点有一个权值 \(t_i\) 和一个颜色黑或者白.所有点一开始都是白色. 你要进行 \(m\ ...

  5. D3.js的v5版本入门教程(第八章)—— 坐标轴

    D3.js的v5版本入门教程(第八章) D3中没有现成的坐标轴图形,需要我们自己用其他组件拼凑而成.D3中提供了坐标轴组件,使得我们在SVG中绘制一个坐标轴变得像添加一个普通元素那样简单 为了表绘制一 ...

  6. Gradle入门系列

    http://blog.jobbole.com/71999/ 版权声明:本文为博主原创文章,未经博主允许不得转载.

  7. Java 自定义异常

    新建类CustomException继承 Exception /** * Create by on 2019-07-30 * 自定义类需要继承Exception * @author lsw */ pu ...

  8. torch

    1.从数据直接构建tensor x = torch.tensor([5.5,3]) 2.从已有的tensor构建一个tensor.这些方法会重用原来tensor的特征. x = x.new_ones( ...

  9. Nginx搭建简单文件下载服务器

    在C:\pleiades\nginx-1.16.1下新建一个目录files,然后放入若干文件,接下来修改nginx.conf,增加粗体字如下: #user nobody; worker_process ...

  10. 清除JAVA 项目中的注释

    package com.lookcoder.inschool.utils; import java.io.BufferedReader; import java.io.File; import jav ...