自然界中绝大部分的可见光谱可以用红绿和蓝三色光按不同比例和强度的混合来表示。LCD液晶屏一般可以分为6位屏和8位屏,这里的位是指每一种基本颜色所占的比特位,一共有RGB三种颜色,所以有时也称为18bit屏和24bit屏。三种基色不同的值就可以组成我们平时生活中见到的各种各样的颜色。理论上8位屏能比六位屏表达出更多更细腻的颜色,但事实上液晶屏灌注工艺和驱动芯片的区别对屏的品质有很大的影响,单从颜色位数深度来说,6位屏和8位屏并没有多大区别,工业上目前用得较多的还是6位屏。

LCD是靠液晶点阵来显示图像的,这里点阵的密度就是所谓的分辨率,也就是横向上一行有几个点,纵向上一屏有几行。单有分辨率还不够,LCD还需要有精确的时序来控制一屏的数据显示时机。虽然现代液晶早已经不是电子扫描枪时代的方法来实现图像的显示,但仍可以用之前的概念来表达显示的时序。

常用的时序信号有三个:VSync,HSync,和VCLK。VSync是垂直同步信号,在进行每一帧(即一个屏)的扫描之前有效一次,该信号可以确定LCD的场频,即每秒屏幕的刷新次数(单位Hz)。HSync是水平同步信号,在进行一行的扫描之前,该信号有效一次,该信号可以确定LCD的行频。VCLK则是像素时钟信号,即扫描一个像素点所需的时间。

一般LCD都有上述三个基本参数,但LCD一般不是一行结束后马上开始另一行,也不是一屏结束后立刻开始新的一屏,它需要有一定的静默或消隐时间来同步下一次扫描,让扫描枪回到起点,或是让之前点的信号消失而不是叠加干扰等。因此一般参数中会给出一行开始或结束时的空闲像素时间,以及新开始一屏数据前或者是一屏数据结束后的空闲扫描行时间。这些时序决定了什么时候开始一屏的扫描,以及一屏中的每一行是什么时间开始扫描的。不同屏的厂家在描述这些参数时可能使用不同的名称或缩写,但总的原理都是相同的。

在DEY中,您需要用在Device Tree文件中配置对应的参数,编译并应用新的设备树文件后就可以用新的屏的驱动了。而在在DEL的UBoot中,可以用Video命令来选择已经默认支持的屏或是自定义屏。

在DEL系统启动过程中按任意键,进入Uboot,输入video会出现交互配置界面,通常如果是自定义的屏可以选择 1) Video 1 –> 2) LCD Display –>5) Custom3 Configuration in NVRAM 这里5)和6)都是在uboot中配置好屏参数保存在Uboot中供Linux调用。

Refresh rate(Hz):  刷新率
X-resolution(Pixels):横向分辨率
Y-resolution(Pixels):纵向分辨率
Pixel clock (picoseconds):像素时钟
Left margin:(clocks):行扫描前空闲时钟
Right margin:行扫描后空闲时钟
Uper margin:场扫描前空闲周期(行)
Lower margin:场扫描后空闲周期(行)
H-Sync:行同步信号
V-Sync:场同步信号

根据LCD规格书为上述参数找出合适的值,使得时序上符合液晶屏的要求,即可正常显示

注意LCD屏会有不同的版本,即使是同一厂家同一型号,仍有可能有不一样的spec,所以不要相信随便下载的规格书,也许和你真实用的版本有差异,如果没有规格书,就需要调试才能找到合适的配置参数。

但也有一些LCD的规格书给出了另一种只有DE信号的时序,这相当于显示使能信号,完整的一屏DE信号由一串连续的DE脉冲(Tvd)和一个长时间的低电平(Tvb)组成。其中Tvb结束或Tvd开始就可以作为场同步信号(Vs),而单个DE脉冲完成的是一行的显示,DE脉冲持续时间则是一屏的显示时间,DE静默时间就是结束一屏到下一屏开始显示之前的间隔时间(leftmargin)。所以,可以用自己定义的VSync,HSync等调出正确的DE信号。

二、如何判断屏的参数已经配置好

从结果上看,当当ConnectCard烧有支持LCD的内核和文件系统时,只要正确在Uboot中配置相关参数,屏的线序和电源正确,在上电过程中,LCD屏会显示“Any App,Anything,Anywhere”字样,如下图所示:

在串口终端中输入:fbtest 这是一个测试framebuffer的程序,屏幕会显示彩色渐变区块来检查彩色显示能力。如下图所示。

上述的方法显示正确,即可以表明屏配置正确。

三、如何调试液晶屏 在实际应用中,如果发现显示屏的规格书不准,所得的结果有偏差时,可以实际调试出这些信号并接到示波器上观察。主要是观察行同步信号,场同步信号和时钟信号,是否符合spec的预期。

Digi的开发底板上,80pin的并口屏的线序如下所示: 1脚是在标有P4 LCD这头的下方,底板上的ETM中的T刚好对应41脚,而在上方44脚处有引线连接到电阻上很容易认。从规格书中可以看到44脚正好是像素时钟输出的引脚。

底板上的80pin座子示意图:

80pin引脚接头定义(注意这不是座子):

实测结果: 为了方便测试,一般把示波器的地线夹在以太网口上的弹片。如图:

用示波器观察像素时钟(44脚),和行场同步信号或是DE信号等引脚,看是否和规格书相匹配。如果有出入,尝试修改在Uboot或是device tree中的对应参数,直到符合规格书的时序要求。