1 引言
近年来,随着计算机技术、大规模集成电路和专用元器件的飞速发展,256级灰度的全彩色LED大显示屏在国内发展迅速,但是目前其显示效果并不理想:一方面,LED的发光效率受制造工艺的影响表现出固有的差异,而且这种差异还随时间发生变化,这样由大量LED组成的大屏幕显示时会出现一些随机的暗斑或亮斑,严重影响显示要求,需要采用在线的点校正消除这种影响,另一方面,现有的全彩色大屏幕一般亮度等级不足,即便采用了非线性灰度控制技术,在低亮度等级上表现色彩的能力仍然较差,显示的层次感不强,由亮度等级不足导致的另一个问题是进行γ校正不容易,从而使全彩色LED大显示屏产生一定的颜色失真。
TI公司的最新推出的TLC5941驱动芯片具有点校正和高亮度等级的特点,由他组成的大屏幕驱动方案一定程度上解决了上述问题,可以构成高性能的显示系统。
2 TLC5941芯片介绍
2.1 芯片特点
TLC5941共有28个引脚,是一个16通道的LED恒流驱动器,能够同时驱动16个LED,每通道最大驱动能力80mA,每个通道可以通过PWM方式根据内部亮度寄存器的值进行4096级亮度控制,内部每个通道亮度寄存器的长度是12位,另外,流动每个通道LED的驱动电路由内部6位的点校正寄存器的值进行64级控制,而且驱动电流的最大值可通过片外电阻设定。
64级电流控制提供了LED点亮度校正的能力,4096级亮度调整则保证了即使在较低的亮度等级小,点阵中的每个点也有多达256级的灰度表示,从而红绿蓝全彩屏可有16M色的色彩表达能力,这两点对于高质量的彩色大屏幕显示是额外重要的。
相对于传统的彩色大屏幕显示系统,设计中利用可编程逻辑芯片(或高速CPU)集中产生PWM进行亮度控制,采用TLC5941后,由于驱动芯片TLC5941完成了PWM亮度控制,可编程逻辑芯片(或高速CPU)只需要处理缓存管理、亮度和点校正数据的输出,设计复杂度降低,而且由于PWM的亮度控制与数据串行移出无关,可以很方便地获得较高的帧频,取得很好的动态显示效果。
2.2 管脚功能
TLC5941的所有内部数据寄存器,亮度寄存器,点校正寄存器和错误状态信息都是通过串行接口存取的,最大串行时钟效率为30MHz。
TLC5941的串行接口方式类似于74HC595,接口部分由5根信号线组成。
Mode(模式信号):Mode=0是亮度信号输入模式,Mode=1点校正信号输入模式。
SCLK(串行时钟),在每个SCLK的上升沿,当Mode=0输入数据和输出数据移入和移出内部192位(16通道×12)的亮度串行移位寄存器,当Mode=1输入数据和输出数据移入和移出内部96(16通道×6)位的点校正串行移位寄存器。
SOUT:串行数据输出。
SIN:串行数据输入。
XLAT:数据锁存,在XLAT的上升沿,如果Mode=0,亮度串行移位寄存器锁存到亮度控制寄存器,随机控制亮度PWM输出,如果Mode=1,点校正串行移位寄存器锁存到点校正控制寄存器,控制电流的输出。
为了保障彩色大屏幕的可靠运行,TLC5941提供了每一路LED开路和过温检测的能力,管脚XERR是集电极开路输出,用于出错时报警,16个通道中无论哪个通道有错误发生,XERR就会被拉到低电平,通过查询芯片的内部状态信息,就可以知道哪一路出现故障,系统中所有TLC5941的XERR管脚可以接到一起,通过上拉电阻接到高电平,通过监控这个信号,系统可以在运行过程中进行自我诊断。
另外TLC5941还提供了GCLK管脚,输入一个时钟信号可以同步PWM的产生。
3 基于TLC5941的动态扫描驱动电路
本设计对象是640×480的全彩显示系统,这里只介绍他的驱动部分,整个屏由4块子屏组成,每一块子屏管理640×120象素大小的范围,都有单独的驱动电路,由于是室内屏,驱动设计采用动态1/8扫描驱动方式。驱动电路的控制由可编程逻辑器件EPM1270(Altera)实现,为了提高帧频,串行数据采用15路并行输出的方法,每路对640×8象素大小的范围进行刷新,图1中给出的是子屏驱动中单路的电路框图。
这里使用TLC5941级联组成LED点阵的列驱动,行驱动部分由74HC138和STM4953(PMOS管,4.5A)构成。
EPM1270芯片负责管理显示缓存,处理外部总线接口部分和维持LED点阵的动态扫描过程,EPM1270内部模块结构如图2所示。
为了防止LED动态扫描过程中对寄存器的访问与外部总线在更新显示数据时访问寄存器之间产生冲突,这里也是采用了双缓存的结构,当LED扫描过程访问的是一片存储器,暴露在总线接口的就是另一片存储器,外部接口的特定的扫描控制寄存器操作时,引起两片寄存器的交换,同时显示内容也得以更新,存储器采用两片静态RAM——IDT71V424(512k×8),EPM1270与存储器的接口低8位采用地址数据复用以节省EPM1270的I/O管脚。
存储器中前26k开始存储的是每点的色彩信息,每象素3个字节24位表示颜色,每个字节分别对应于一个象素的红绿蓝3个象素的彩色亮度值,后256k开始存放的是经过γ校正修正后的点校正数据。
整屏的亮度由EPM1270扩展的亮度寄存器控制,每个TLC5941写入时,EPM1270控制先从当前象素对应的存储器空间读出每个显示单元的色素值,再与亮度寄存器值运算后得到12位的每通道TLC5941的亮度值(控制每个象素的亮度和色彩),通过并/串转换后输出,同时保持Mode=0;输出亮度后,从后256k的对应空间读取6位点校正数据,并/串转换后输出,同时保持Mode=1,这样完成了一个通道数据的输出,将一行对应所有的通道数据输出完毕后,暂停串行时钟,置Mode=0,在XLAT脚产生一个正脉冲,再置Mode=1,在XLAT脚产生正脉冲,分别将数据锁存入TLC5941内部对应的控制寄存器中,一行数据输出完毕。
图3中给出具体过程。
4 结语
采用Verilog语言对EPM1270进行逻辑设计,综合后占用芯片资源的79%,利用上述设计构建的彩色大屏幕系统刷新频率达到60Hz,通过γ校正和点校正,全屏各象素点亮度均匀,层次感很强,达到了设计要求,这个基于TLC5941的全彩色大屏幕驱动方案联机屏和脱机屏都可以使用,实践证明具有良好的显示效果。