第8课LCD实验
- LCD时序图,操作原理
- S3C2440 LCD控制器
- 源码分析
首先看LCD的相关的原理图
YSYNC垂直方向的同步信号
HSYNC水平方向的同步信号
VCTK 时钟信号
LED+ LED-背光(电压)信号
VD0~VD23数据信号
背光信号来源于这款升压芯片,GPB0_BL设置为高电平芯片才能正常工作。
LCD的扫描从左到右,再回到第二行左端往右,z字型扫描。
VSYNC使得“喷枪”回到最上一行
不是一回到最上一行就开始写LCD显示的数据,有(VSPW+1)+(VBPD+1)行是屏幕上侧的无效行。VBPD+1个时钟之后,行信号置高此时喷枪回到最左端,但是也不是马上开始写屏幕的数据,屏幕左侧有(HSPU+1)+(HBPD+1)的无效列,同样道理 屏幕下侧有(VFPD+1)行,屏幕右侧有(HFPD+1)列无效列。VDEN高电平时,为屏幕的有效数据。所以一共有6个参数要配置。
2440LCD控制器
我们希望用设置内存去存储每一帧的数据Frame Buffer
每个像素点对应两个字节 16bpp (bit per pixel)
然后LCD控制器就可以用 HSYNC VSYNC UDEN等等读取数据驱动LCD
写程序注意:
- 打开背光
- 时需设置(上下左右无效参数)
- 在Frame Buffer里写数据
Frame Buffer数据格式
LCD选定之后像素宽度是固定的。比如说LCD的数据宽度就是16bpp,那么假如一定要用8bpp来表示,那么应该怎么对应到16bpp?涉及一个概念—调色板。
Frame Buffer的存储单元是1个字节,可以代表256种颜色,调色板上有256种颜色,每种颜色两个字节,此时Frame Buffer上的存储单元相当于一个索引,而不是颜色的值。
LCD控制器对应的寄存器
如果要实现清屏可以使能TPAL寄存器,这样LCD显示同一种颜色。