首页 » 通讯 » LCD事理详解及裸机轨范分析——第001节_LCD硬件事理_暗记_电子枪

LCD事理详解及裸机轨范分析——第001节_LCD硬件事理_暗记_电子枪

萌界大人物 2024-12-15 13:36:43 0

扫一扫用手机浏览

文章目录 [+]

来源:韦东山嵌入式专栏_ARM裸机加强版维基教程

作者:韦东山

LCD事理详解及裸机轨范分析——第001节_LCD硬件事理_暗记_电子枪 LCD事理详解及裸机轨范分析——第001节_LCD硬件事理_暗记_电子枪 通讯

本笔墨数:1927,阅读时长:2分钟

LCD事理详解及裸机轨范分析——第001节_LCD硬件事理_暗记_电子枪 LCD事理详解及裸机轨范分析——第001节_LCD硬件事理_暗记_电子枪 通讯
(图片来自网络侵删)

先大略先容下LCD的操作事理。
如下图的LCD示意图,里面的每个点便是一个像素点。

想象有一个电子枪,一边移动,一边发出各种颜色的光。
这里有很多细节问题,我们一个一个的梳理。

电子枪是如何移动的?答:有一条CLK时钟线与LCD相连,每发出一次CLK(高低电平),电子枪就移动一个像素。
颜色如何确定?答:由连接LCD的三组线:R(Red)、G(Green)、B(Blue)确定。
电子枪如何得知应跳到下一行?答:有一条HSYNC旗子暗记线与LCD相连,每发出一次脉冲(高低电平),电子枪就跳到下一行。
电子枪如何得知应跳到原点?答:有一条VSYNC旗子暗记线与LCD相连,每发出一次脉冲(高低电平),电子枪就跳到原点。
RGB线上的数据从何而来?答:内存里面划分一块显存(FrameBuffer),里面存放了要显示的数据,LCD掌握器从里面将数据读出来,通过RGB三组线传给电子枪,电子枪再依次打到显示屏上。
前面的旗子暗记由谁发给LCD?答:有S3C2440里面的LCD掌握器来掌握发出旗子暗记。

通过JZ2440事理图对上面进行验证,下图的LCD掌握器接口图。

①是时钟旗子暗记,每来一个CLK,电子枪就移动一个像素;

②是用来传输颜色数据;

③是垂直方向同步旗子暗记,FRAME(帧);

④是水平方向同步旗子暗记,LINE(行);

再来看看LCD的芯片手册。

先是VLED+、VLED-背光灯电源。
VDD、VDD是LCD电源。

R0-R7、G0-G7、B0-B7是红绿蓝颜色旗子暗记。

PCLK是像素时钟旗子暗记。
DISP是像素开关。

HSYNC、VSYNC分别是水平方向、垂直方向旗子暗记。

DE数据使能。
X1、Y1、X2、Y2是触摸屏旗子暗记。

可以看出LCD有很多旗子暗记,这些旗子暗记要根据时序图传输才能精确显示。
参考JZ2440_4.3寸LCD手册_AT043TN24的时序如下:

从最小的像素开始剖析,电子枪每次在CLK低落沿(本开拓板是低落沿)从数据线Dn0-Dn7上得到数据,发射到显示屏上,然后移动到下一个位置。
Dn0-Dn7上的数据来源便是前面先容的FrameBuffer。
就这样从一行的最左边,一贯移动到一行的最右边,完成了一行的显示,假设为x。

当打完一行的末了一个数据后,就会收到Hsync行同步旗子暗记,根据时序图,一个Hsync周期可以大致分为五部分组成:thp、thb、1/tc、thd、thf。
thp称为脉冲宽度,这个韶光不能太短,太短电子枪可能识别不到。
电子枪精确识别到thp后,会从最右端移动最左端,这个移动的韶光便是thb,称之为移动韶光。
thf表示显示完最右像素,再过多久Hsync才来。

同理,当电子枪一行一行的从上面移动到最下面时,Vsync垂直同步旗子暗记就让电子枪移动回最上边。
Vsync中的tvp是脉冲宽度,tvb是移动韶光,tvf表示显示完最下一行像素,再过多久Vsync才来。
假设一共有y行,则LCD的分辨率便是xy。

里面有一个LCD显示配置示意图如下:

当发出一个HSYNC旗子暗记后,电子枪就会从最右边花费HBP时长移动到最左边,等到了最右边后,等待HFP时长HSYNC旗子暗记才回来。
因此,HBP和HFP分别决定了左边和右边的黑框。

同理,当发出一个VSYNC旗子暗记后,电子枪就会从最下边花费VBP时长移动到最上边,等到了最下边后,等待VFP时长VSYNC旗子暗记才回来。
因此,VBP和VFP分别决定了上边和下边的黑框。
中间灰色区域才是有效显示区域。

再来办理末了一个问题:每个像素在FrameBuffer中,霸占多少位BPP(Bits Per Pixels)?前面的LCD引脚功能图里,R0-R7、G0-G7、B0-B7,每个像素是霸占38=24位的,即硬件上LCD的BPP是确定的。

虽然LCD上的引脚是固定的,但我们利用的时候,可以根据实际情形进行取舍,比如我们的JZ2440利用的是16BPP,因此LCD只须要R0-R4、G0-G5、B0-B4与SOC相连,5+6+6=16BPP,每个像素就只霸占16位数据。

我们写程序的思路如下:

查看LCD芯片手册,查看干系的韶光参数、分辨率、引脚极性;根据以上信息设置LCD掌握器寄存器,让其发出精确旗子暗记;在内存里面分配一个FrameBuffer,在里面用多少位表示一个像素,再把首地址见告LCD掌握器;

之后LCD掌握器就能周而复始取出FrameBuffer里面的像素数据,合营其它掌握旗子暗记,发送给电子枪,电子枪再让在LCD上显示出来。
往后我们想显示图像,只须要编写程序向FrameBuffer填入相应数据即可,硬件会自动的完成显示操作。

下一篇:LCD事理详解及裸机程序剖析——第002节_S3C2440_LCD掌握器

点击“理解更多”阅读更多干系章节

相关文章