首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 维修教程知识 > 单片机栏
基于Blackfin 处理器的TFT LCD 驱动设计
来源:本站整理  作者:佚名  2009-03-31 14:55:42



 3、基于硬件的液晶驱动 同传统的DSP一样,直接基于Blackfin处理器液晶驱动。

我们采用DMA的方式通过PPI口传输颜色数据,将要显示的数据存放在SDRAM中的两块缓存区域中, 采用乒乓模式,在向一块存储区中写数据时,从另一块存储区读。我们在SDRAM中设置一块非Cache的存储区,因为我们每个点用16 bit数据表示,故两块缓存区域共320*(234+9+16)*16 bit,9+16为每场信号丢失的行数。

3.1  DMA的初始化

我们首先配置DMA的工作参数。这里DMA采用Descriptor list (small model),2D传输方式,每次传输一个字的数据。首先设置一个地址列表,用于装载两块缓存区域的首地址,这样DMA将从地址指示的空间 读取数据传送到PPI口。设置DMA每场传输259行,每行传输320个字的数据。最后配置DMA0_CONGFIG, 并使能DMA。主要设置有Descriptor list,2D DMA  的  Inner loop count,设置下次2D DMA的读取地址相对 本地地址的增量,2D DMA  的  outer loop count,配置DMA工作模式等。

3.2  PPI的初始化

PPI有两种工作模式:ITU-R 656和General-Purpose PPI。因为我们只需将数据通过PPI口送出,故使用GP模式。 设置PPI_FS1和PPI_FS2下降沿有效,一次传输16bit数据,外部触发,两个外部帧同步信号。主要需要设置的为:PPI  参数配置,场频信号发出到开始数据传输的延迟和每行传输的数据个数。

3.3  Timer的初始化

由于我们采用2个外部帧同步信号,故采用TMR1/ PPI_FS1作为行频信号(HSYNC),TMR2/ PPI_FS2作为场频信号(VSYNC)。 为了调试程序需要,我们配置定时器为仿真时定时器持续工作。因为只需送出数据给液晶,故配置其为PWM_OUT模式,我们的定时器使用PPI_CLK,故仍需设置其为PWM_OUT时钟,计数到周期结束等。Timer1和Timer2的周期和脉宽按液晶硬件手册给出设置。

3.4  Frambuffer的初始化

这样,液晶的相关配置已基本完成,我们在屏幕上写数据即为在两块数据缓冲区中写数据。但应注意, 在每次场频信号到来之后,有19行数据不会显示在屏幕上,之后234行为屏幕显示部分,最后又有6行数据 为多余需丢掉的数据。因此,我们将显示的数据颜色信息要全部写在中间234行。初始化Framebuffer时应 先写入要丢掉的19行内容,再写入234行的初始化颜色数据,最后还须初始化末尾6行丢掉的数据。


 4、基于 uClinux 的液晶驱动 嵌入式系统是以应用为中心,以计算机技术为基础、软硬件均可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。uCLinux  主要是针对目标处理器没有存储管理单元  MMU(Memory Management Unit)的嵌入式系统而设计的,它是一种优秀的嵌入式 Linux 版本,已经被成功地 移植到了很多平台上。对开发者来说,AD 的 Blackfin 处理器和 uClinux 的结合很有吸引力。

在 blackfin.uclinux.org 网站,提供对在 Blackfin 上嵌入 uclinux 的支持,本设计采用了其嵌入式软件支 持。选择了 uClinux-dist-R06R2-RC2.tar.bz2 作为系统使用 uClinux 的源代码,成功移植了 uClinux 嵌入式平台。我们用源文件根目录下 uClinux-dist/linux2.6.x/driver/video/bf537-lq035.c 作为模板,进行液晶驱动的修 改。

4.1 程序文件修改

以 bf537-lq035.c 为模板进行修改为 bf533-fg0506.c,由于源程序是按 BF537 开发板来编写,我们重点要修改的是信号使用端口,和液晶设置部分。 因为我们的液晶的背光是有逆变器调节,故将屏蔽原程序文件中关于背光亮度调节及相关选项。关键修改点:液晶的行场频、时钟、屏幕大小,定时器的设置(Timer1.Timer2),各种寄存器的设置, 以及写数据的 DMA、PPI 程序部分。液晶显示数据部分:场频信号到来之后需丢掉的行数、每场信号需丢掉的总行数、场频PPI_CLK  时钟部分:配置 PPI、Hdp+Hpw  此段时间内 PPI 不传数据等。配置 TIMER:使能时钟、设置 Timer 的参数。设置 DMA 的参数,设置屏幕尺寸色彩等信息,初始化 Framebuffer 等。

4.2 Makefile 的改写

此 部 分 是  为 在 编 译  内 核 时 能  够 将 新 编  写 的 液 晶  驱 动 编 译  为 目 标 文  件 。 在 uClinux-dist/linux2.6.x/driver/video/Makefile 加入编译规则。

4.3 修改 menu "Graphics support"此  部  分  使  编  译   uClinux 内  核  时  ,  可  以  选  择  是  否  编  入LCD 驱  动  。  在 uClinux-dist/linux2.6.x/driver/video/Kconfig 文件里添加编译信息。这样,使用 make xconfig 编译系统内核时, 就可以在自定义内核设置的 Device Driver 下,Graphic support 中选择这个选项。

 5、结论

经调试、修改,最终两种方案的液晶均可正确稳定显示所需数据,可以满足本设计预期的数据显示需 求。同时由于 TFT 液晶的可视角度较宽,16 位色彩表现丰富,设计得液晶显示得到了理想的效果,并对嵌入式设备的屏幕显示技术有一定的意义。

本文作者创新点:通过对 Blackfin 嵌入式处理器的内部资源的合理利用,将其和嵌入式系统 uClinux 的 相结合,应用于 TFT LCD 的驱动设计上。相对基于硬件的驱动设计,基于嵌入式系统 uClinux 的驱动设 计有功能性强、可靠性高、成本低、体积小、功耗低等优势,更具有实际的推广应用价值。

上一页  [1] [2] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:134,070.30000 毫秒