LCD简介
LCD(Liquid Crystal Display) ,即液晶显示屏,是一种采用了液晶控制透光度技术来实现色彩的显示器,LCD 有很多种类型,常见的有 :
- STN(超扭曲向列),它的特点是功耗低,但亮度不足,响应时间长;(1602那种类型的)
- TFT(薄膜晶体管),它的特点是响应时间短,画面清晰,但功耗稍高,(自己实验用的应该是这个类型的,这个类型当作计算机液晶显示设备)。
- LTPS(低温多晶硅),各方面性能优越,但技术要求高;
- OLED(有机发光二极管),各方面性能优越,但技术要求高。
S5PV210 LCD 控制器
S5PV210 的 LCD 控制器由一个逻辑单元组成,它的作用是: 把 LCD 图像数据从一个位于系统内存的 video buffer 传送到一个外部的 LCD 驱动器接口。
LCD驱动接口支持 3 种接口:
- RGB 接口:(自己用的使这种)
- indirect-i80 接口
- UV 接口
S5PV210 的 LCD 控制器支持多种颜色格式,例如
- RGB (1BPP 到 24BPP)
- YCbCr 4:4:4 (只有本地总线)
LCD 控制器可以通过编程满足不同的需求, 即 满足水平、垂直方向的像素数目,满足数据接口的数据线宽度、接口时序和刷新速率。
S5PV210 LCD 关键特性介绍
总线接口 : AMBA AXI 64 位主模式 /AHB 32 位从模式,本地视频总线
(YCbCr/RGB).
视频输出接口:RGB 接口(并行 24 位,串行 8 位) ,Indirect i80 接口,YUV
接口.
- 支持 i80/RGB 双输出模式
- 支持 8/16/24 多种 BPP 模式
- 4/8/16 位的可编程 DMA
- 支持 256 x 32 位的调色板
- 支持最大为 16MB 的虚拟屏幕
信号类型
- VSYNC:垂直同步信号,每个 VSYNC 信号表示一帧数据的开始.
- HSYNC: 水平同步信号,每个 HSYNC 信号表示一行数据的开始.
- VCLK: 像素时钟信号,每个 VCLK 信号表示一个像素数据.
- VDEN: 数据使能信号.
- VD: Video Data,数据信号.
VSPW:Vertical Sync Pulse Width,垂直同步信号电平宽度
VBPD:Vertical back porch,垂直同步信号后肩
VFPD:Vertical front porch,垂直同步信号前肩
HSPW:Horizontal sync pulse width,水同步信号电平宽度
HBPD:Horizontal back porch,水同同步信号后肩
HFPD:Horizontal sync pulse width,水同同步信号前肩
参考网址:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=29099635&id=3907093
S5PV210 LCD 控制器子模块概述
LCD 控制器模块由 VSFR,VDMA,VPRCS,VTIME 以及 video clock 组成。为了配置 LCD 显示控制模块,VSFR 有 121 个可编程寄存器集,一个 gamma LUT 寄存器集(64 个寄存器),一个 i80 命令寄存器集(12 个寄存器)和 5 个 256 x 32调色板内存。
VDMA 是一个专用的显示 DMA 通道,用于才能够 frame 内存里传输视频数据到VPRCS。利用特殊的 DMA,用户可以在没有 CPU 干涉的情况下传输视频数据到屏幕上示。
VPRCS 从 VDMA 中接收视频数据并在转换视频数据为合适的数据格式后(例如:8BPP 或 16BPP 模式) 通过 RGB_VD 或 SYS_VD 端口传送到显示设备上(如: LCD)
VTIME 由可编程逻辑模块组成,在不同的 LCD 驱动下支持各种接口时序和波特率。 VTIME 模块产生 RGB_VSYNC, RGB_HSYNC, RGB_VCLK, RGB_VDEN SYS_CS0,SYS_CS1,SYS_WE 等等信号。
210手册(1207页)
- VSYNC 的有效启动脉冲是高电平有效
- VSYNC 脉冲宽度为(VSPW+1)个 HSYNC 信号周期,在这个周期内数据无效
- VSYNC 有效启动脉冲后还要经过(VBPD+1)个 HSYNC 信号周期,有效的数据才会出现
- 跟随着连续发出(LINEVAL+1)行的有效数据
- 最后经过(VFPD+1)个无效行,完整的一帧数据就传输结束,紧接着下一次VSYNC 启动脉冲才能发出.
- HSYNC 的有效启动脉冲是高电平有效.
- HSYNC 脉冲宽度为(HSPW+1)个 VCLK 信号周期,在这个周期内像素数据无效.
- HSYNC 有效启动脉冲后还要经过(HBPD+1)个 VLCK 信号周期,有效的像素数据才会出现.
- 跟随着连续发出(HOZVAL+1)个的有效像素数据.
- 最后经过(HFPD+1)个无效数据,完整的一行数据就传输结束,紧接着下一次HSYNC 启动脉冲才能发出.
计算参数
查找数据手册:S70-AT070TN92.pdf,13和14页
通过观察S70-AT070TN92(GEC210).pdf第13页时序图,发现跟三星官方的时序图有点出入,VSYNC和HSYNC的信号是反相
根据表格和图计算相应参数
垂直信号参数
tvpw 可取 typ.值为 10(中间值) ,而 tvpw 的值就是 VSYNC 的脉冲宽度,也就是说 VSPW + 1 = 10,所以 VSPW = 9
tvb 可取 typ.值为 23,而 tvb 的值是 VSYNC 前面经过(VSPW + 1 )+(VBPD + 1)
tvfp 可取 typ.值为 22,而 tvfp 的值是后面经过(VFPD + 1)的无效行,也就是说 tvfp = VFPD + 1= 22,所以 VFPD = 21
tvd 可取 typ.值为 480, 而 tvd 的值就是 (LINEVAL+1) ,其实就是 y 轴的 LCD分辨率,也就说 tvd = (LINEVAL+1)= 480,所以 LINEVAL = 479的无效行,也就是说 tvb =
(VSPW + 1 )+(VBPD + 1) = 23,相当于 10 + VBPD + 1 = 23,所以 VBPD = 12
水平信号参数
thpw 可取 typ.值为 20(中间值),而 thpw 的值就是 HSYNC 的脉冲宽度,也就是说 HSPW + 1 = 20,所以 VSPW = 19.
thb 可取 typ.值为 46,而 tvb 的值是 VSYNC 前面经过(HSPW + 1 )+(HBPD + 1)的无效行,也就是说 thb= (HSPW + 1 )+(HBPD + 1) = 46,相当于 20 + VBPD + 1 = 46,所以 HBPD = 25.
thfp 可取 typ.值为 210,而 thfp 的值是后面经过(HFPD + 1)的无效行,也就是说 thfp = HFPD + 1= 210,所以 VFPD = 209。
时钟频率计算
RGB_VCLK (Hz) = HCLK / (CLKVAL+1), CLKVAL >= 1
Frame Rate = 1/ [ { (VSPW+1) + (VBPD+1) + (LIINEVAL + 1) + (VFPD+1) } x
{(HSPW+1) + (HBPD +1) + (HFPD+1) + (HOZVAL + 1) } x { ( CLKVAL+1 ) /
( HCLK ) } ]
数据格式
14BPP和24BPP,数据存储的地址方式不同,具体查手册。
硬件端口功能
该液晶屏接口有 45Pin,其中 VD0~VD23 是数据信号线引脚,VDEN 是数据信号使能引脚,VSYNC 是垂直同步信号引脚,HSYNC 是水平同步信号引脚,VCLK 是像素时钟信
号引脚,Xi2SCL2,Xi2SDA2 分别是 I2C 的 SCL、SDA 引脚,在电容屏的触摸中会用到。 XENIT14、 XEINT15 引脚是外部中断引脚。
如何知道要配置哪些寄存器?一定要参考原厂官方代码
以后配置LCD寄存器都是按照以下思路(无论是什么芯片,联发科、全志芯片):
a.配置第二功能引脚
b.时间参数
c.接口类型为RGB接口,时钟配置
d.使能DMA(Direct Memory Access,直接存储访问)
e.配置显存的起始地址和结束地址
f.配置分辨率就是显示屏的大小
g.配置坐标体系,左上角和右下角的x、y坐标值