本文应用MSTAR公司推出的MST717C显示驱动芯片驱动TFT液晶显示屏,作为车载多媒体信息显示终端,具有成本低廉、显示效果好、应用简单等特点。
重点讲述了MST717C外围电路的设计以及基于MSTAR公司Maria软件架构的开发,对TFT 液晶显示屏驱动开发者具有一定的帮助作用。
目本文采用台湾晨星(MSTAR)公司针对中小型液晶屏开发的MST717C系列芯片,具有视频解码(VIDEO Decoder)能力,支持多种模拟视频信号输入,内置缩放引擎,内置51-MCU,16色OSD显示等功能,非常适合于车载多媒体显示终端应用。
1 系统总体设计
MST717C支持NTSC、PAL、SECAM视频制式信号输入,内置2D梳状滤波器,2路CVBS输入,2路S-VIDEO输入,支持模拟RGB输入(如来自于PC机的模拟VGA信号)。所支持的视频制式如480i、480p、576i、576p、720p、1080i,模拟 RGB信号分辨率支持640×480、800×480、800×60-0。内置亮度(Brightness)、对比度(Contrast)、饱和度 (SaturaTIon)和灰度(Hue)调节,内置3通道GAMMA曲线调节,内置缩放引擎,最大可以支持1366×768分辨率。数字PWM控制器,可编程控制40~70kHz频率范围数据使能,行同步信号输出,150~300Hz频率范围场同步信号输出。内置51-MCU,3线串行总线接口,内置硬件I2C、SPI,支持16色256个可编程字符OSD。
2 系统硬件设计
2.1 MST717C外围电路
模拟视频信号输入都需要对地进行阻抗匹配,如图2为模拟RGB输入阻抗匹配电路,输入信号先通过一个120R的磁珠隔离高频噪声,然后进行75 Ω对地阻抗匹配与35 Ω输入阻抗匹配,靠近芯片端放置47nF陶瓷电容耦合输入。对于CVBS同样需要进行对地阻抗匹配与输入阻抗匹配,典型值为62Ω或75Ω,耦合电容可以选用0.1 μF陶瓷电容。
2.2 LED背光驱动电路
常见的TFT LCD panel模块背光主要分CCFL与LED两种,CCFL(冷阴极荧光灯管)技术成熟,成本低廉,亮度(luminance)高,通常在400cd- /m2以上;缺点是高压交流驱动(几百到上千伏),驱动电路复杂、效率低、发热量大。LED背光的主要特点是低压直流驱动(十几伏到几十伏),驱动电路简单、效率高、发热量小;缺点为成本高、亮度低、色彩还原能力差。目前一些生产LCD模块的大厂已经通过增加LED数量解决了背光亮度低的问题,一些甚至可以达到600cd/m2。另外通过采用RGB三元色LED来补偿色彩还原能力,效果比CCFL模式更好,各大厂家都看好LED背光模式,也是以后LCD panel背光发展的主要趋势。
此处我们采用群创光电开发的8寸宽屏LCD模块A1080TN03,物理分辨率为800×480,26万色,LED背光,典型驱动电压为 10V,驱动电流为100~200mA。背光电源输入为5V,采用DC-DC升压芯片KB4317,将输出稳定在10V。
2.3 音频信号处理与放大电路
PT2314是台湾普诚科技开发的一款低成本高性能的四输入数字音效处理芯片,支持音量(Volume)、左右声道平衡(balance)、高低音(Treble&Bass)、响度(Loudness)等控制,支持可选择增益控制(Selectable input gain),支持标准的I2C接口。PT2314控制口I2C连接到MST717C的软件模拟I2C接口上,需要注意的是I2C传输线需要进行上拉以保证传输的可靠性。
3 系统软件设计
3.1 Maria软件总体框架
Maria是由MSTAR公司为MST71X系列芯片应用推出的公版驱动软件源代码,该源代码主要基于KEIL C51语言,但是由于其相对较复杂,源代码量大(上万行),给普通应用者带来一定的困难。Maria源代码的风格与linux内核源代码的风格有些相似,主要有Device、inc、kernel、msFunc、msLib、osd、project、tv等文件夹。
Device文件夹下为用户具体设备的驱动代码,此处我们将PT2314的驱动代码添加进来,放在一个命名为PT2314.C的文件内,主要是对PT2314芯片进行开机初始化以及给出一些音效操作类的接口函数。
Inc文件夹下主要是一些头文件,包括全局变量的申请Global.h,字模头文件Font.h,基于51内核的微控制器头文件mcu.h,以及各种屏的参数定义等头文件。
Kernel文件下主要包含主函数main.c、mcu初始化mcu.c、全局变量初始化实现Global.c、中断服务函数实现isr.c、调试帮助函数实现Debug.c、MST7lX系列芯片寄存器配置函数mStar.c以及一些常用函数misc.c等。
msFunc文件下主要是一些功能操作类函数的实现,如按键类Keypad.c、红外遥控类IR.c、IRFunc.c、OSD菜单类 msOSD.c、游戏类Game.c、菜单功能类MenuFunc.c等。
msLib文件下是一些关于DSP处理器的动态库文件,对开发者隐蔽,用户可以不管这些文件。
Osd文件下包含一些字体和图片类文件,用户可以将自己想要的文字(如汉字)、二进制图标等通过取模软件取模后,添加到相应的文件当中。
Project文件下主要是关于KEIL C的工程文件,分64k和128k两种,一般选择128k较好。
Tv是MSTAR专门为模拟电视用户写的一些操作函数。
3.2 各函数功能的具体实现
3.2.1 音效处理芯片驱动
本系统主要在MST717C外围扩展了音效处理芯片PT2314。PT2314支持标准的I2C协议,与24LC16共用MST717C的 GPl00与GPI01软件模拟I2C,MST717C的硬件I2C被用作芯片程序烧写功能。
3.2.2 OSD菜单定制
Maria提供了一个标准的OSD菜单框架,主要包括色彩、对比度、亮度、屏幕显示区域调节、定时关机等。Maria OSD菜单包含有三级菜单,一级菜单根目录root;二级菜单包含图像、音量、功能、系统、时间共5个目录;三级目录即各二级目录内部菜单项,如图像菜单下含有亮度、色度、对比度、语言等四个三级菜单。用户可以自己添加和删除任意级别菜单,本系统中选择PT2314音效处理芯片,支持四通道立体声输入,主机可以通过I2C总线对音量、低音、高音、平衡等选项分别进行控制,故在音量二级目录下建立音量(Volume)、低音(Bass)、高音 (Treble)、平衡(Balance)四个三级目录。MenuTbl.h文件中建立对应的菜单数组MenuItemTypecode AudioMenuItems[]={):其中MenuItem-Type是个数据结构,其原型为
包含有菜单项的相对位置、背景色、被选中时颜色、关联的下一级菜单、菜单描绘类型、显示文本、按键对应事件、功能、显示类型、标志等。各项意义基本上可以由文字描述理解,需要注意的是MST717C OSD菜单只支持16色显示。此处以PT2314一个子菜单为例展示,
3.2.3 按键事件
用户按键采用ADC键值采样区别,不同的按键被按下时,ADC得到不同的电压值(如图4)。程序主循环通过不断地执行按键扫描函数Key ScanKeypad(),来查询有无键被按下。若有键被按下时,程序首先会将其与上次键值(g ucLastKeypad)进行对比,如相等则执行重复按键事件EventRepeatProcess();不同则执行按键事件 EventProcess(),并将此次键值设置为g ucLastKeypad。
Maria按键事件主要由一个定义为KeyEventType类型的数据结构来完成。该数据结构中第一个元素为按键输入状态,这里包含两种输入状态INPUT PRESS与INPUT_HOLD,其中INPUT_PRESS为按键按下状态,仅代表被按下时状态;INPUT_HOLD为按键按下时持续状态,相当于快速连击。第二个元素为按键按下时将会执行的事件,其数据结构为MenuItemAcTIonType。注意不同KeyEventType事件时同一按键对应的Menultem-AcTIonType事件也不同,以此来区分各级目录下同一按键所执行的不同功能。最后一个元素为输入类型 InputPortType,为枚举型变量,代表不同视频源状态按键输入,如Power按键输入时对应为Input_AllPort,即该键在任何状态下都有效;而遥控器按键1输入时为1<<In-put_TV,即该键值在其他状态下无效。
4 结束语
MST717C是一颗性价比非常高的显示驱动芯片,所需的外围器件也非常少,非常适合车载显示领域应用。需要注意的是显示驱动对电源稳定性要求比较高,PCBLayout时模拟地与数字地最好进行分割,保证视频信号的稳定性,如成本允许最好选择四层板。电源处理不好很容易出现水波纹,另外 VCOM电压一定要稳定,以保证显示图像的稳定性。此外Maria软件架构有些复杂,对开发者的C语言要求有些高,需要花费一定的时间去读懂其代码,进而进行自己的二次开发。