基于Blackfin DSP的TFT LCD液晶接口设计
ADI公司的Blackfin系列处理器具有强大数据处理和控制能力,在仪器控制、音视频处理等系统中应用广泛。在应用中显示输出是必要的,文中根据Blackfin DSP处理器的特点介绍了一种简单实用的液晶接口设计方法。
TFT LCD液晶显示器与数码管和点阵液晶相比具有体积小巧、控制简单、可以显示丰富多彩的图像视频信息。文中以ADSP_BF532为例介绍了一种Blackfin DSP处理器与TFT LCD液晶显示器的接口设计,在Blackfin DSP的系统设计中具有一定的参考价值。
1 Blackfin DSP处理器与TFT LCD液晶屏简介
Blackfin DSP处理器是基于ADI公司和Intel公司联合开发的微信号架构(MSA)的一种16位定点DSP处理器,具有较强的数据处理能力,能够完成视频、图像、音频和通信数据的数字化处理等。同时还具有综合控制能力,单芯片即可完成通常由DSP+控制器完成的功能。Blackfin DSP处理器可广泛应用在各种嵌入式设备、仪器中,完成系统控制和数据处理。
PPI(Parallel Port Interface)接口是Blackfin DSP处理器的并行数据接口,主要用于数据的高速传输。它包括16位数据线,3个同步信号和一个时钟信号。PPI接口直接与DMA通道整合,数据传输宽度可灵活配置,支持8位、10~16位等多种数据宽度。PPI的工作模式有两种:通用模式(GP模式)和ITU-656模式,其中通用模式下可方便地与数字液晶屏连接。
Blaekfin DSP处理器的DMA传输可以是内部与外部存储器之间,也可以是内部或外部存储器与SPI口、SPORT口、UART口、PPI口之间。
Blackfin DSP处理器的DMA传输可基于描述符配置,也可基于寄存器配置。基于描述符的DMA传输使用存放在存储器内的一组参数来初始化一个DMA传输。基于描述符的DMA传输允许多个DMA序列链接在一起,一个DMA传输完成后紧接着进行下一个DMA传输。基于寄存器的DMA传输允许处理器通过对控制寄存器编程来启动一个DMA传输。一次DMA传输完成后,可以用原来设置的值自动更新控制寄存器,连续传输数据。
Blackfin DSP处理器支持二维DMA传输,特别适合于视频数据传输。二维DMA的相关控制寄存器如下:
配置寄存器(DMAx_CONFIG/MDMA_yy_CONFIG):设置二维DMA使能方式,中断产生方式。
内部循环计数寄存器(DMAx_X_COUNT/MDMA_yy_X_COUNT):保存二维DMA内层循环的数目(应≥2)。
内层循环地址增量寄存器(DMAx_X_MODIFY/MDMA_yy_X_MODIFY):保存每一次内层循环计数器加1后DMA操作地址在内存中的增量,此增量应该是二维DMA操作的数据单元长度的整数倍。
外层循环计数寄存器(DMAx_Y_COUNT/MDMA_yy_Y_COUNT):保存外层循环的数目。
外层循环地址增量寄存器(DMAx_Y_MODIFY/MDMA_yy_Y_MODIFY):保存每一次外层循环计数器加1后DMA操作地址在内存中的增量,可以是负值,此增量应该是二维DMA操作的数据单元长度的整数倍。
AT070TN83 V.1是群创生产的一款数字液晶显示屏,屏幕尺寸为7英寸(17.78 cm),分辨率800×480,23行消隐行。采用5 V(背光)和3.3 V(I/0)双电源供电。该液晶具有DE模式和HV模式,考虑Blackfin PPI的接口特点,本系统采用HV模式进行数据传输。
液晶时序如图1和图2所示。
图l和图2中相应的参数参照AT070TN83 V.1手册。液晶同步时序可以看做是满足一定要求的PWM波,可利用Blackfin DSP的定时器支持PWM输出的特性输出此信号。
2 系统总体设计
该液晶屏的输入格式为RGB666格式,而ADSPBF532的PPI接口数据线只有16位,根据人眼的视觉特性(对绿色最敏感),将红色和蓝色的最高位和最低位分别接在一起,其他数据线对应连接。
液晶所需的同步信号HS和VS分别由ADSPBF532的定时器1和定时器2产生。通过配置ADSPBF532定时器的相关寄存器可以精确地控制输出PWM
波的有效沿,周期和占空比,完全匹配液晶时序。
显示所用的时钟信号可以由外部的独立晶振产生,分别输入液晶和DSP的PPI口。也可以由DSP的输出时钟分频产生,再分别输入液晶和DSP的PPI口。本系统使用独立的25 MHz晶振将时钟信号直接输给液晶和PPI。
该液晶内部没有显存,因此在使用时系统需要扩展SDRAM,在SDRAM中开辟一块区域作为显示缓存,将需要显示的数据写入缓存,再由DMA传送到PPI口进行显示。
系统总体设计框图如图3所示。
在外部25MHz时钟的驱动下DSP按照寄存器的配置输出相应的同步信号,同时将SDRAM对应区域中的数据从PPI口输出。
3 软件设计
(1)显示缓存数据的存储。
该液晶每行800点,每个点对应16位数据,因此每行需要800×2 bit。每屏需要525行,包括前消隐23行,中间480行有效数据,后消隐22行,因此开辟显示缓存大小为525×800×2 bit。为了操作方便,可定义一个二维数组,二维数组中的数据与TFTLCD上的点具有对应关系(数组中每两个字节对应LCD上的一个点)。由于需要将显示缓存定义在SDRAM中,因此在工程中需要添加ldf文件,将显示缓存指定存储在SDRAM中。
缓存数组的定义如下
section(“SDRAM0”)char DisplayBuffer[525][800*2]
(2)定时器初始化。
使用定时器1和定时器2分别作为行同步信号和场同步信号,根据液晶时序配置定时器寄存器,包括输出时钟周期,脉冲宽度,有效沿,PWM模式输出等。为了与液晶同步,使用PPI的输入时钟驱动定时器。
Blackfin定时器寄存器设置如下
(3)PPI初始化。
使用通用模式(GP模式)输出数据,两个外部帧同步信号,PPI_FS1和PPI_FS2下降沿有效,PPI_DEIAY设置延时时钟个数(行同步变高到数据输出间的时钟个数)。
Blackfin PPI寄存器设置如下
* pPPI_DELAY=45;//输出数据前的延时
* pPPI_COUNT=800*2-1;//每行传输字节数,比实际值小1
注意:AT070TN83 V.1手册中给出的输出数据前的延时参数为40个时钟周期,但实际使用中发现设为40时屏幕显示图像左偏,说明延时不够,经试验应为45个时钟周期。
(4)DMA初始化。
使用PPI输出数据时必须使用DMA传输。采用寄存器配置模式,配置DMA传输的起始地址、传输的数据个数、地址增量和传输方式。本系统设置为二维传输方式,行地址增量设置为2(16位传输,2 bit),纵向地址增量设置为2(上一行最后传输的地址与下一行起始地址差,2 bit),DMA传输模式设置为自动缓冲模式。
Blackfin DMA寄存器设置如下
(5)主程序流程图,如图4所示。
主程序中首先初始化DSP(包括SDRAM,EBIU等),定时器,PPI寄存器和PPI DMA寄存器配置的先后顺序要求不是绝对的,但是PPI DMA和定时器的使能必须在最后,因为定时器使能后将触发DMA开始传输数据,所以必须在使能PPI DMA之后再使能定时器。需要改变显示内容时改变对应数组中数据即可。
4 结束语
经调试,液晶正确显示,并且屏幕稳定无闪烁,成功应用在某仪器系统中。由于Blackfin系列处理器的内核都是相同的,接口操作类似,因此文中介绍的方法对Blackfin系列处理器的液晶接口设计具有参考价值。
暂无评论