您的位置:首页 > 其它

OMAP3530 LCD移植(最简单的移植方式)

2015-04-06 11:51 225 查看
在LINUX下最简单的LCD显示移植

做这个移植做了挺久的了,但问题是我并不是做驱动开发的啊,我只是想在OMAP3530MINI这个板子上把PSP4.0这个系统包给移植到其上面而已。。。。。。

系统已经做好了,但现在问题就是LCD没有显示。。。。。。。所以,我得做LCD的移植工作。在这里,我不想讲LINUX源代码,也不想说它的驱动框架,我也不是很懂,可以说,我并不懂,看了那么久,算了,下面直接来进行LCD 的移植吧。很简单的,改动的地方不超过10行。

好,下面开始:

说一个事实:首先PSP这个包已经很全了,很多驱动都是有的,当然包括显示子系统啦,本来,我打算自己写一个LCD的驱动的,但是,我在源码里搞了好长时间就是没搞出个头绪来,光一个显示子系统就已经很庞大了,我不会是要搞一个显示子系统吧?大哥,我只是想驱动一下这块LCD而已。。。。。。。说到底,还是自己学不到家,不过,到最后我还是找到点子上了!!!显示子系统已经在PSP里面写好的了,你要改的只是LCD的驱动,而这个驱动就是改一些简单的时序参数就好了!!因为OMAP已经内置LCD控制器了,而PSP包也已经写好了这个控制器的所有东西,唯一一点就是,你不同的LCD,其时序是不一样的,所以,
这一块就由用户自己去写,而PSP也把这一块简单化了,所以,你只要改几个参数就可以了。

***********************PSP_4.0包,LCD移植*********************************

开发操作系统:centos 6.5

板子:OMAP3530MINI 对应于TI的omap3beagle板子 、

开发包: psp4.0

交叉编译器:arm-none-linux-gnueabi-gcc arm-2009q1

文件系统:NFS

*******************************************************************************

1.what

LCD驱动控制器(LCD controller)

OMAP3530开发板的CPU已经内置了LCD controller,相关的寄存器和参数请查看OMAP3530的手册,那么LCD的驱动开发就是设置这些寄存器参数。由于PSP开发包已经做了很多底层的工作,包括LCD驱动器的驱动程序,但是对于不同的LCD液晶屏,原始的驱动程序并不一定适用,但有一点可以肯定的是,一个例程lcd屏的驱动已经做好了,那么可以从这个例程驱动去跟踪LCD驱动的开发过程。在这里只是记录一下简单的参数修改,至于为什么,这里就不说了。

2.how to do

驱动程序当然是在源码的driver/下面的:

打开文件:

kernel/driver/video/omap2/displays/panel-generic.c


为什么是这个文件:这是一个LCD屏驱动程序,在这里,它是默认编进内核的,与它对应的一定还有一个设备文件,具体这里不说。另外在这个目录下你也可以看到很多LCD屏的驱动,大同小异,都是从这个文件变的,也只有这个结构体的参数变了而已。

打开文件后可以看到下面关于LCD时序的结构体信息:

static struct omap_video_timings generic_panel_timings = {

/* 640 x 480 @ 60 Hz Reduced blanking VESA CVT 0.31M3-R */

.x_res = 640,

.y_res = 480,

.pixel_clock = 23500,

.hfp = 48,

.hsw = 32,

.hbp = 80,

.vfp = 3,

.vsw = 4,

.vbp = 7,

};


把参数改成下面的就可以了(这些参数请参考自己LCD屏的说明书):

static struct omap_video_timings generic_panel_timings = {

/* 480 x 272 @ 60 Hz Reduced blanking VESA CVT 0.31M3-R */

.x_res = 480,

.y_res = 272,

.pixel_clock = 9000,

.hfp = 2,

.hsw = 41,

.hbp = 2,

.vfp = 2,

.vsw = 10,

.vbp = 2,

};


通常来说,你来一个屏我只要把这里的参数改了就可以了。但是这里有一点还没弄清楚。因为CPU内置的LCD控制器的行场中断驱动是高电平的,而我的LCD要求的却是低电平驱动的。所以,笔者认为,这个例程中,已经默认是这样的配置了。为了更好的移植,很有必要去摸清楚LCD的一些寄存器配置到底在哪里。这已经是后话,不管了,来了再说吧。。。。。。

更多关于嵌入式的实践内容,请尽情点击:
http://blog.csdn.net/tianyi1991
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: