所谓驱动者,三分硬件,三分格式,四分软件。对于展讯平台的LCD驱动,首先就要了解一点基本的硬件知识。
一、LCD的接口
其实LCD的接口有很多,但是不管是在手机还是电脑,液晶屏的接口也最常用的有两个,MCU和RGB
1、MCU
MCU接口又根据时序的不同分为Intel的8080和Motorola的6800。他们两个主要是时序的区别。现在6800已经基本不用了,所以,现在提到的MCU一般就默认为8080模式。
MCU接口控制信号线有:WR,RD,RS,RESET,CS,数据线是并行连接的,一般称为数据总线。一般的数据总线的宽度为8,9,16,18。MCU接口的特点是控制简单不需要时钟和同步信号。刷屏的数据首先写到LCD屏的GRAM中,然后由LCD自动刷到屏上。由于GRAM大小的限制由于这种接口的屏都不会很大。目前展讯手机上的LCD屏的分辨率大小为QCIF,QVGA,VGA,CIF,HVGA,WVGA。
2、RGB
RGB模式:大屏采用较多的模式,数据位传输也有6位,16位和18位,24位之分。连线一般有:VSYNC,HSYNC,DOTCLK,CS,RESET,有的也需要RS,剩下就是数据线。它的优缺点正好和MCU模式相反。手机上很少用到,但是在电脑的液晶显示上一般采用这种接口。
二、LCD的像素和分辨率
当你离很近看手机或电脑屏幕,或者液晶电视机的时候,就会发现一个个长条型的点,这就是组成整个显示图像的最基本单位,称为一个像素点,那么你的LCD总共有多少个这样的像素点我们就称之为分辨率是多少!像我们常说的VGA ,QVGA,WVGA,CIF等等,就是说的它的分辨率。
三、LCD的色彩数
在展讯平台中,LCD的显示一般都是采用RGB565格式的,也就是说在每个像素点要由(5 + 6 +5)个bit来表示的。所以,计算出来的色彩是2^16 = 65536,这就是我们经常听到的,65K色。如果是采用RGB666的,那么就是以前的高端26万色的,呵呵,我的手机就是26万色的!
作为一个驱动,上面的是必须知道的,当然,LCD的其他硬件组成等我感觉用处已经不大了!展讯平台的LCD驱动已经做的很模块化了。如果是一个新屏,我们要做的工作如下。
首先,在lcm_cfg.c里面填写LCM_CFG_INFO_T这个结构体的数组。这个结构体虽然很大,但是我们关注的就三项而已。
1、LCD的IC的ID,展讯的平台一般都是通过读取IC的ID来辨别不同的LCD的。当然,要注意不同的IC厂商会把ID放在不同的寄存器中,如果不再00H,要
自己写函数去读取。
自己写函数去读取。
2、LCDC的模式LCD_CTRL_MODULE_E,一般来说,展讯默认的是LCD_CTRL_MODULE_EMC这种。
3、LCD的背光控制方式LCD_BACKLIGHT_TYPE_E,这个要自己选
然后通过LCD_SPEC_T_PTR这个结构体指针转到真正的驱动文件里面。在tft_***.c里面,也就是主要实现init,sleep,setwindows,
这三个函数!
这三个函数!
PS:要注意LCD的FARK功能和时序的填写,否则可能出现切屏!