Chinaunix首页 | 论坛 | 博客
  • 博客访问: 741916
  • 博文数量: 124
  • 博客积分: 3156
  • 博客等级: 中校
  • 技术积分: 1584
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-02 10:29
文章分类

全部博文(124)

文章存档

2012年(3)

2011年(2)

2010年(61)

2009年(34)

2008年(24)

我的朋友

分类: LINUX

2010-09-12 23:32:38

2月31日

最近做LCD驱动用到的知识总结

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

具体含义参见下图:

2. LC_PCLK 怎么计算?
LC_PCLK是通过对LC_CLK分频得到的,而LC_CLK又是通过对core clock分频得到的,这个core clock就是CPU主频。另外,LC_PCLK得到后就可以计算到每个像素的刷新周期结合水平回扫时间和垂直回扫时间可以得到LCD的刷新频率。

3.其他

参见下面这两个链接

下文从中摘录了几段:
LCD通过SDRAM控制器把图像数据从SDRAM读到TFT显示屏。AHB主接口把帧缓冲区中的图像数据取出后放入到LCD控制器的FIFO中。

数 据被AHB主接口从外都存储器读取后会被放入FIFO。除了 YCbCr420模式下,其他模式都只需要一个控制器/FIFO。Y、Cb、Cr需要有三个单独的通道,因为每一个会放于不同的存储单元。FIFO的输入 端连接在AHB 主接口的输出端;FIFO的输出端则被连接到了像素数据解包控制器。如果总线不能提供给像素流足够的带宽,那么一些图像就会出现失真现象。因此,FIFO 控制器会提供一个称为“欠运行中断”的信号,来通知微控制器解决总线阻塞的问题。

存储在FIFO中的数据都是32-bit,但可以按 照不同的格式打包,如24位、16位、 8位、4位、2位和1位,这取决于像素格式的设定。当处于YCbCr420 和YcbCr422模式,像素格式是预先设定的且不能修改。根据操作模式,像素数据可以被用来对调色板RAM区进行寻址,或者构成初始的色彩值而被直接应 用到LCD的面板上。

xres: 240, yres: 320,
hsync_len: 13, /* hsw */ vsync_len: 2, /* vsw */
left_margin: 21, /* hbp */ upper_margin: 5, /* vbp */
right_margin: 11, /* hfp */ lower_margin: 5, /* vfp */



  var->           = 10000000 / (-> / 100);
         var->left_margin        = ->hfp;
         var->right_margin       = ->hbp;
         var->upper_margin       = ->vfp;
         var->lower_margin       = ->vbp;
         var->hsync_len          = ->hsw;
         var->vsync_len          = ->vsw;
阅读(10886) | 评论(1) | 转发(1) |
给主人留下些什么吧!~~

chinaunix网友2010-09-13 15:00:28

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com