SSD1963驱动RGB接口LCD的设计与实现

2014-05-15 02:29刘繁明王振鹏张孟禹
应用科技 2014年1期
关键词:驱动器单片机芯片

刘繁明, 王振鹏, 张孟禹

哈尔滨工程大学 自动化学院,黑龙江 哈尔滨 150001

SSD1963驱动RGB接口LCD的设计与实现

刘繁明, 王振鹏, 张孟禹

哈尔滨工程大学 自动化学院,黑龙江 哈尔滨 150001

为了解决RGB接口LCD与微控制器相连时的驱动问题,提出了一种基于SSD1963硬件电路设计方案。通过与单片机LM3S9B96进行通信调试,并对底层驱动软件进行了设计。实际测试中,利用LM3S9B96控制板和SSD1963驱动板顺利实现了图文显示。测试结果表明,硬件设计和软件驱动设计都能满足实际需求,并且工作稳定。另外,该设计方案已经在总体方案中得到应用,降低了购买带LCD控制器的成本。

SSD1963;TI图形库;LCD驱动;LM3S9B96;RG

随着科技的进步,带触摸屏的TFT-LCD模组在系统应用中不仅能为人机界面提供高质量的画面显示,而且能提供更直观、方便的交互性[1]。液晶显示则具备了稳定可靠、成本低、功耗小、控制驱动方便、接口简单易用、模块化结构紧凑等优点。近年来,国内许多厂商,如紫晶、冀雅、晶华、信利、蓬远等已经能够满足各种定制液晶显示的需求;很多著名半导体厂商,如Hitachi、Seiko Epson、Toshiba、Holtek、Solomon、Samsung等也相继推出了许多LCD控制驱动器件[2]。

然而,在一些工业控制的人机界面设计中,会遇到微控制器(MCU)与RGB接口TFT-LCD之间的通信问题。现阶段,为液晶屏提供时序信号可通过FPGA、CPLD等可编程器件实现。由于可编程器件面积较大、成本较高,因而通常只在需要对电路进行灵活配置的情况下才使用[1]。另外,市场上很多设备采用专用的显示控制芯片来完成显示控制,该方案硬件设计简单,其性能完全由控制芯片决定,不受设计影响,因此性能稳定,但采用专用的控制芯片易受供货周期影响[3]。

基于实验室现有条件考虑,文中以现有的专用控制驱动器SSD1963和液晶显示器TM070RDH13如何构成结构紧凑、成本低廉、简单易用、性能优良的人机界面的设计进行综合阐述。

1 方案设计

根据MCU是否集成LCD控制器,可设计为2种不同的方案,下面将对这两种方案进行详细说明。

1.1 方案1 MCU集成LCD控制器

目前,部分功能比较全面的单片机本身集成LCD控制器,如NXP公司的LPC1788等。对于此,MCU驱动RGB接口TFT-LCD方案如图1所示。图中,外部扩展RAM作为LCD控制器帧缓存,LCD控制器通过LCD DMA控制器访问帧缓存数据,LCD控制器的配置寄存器与CPU系统总线相连。

图1 集成LCD控制器的MCU驱动TFT-LCD结构

方案1在硬件方面虽不需要额外附加LCD控制器,但是仍然需要外部扩展RAM作为数据帧缓存。从而呈现出内置LCD控制器对内存带宽的高占用的缺点[1]。从软件方面来看,RAM和LCD控制器进行数据传输无疑占用了微控制器时间资源。另外,该方案只针对集成LCD控制器的MCU,而目前常用的工业用单片机(TI、NXP等公司)只有少数集成LCD控制器,因此该方案不具有普遍性。

1.2 方案2 MCU不集成LCD控制器

MCU不集成LCD控制器,则必须选择合适的LCD控制器解决MCU与显示控制接口时序问题。下面以SSD1963 LCD驱动器为例对该方案进行详细阐述。

整体设计方案如图2所示。微处理器可以通过不同宽度的总线或者I/O口与LCD驱动控制器建立连接,以传送图片或者命令数据。图片数据经LCD显示驱动器SSD1963处理,转换为相应的像素数据,最后输出至TFT-LCD进行显示。另外,LCD驱动器SSD1963内部集成1 215K的帧缓冲器[3],支持高达864×480像素点的24位真彩色图片的显示。与方案1对比具有以下优势:

1)硬件设计简单。由于SSD1963内部有1215K帧缓冲器,因此不必如方案1一样,必须外部扩展足够大的RAM区作为帧缓存区,从而硬件设计得到了简化。

2)对MCU要求低。SSD1963驱动器可通过不同宽度接口与MCU互连。只要MCU的IO引脚数或者总线能够满足接口宽度,就可以实现MCU对液晶屏的显示控制。接口宽度最低至8位,对于目前使用的8/16/32位MCU,很容易满足接口宽度。

3)通用性强。实际应用中,当确定了使用的RGB接口LCD型号后,除了对TFT-LCD所必需的电源做相应处理外,无需改变其他硬件设计。

图2 SSD1963 驱动TFT-LCD结构

2 硬件电路设计

2.1 SSD1963特性及结构

SSD1963显示驱动器是Solomon Systech公司生产的一款TFT真彩色液晶屏显示控制器,内部集成1 215 KB的帧缓冲器,支持864×480像素点的24位真彩色图片的显示。芯片支持不同总线宽度的微处理器并行接口用以接收来自微处理器的图片数据和命令。它支持与普通的RGB TFT-LCD直接互连,色彩深度达到每像素点24位[3]。其具体特性如下:集成1 215K帧缓存RAM;支持TFT18/24位RGB的LCD接口;集成PWM调节背光亮度;可编程亮度、对比度和饱和度;可通过不同宽度接口与MCU进行连接,宽度可以为8/9/16/18/位;内部集成时钟发生器;4个GPIO,可以模拟不同的接口;内核电压+1.2 V,并可工作在睡眠模式;I/O和LCD供电电压为1.65~3.6 V。

芯片内部结构如图3所示。MCU接口主要完成与微控制器通信、传输控制信息和图像数据;帧缓冲区对正在或即将显示的图像数据进行存储;LCD控制器用来图像数据处理,与RGB接口的TFT-LCD进行数据传输。

图3 SSD1963内部结构

图4 SSD1963电路原理

2.2 显示驱动器外围电路

图4为该芯片实际连接的电路图。SSD1963分为80引脚的BGA封装和128引脚的LQFP封装2种芯片类型,本设计选择后者。

SSD1963与MCU接口采用16位宽度总线连接,也可以根据不同需要,选择其他宽度总线接口方式。在实际测试中,驱动器与MCU的IO口相连,使用IO口模仿读写时序;驱动器的MCU接口有2种工作模式:6800模式和8080模式。CONF引脚用来选择工作模式。当CONF接低电平时,MCU接口工作在6800模式;当CONF接高电平(3.3 V)时,接口工作在8080模式。本设计选择后者,即8080模式。另外,时钟输入方式有2种选择,可以是有源晶振输入至CLK引脚,也可以使用时钟振荡器。如果使用时钟振荡器,一定要把CLK引脚接地,因为该引脚和时钟振荡器的引脚是由或门连接的。本设计采用10 M的晶体振荡器,经PLL倍频后,使系统工作时钟为100 MHz。当PLL寄存器配置并使能后,必须等待100 ms使PLL进入锁定状态。另外,引脚TE是LCD控制器给MCU的反馈信息,它能够显示控制器的状态。当在非显示时期,该引脚为高电平,通知微处理器可以传输数据到缓冲区,从而避免了显示数据被打断。由于SSD1963工作速度高于实际应用的MCU速度,此处悬空,不使用该功能。引脚D/C#引脚用来说明输入的是图像数据还是命令数据。引脚高电平传输图像数据,引脚为低电平传输的是命令数据[3]。

在实际应用中,TFT-LCD选择使用TIANMA公司的TM070RDH13,分辨率为800×480[4],通过24位RGB信号和一些控制信号与显示驱动器相连。SSD1963与LCD接口电路在此不多述,详细信息参考应用手册[4]。

2.3 电源设计

SSD1963正常工作时,所需电压分别为VDDIO、VDDD、VDDPLL和VDDLCD,其中,VDDIO为IO口供电电源,其范围1.65~3.6V,选择为3.3 V;VDDD和VDDPLL为内核工作电压,为1.2 V;VDDLCD为LCD提供的接口电压,其范围为1.65~3.6 V,选择为3.3 V,因此芯片正常工作只需要3.3 V和1.2 V电压即可。两电压实现可采用专用电压接口芯片,本设计采用的电压芯片分别为AMS1117系列芯片,输出固定为3.3 V和1.2 V[5]。3.3 V电路如图5所示,与3.3V电路相比,1.2V的电路图只是芯片不同。

另外,TM070RDH13型号的LCD工作时,需要其他3个电压:+10.4 V、+16 V和-7 V[4]。这些电压均可由MC34063电源芯片获得,该芯片输出电压可调,最大输出电流为1.5 A[6],具体设计参考手册[6]。

另外,LCD背光需要DC/DC驱动芯片,芯片输入端接显示驱动器PWM,输出端接LCD背光引脚即可,本设计使用的驱动芯片型号为CAT4101,具体设计参考手册[7]。由于篇幅限制,电源设计在此不多述。

图5 3.3V电源原理

3 软件设计

在实际应用中,MCU使用的是TI公司的Cortex-m3内核的单片机LM3S9B96,具体参数可参见手册[8]。为了缩短客户的产品开发时间,TI推出了相配套的驱动库,其中就包括图形驱动库(graphics library),该库除了少部分必须用汇编编写的地方外,其余所有代码完全用C语言编写,容易理解,方便移植,可以支持任何尺寸的图形显示器,提供了独立于硬件的图形用户接口。图形库分层如图6所示,整个图形层共分为3层,其中控件层和基本图形层与硬件无关[7],它们分别实现控件操作和基本图形或字体功能的软件代码实现,这两层的功能实现都是以显示驱动层为基础的。

图6 TI图形库分层

软件驱动层跟硬件联系紧密。其驱动层的软件流程如图7所示。在硬件设计中,SSD1963的MCU接口直接接到单片机的IO口,因此写入图像数据和命令数据时,都需要使用IO口模仿写时序,于是可得到2个函数,WriteData和WriteCommand函数,下面以WriteCommand函数代码为例。

图7 驱动层软件流程

完成写命令和写数据函数之后,就可以开始对SSD1963进行初始化配置,在初始化函数中需要配置PLL、PWM、背光控制和显示信息。由于篇幅限制,下面只对PLL的频率进行简单配置,其他配置参考手册[3]。

由硬件设计SSD1963振荡器输入为10 M,要使系统时钟为100 M,即为10M*(m+1)/(n+1)等于100 M,因此PLL频率配置信息如下:

另外,软件驱动层还需要实现整个图形库中最基本的几个显示函数[10]:

函数依次实现的功能为:画一个像素点、画水平序列的像素、画一条水平线、画一条垂线、画一个矩形和清除缓存中图形数据。除了编写图形库所必须的这几个函数外,背光开关设置等,也需要自己编写。

在上述工作完成之后,把底层函数移植到驱动库的底层,作为图形库与硬件之间的接口,应用程序就可以直接调用基本图形层和控件层函数,以实现更多更复杂的显示功能。

4 功能测试与结果分析

4.1 功能测试

功能测试分为硬件测试和软件测试。硬件测试主要包括虚焊和短路检测、LCD工作电压测试调整以及电源功率检测;软件测试主要包括底层驱动函数测试,如线显示、矩形框显示以及背光亮度控制等。

1)硬件测试。

硬件测试旨在排除电路板在焊接过程中可能存在的虚焊和短路。方法:电路板在通电之前,用万用表检测一下驱动板的电源和地之间电阻大小。若电阻很小,则可能存在短路,仔细检查可能存在的引脚短接。确保电路板不存在短路现象后,外接+5 V稳压电源,用万用表测试LCD工作所需电压,即VGH、VGL和AVDD。经测试,其对应电压依次为15.9、-7.05和10.45 V,满足设计要求。由于总电源的功率主要消耗在LCD背光显示上,因此电源功率测试需要配合软件开关背光。背光亮度由SSD1963 PWM输出引脚控制调节。通过改变SSD1963中寄存器的数值,控制PWM方波占空比来改变背光亮度变化。背光灯亮度级别共分为256级,寄存器赋值0xFF时,亮度最高,PWM占空比为100%;赋值0x00时,背光灯变暗。

2)软件测试。

软件测试主要对底层驱动函数和图形控件层进行测试,如画点、画线、画矩形框和背光开关等函数。

首先,对图形库底层函数进行测试。在主函数中依次调用像素点、直线、矩形框等子函数,观察LCD显示屏显示效果,实验表明底层函数达到了期望的效果。然后,对图形库中的图形层以及控件层进行测试,保证底层驱动与高层的接口函数正确,就能直接调用图形层和控件层函数。如图8为SSD1963驱动板驱动LCD点、线、圆形等底层驱动函数显示效果。

图8 SSD1963驱动板底层函数显示效果

4.2 结果分析

为了说明SSD1963驱动方案的优点,使用上述2种方案分别驱动同一块RGB接口的LCD—TM070RDH13。其中对应方案1使用LPC1788单片机。LPC1788是NXP公司的一款单片机,该单片机自带LCD控制器,使用32 MB的SDRAM作为帧缓存,符合方案1要求。另外,2种方案均使用像素点24位色彩深度。

1)性能和稳定性。

长时间点亮液晶屏,并观察如图9显示效果。

图9 显示效果对比

图9(a)中SSD1963驱动方案显示图片比较平滑,对比度和背光亮度较适中。另外,观察图9(b),显示一段时间后,有很明显的条纹状波动。由于使用同一块LCD,排除了LCD本身的原因。初步断定,由于长时间运行,芯片温度升高,LPC1788自带LCD控制器热稳定性不好。从而,说明SSD1963驱动方案显示出较强的稳定性。

2)图片帧数据刷新速度。

分别使用LPC1788自带的LCD控制器和SSD1963(MCU使用LM3S9B96)驱动TM070RDH13,循环显示图9所示图片。通过测试,前者10 s能够刷新显示22次,而SSD1963驱动显示相同的图片且在相同的时间内可以刷新27次。即对于相同的像素数据,SSD1963帧存取速度更快一些。这是由于LPC1788驱动LCD时,其缓存数据需要从SDRAM存取,因此,在存取时间上相对SSD1963略慢。

3)为了突出SSD1963通用性和灵活性的特点,使用不同系列MCU控制SSD1963驱动板,对另一型号液晶屏-AT043TN24进行了显示控制,如图10为8051MCU驱动显示效果。

图10 8051 MCU控制驱动板显示效果

5 结束语

采用以SSD1963驱动芯片为核心的TFT-LCD驱动板,从硬件设计和软件调试结果看,其工作可靠,效果良好。既能够满足整个项目要求,又节省了成本。实际应用表明,该系统具有可靠性强,工作稳定等特点,能够满足项目需求,具有一定的使用价值。但也有不足之处,由于SSD1963内部缓存只有1 MB多,对于复杂显示界面的设计可能无法胜任。

[1] 纪宁宁, 孙灵燕. 3C2440A驱动RGB接口TFTLCD的研究[J]. 液晶与显示, 2008, 23(1): 96-97.

[2] 怯肇乾. 人机界面中的LCD控制驱动与接口设计[J].单片机与嵌入式系统应用, 2004, 10(3):9-10.

[3] Solomon Systech. SSD1963 technical data[EB/OL]. [2012-09-13]. http://www.solomon-systech.com.

[4] ShangHai Avic Optoelectronics. TM070RDH13 product specification version 2.0[EB/OL]. [2012-10-08]. http://www. zlgmcu.com/tianma/.

[5] Advanced Monolithic System. AMS1117 datasheet[EB/OL]. [2012-10-22]. http://wenku.baidu.com.

[6] Motorola. MC34063 datasheet[EB/OL]. [2012-10-22]. http:// www.icpdf.com.

[7] On Semiconductor. CAT4101 datasheet[EB/OL]. [2012-11-15]. http://www.alldatasheet.com.

[8] Texas Instruments. Stellaris LM3S9B96 microcontroller datasheet[EB/OL]. [2012-11-15]. http://www.ti.com.cn.

[9] Texas Instruments. LM3S9B96 development kit users manual[EB/OL]. [2012-11-21]. http://www.ti.com.cn.

[10] 广州周立功单片机发展有限公司. Stellaris外设驱动库用户指南[EB/OL]. [2012-11-21]. http://www.zlgmcu.com.

Design and realization of the RGB interface LCD driver based on SSD1963

LIU Fanming, WANG Zhenpeng, ZHANG Mengyu

College of Automation, Harbin Engineering University, Harbin 150001, China

In order to solve the problem of RGB interface LCD connecting with MCU, a hardware design based on SSD1963 is proposed. By communicating and debugging using the MCU LM3S9B96, underlying software driver program is also successfully designed. In the actual test, SSD1963 driver board connecting with the LM3S9B96 control panel has achieved the display of graph and text. The test results show that both hardware and software designs are congruent with the expectation. In addition, the design has been employed in the whole program, which has reduced the cost of the LCD with other driver board.

SSD1963; graphics library; LCD driver; LM3S9B96; RGB

TN409

A

1009-671X(2014)01-0016-06

10.3969/j.issn.1009-671X.201301017

2013-01-15.

刘繁明(1963-), 男,教授,博士;.王振鹏(1986-), 男,学生,硕士.

王振鹏, E-mail: wzpstudy@126.com.

猜你喜欢
驱动器单片机芯片
芯片会议
气动网络多腔室弯曲软体驱动器结构优化
关于射频前端芯片研发与管理模式的思考
藏起驱动器号确保数据安全
基于单片机的SPWM控制逆变器的设计与实现
基于单片机的层次渐变暖灯的研究
基于单片机的多功能智能插排
基于单片机的便捷式LCF测量仪
空间大载荷石蜡驱动器研制
多通道采样芯片ADS8556在光伏并网中的应用