我们从2011年坚守至今,只想做存粹的技术论坛。  由于网站在外面,点击附件后要很长世间才弹出下载,请耐心等待,勿重复点击不要用Edge和IE浏览器下载,否则提示不安全下载不了

 找回密码
 立即注册
搜索
查看: 1094|回复: 0

LCD控制器驱动的24位TFT真彩屏接口设计 - 音频/视频/显示 -

[复制链接]

该用户从未签到

1万

主题

1292

回帖

2万

积分

管理员

积分
29577

社区居民最爱沙发原创达人社区明星终身成就奖优秀斑竹奖宣传大使奖特殊贡献奖

QQ
发表于 2013-3-30 09:36:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区

您需要 登录 才可以下载或查看,没有账号?立即注册

×
在嵌入式设计中常常会使用LCD屏,现在常用的屏大部分都是高性能的。因为LCD屏的生产厂商很多,标准也不统一,LCD屏往往不能与LCD控制器无粘合连接,所以在使用LCD屏时,厂家还会推荐使用其专为LCD屏是设计的时序芯片,例如,Sharp的LCD LQ035Q7DB02配套的控制器为LZ9FC22;日本的LCD屏是16位色的,本身价格很高,控制器成本也非常高,性能却不见得好,采用高性能的24位真彩色屏是比较理想的,但接口逻辑需要重新设计。

1 RGB565-RGB888的转换

以友达光电AUO生产的A06QU01为例,这是一种24位的TFT真彩屏,分辨率为320×240,每个象素由RGB888表示,其控制时序如图1所示,LCD要求的时序由帧同步(VSYNC)、行同步(HSYSNC)、比特时钟(DCLK)及数据(Data[0:7])构成,帧同步和行同步指示每一帧和每一行的开始。A06QU01每帧240行,每行320个象素,每个像素由依次产生的8b红、8b绿、8b蓝(R1,G2,B3,R4,G5,B6…)构成,所以称为RGB888。
  
        

以PXA25x为代表的嵌入式处理器拥有一个LCD控制器,可以将这个控制器配置为最高16位的TFT LCD屏控制器,其控制时序如图1所示,LCD要求的时序由帧同步(VSYNC)、行同步(HSYSNC)、点时钟(PCLK)及数据(Data[0:15]构成,帧同步和行同步指示每一帧和每一行的开始。对于A06QU01,每帧将有240行,每行有320个像素,每个像素由5b红、6b绿、5b蓝构成16位数据,称为RGB565。
将RGB565转换为RGB888要解决2个问题:

1)比特时钟3倍频。LCD控制器每一个像素用一个时钟1次送出16b数据,而LCD撩扛鱿袼匦枰?个时钟,每次获得8b。这样就需要产生1个3倍于点时钟PCLK的时钟。

2)16b到24b数据分解。在LCD控制器送出16b数据时,需要缓存,并分解出RGB信号分别送出,5b红、6b绿、5b蓝构成16位数据可以采用补0的方法,构成8b红、8b绿、8b蓝。数据高位补0时色彩较柔和,低位补0时彩色较艳丽。

通常情况下,使用模拟锁相环技术可以实现均匀倍频,在这个设计中,3倍频时钟与RGB数据必须同步,否则会出现颜色错位;同时锁相环还需要数据分解电路配合使用,这样一个数字和模拟混合的电路会增加成本,因而特别设计使用了数字电路实现非均匀3倍频。具体方案是:使用一个大于6小于7倍的LCD屏比特时钟作为CPLD的主控制时钟,LCD屏的时钟频率约为7M赫兹,所以选择CPLD的主控制时钟频率为48M赫兹。如图1所示,pclk为控制器输出的点时钟,pdata为RBG565数据,pclkout和pdataout是送往LCD的信号,x7pclk为CPLD的定时时钟,在pclk上升沿将pdata存入缓冲器pdatabuf,并将内部状态位datavalid置位,在x7pclk的上升沿,如果检测到datavalid为高,则使pclkout为低,将缓冲器中的数据取出高5位红色信号,补零后送到pdataout,并将datavalid置为低,在下一个x7pclk的上升沿将pclkout置高,8b数据送出到LCD屏。使用这种方法依次将绿色及蓝色信号送出,在蓝色信号送出后,保持pclkout为高,直到下一个datavalid为高,进入下一次转换,从图1中可以看出,数字3倍频信号pclkout不是均匀的,蓝色数据时钟的占空比不是50%。根据LCD屏数据手册的要求,pclkout的占空比变化容许的范围是40%-60%,因而只要调整好x7pclk的时钟频率,还是比较容易产生符合占空比要求的pclkout时钟的,LCD屏正常工作还需要帧同步(VSYNC)和行同步(HSYSNC)信号,这些信号可以由软件驱动程序编程产生。

2 LCD背光及LCD偏置的电源产生器

LCD屏需要特殊的供电,用于背景照明和LCD偏置,现在使用的小尺寸LCD大多数使用LED作为背光,以及-10V的偏置电压,本设计使用的LCD屏是2路各4个白光LED串联,每路需要的供电电压约为10V,电流为20mA。LCD偏置电压为-10V,电流为3-5mA。这些电源利用LCD控制器内部的电源控制器实现。如图2所示,由L1、V1构成升压型DC-DC转换器,L1为高频功率电感,V1为高频小功率开关晶体管。C4和R1构成的微分电路可以提高V1的导通和关闭速度,有利于提高电源效率,V1由脉冲宽度调制信号控制,在导通期间使用L1存储能量,在关闭时电感向负载释放能量,这样V1的集电极上生成高压脉冲信号,这个信号经过D1、C3和C6整流滤波后得到用于LED供电正电压,同样经过C2隔直流后再整流滤波得到用于LCD偏置的负电压,注意,电容C7是正端接地的。LED电流限制使用图3所示的电路,V3和V4为LED驱动管,V2为电流采样管,V2、V3、V4是3个型号相同的晶体管。这3个晶体管的基级相连,因而基极电压相等。因为型号相同,所以基极到发射极电压近似相等,于是,R3、R6、R7上的压降近似相等,这样R3、R4上的电流被转换为R2上的反馈电压。控制器根据反馈电压自动调整图2中的PWM控制信号的占空比,从而改变输出LED供电电压,使反馈电压稳定在0.6V,通过LED的电流稳定在22mA,LCD偏置电压大约稳定在-10V。


         


         



3 数字倍频及数据分解实现

RGB565-RGB888转换器用XC9536实现,如图4所示,来自LCD控制器的信号为:16b数据L_DD0..15、同步信号L_FCLK及L_LCLK、点时钟信号L_PCLK,输出到LCD屏的信号为:8b数据信号LCD_D0..7、同步信号LCD_VSYNC及LCD_HSYNC、时钟信号LCD_DCLK。X7CLK来自于48M赫兹的晶体振荡器,使用Verilog HDL开发。如果连接无误,则上电后加载带有TFT屏驱动的嵌入式Linux内核,一般在LCD屏左上角能看到企鹅图案,如果实际显示的图案位置和色彩不正确,则需要根据实际看到的图像调整LCD控制寄存器中的时序设置,实现正确的显示。

      

4 总结

由于接口标准不统一、将一个新型号的LCD屏接到嵌入式处理器比较困难,需要认真分析LCD控制器及LCD屏的时序和驱动方式,使用低价可编程逻辑电路,可以实现接口的时序转换,LCD屏需要的背光电源及偏置电源可以按本文所述方法,利用LCD屏内部集成的电源控制器实现,也可以通过外接专用的LCD背光电源和LCD偏置实现。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

公告:服务器刚移机,
大家请不要下载东西。
会下载失败


Copyright ©2011-2024 NTpcb.com All Right Reserved.  Powered by Discuz! (NTpcb)

本站信息均由会员发表,不代表NTpcb立场,如侵犯了您的权利请发帖投诉

( 闽ICP备2024076463号-1 ) 论坛技术支持QQ群171867948 ,论坛问题,充值问题请联系QQ1308068381

平平安安
TOP
快速回复 返回顶部 返回列表