基于A20处理器的RGB接口的LCD显示屏的移植

来源:互联网 发布:产品展示网站php源码 编辑:程序博客网 时间:2024/05/02 04:21

关于RGB接口的LCD显示屏的移植的一些经验在此与大家分享一下。关于显示屏的移植,我感觉主要分两部分,一是显示屏的驱动移植;二是sys_config.fex系统配置文件的修改。其实大部分的显示屏驱动这一块linux系统驱动里边是已经有的,主要关注的是lcd_panel_cfg.c文件,对LCD屏进行了初始化操作,该文件可能需要进行修改,一般不需要修改,我进行移植的时候没有修改该文件。只是大体浏览了一下里边的代码。一般来说,如果确定的你的核心板支持该款显示屏,那么主要的工作就在修改sys_config.fex系统配置文件。

修改sys_config.fex文件,主要是以下几个方面:1,配置LCD接口参数;2,修改LCD时序参数;3,修改功能参数。

其中,1,和3两个方面主要根据你所用的处理器LCD模块开发说明文档和sys_config.fex文件里里边的提示信心进行修改就可以,例如以下红色部分的信息就是提示信息,不需要修改,需要修改的是红色部分下边的很色字体的部分,且只需要根据提示信息修改“=”后边的信息。

;lcd0 configuration

 

;lcd_dclk_freq:      in MHZ unit

;lcd_pwm_freq:       in HZ unit

;lcd_if:             0:hv(sync+de); 1:8080; 2:ttl; 3:lvds; 4:hv2dsi

;lcd_width:          width of lcd in mm

;lcd_height:         height of lcd in mm

;lcd_hbp:            hsync back porch

;lcd_ht:             hsync total cycle

;lcd_vbp:            vsync back porch

;lcd_vt:             vysnc total cycle *2

;lcd_hv_if:          0:hv parallel 1:hv serial

;lcd_hv_smode:       0:RGB888 1:CCIR656

;lcd_hv_s888_if      serial RGB format

;lcd_hv_syuv_if:     serial YUV format

;lcd_hspw:           hsync plus width

;lcd_vspw:           vysnc plus width

;lcd_lvds_ch:        0:single channel; 1:dual channel

;lcd_lvds_mode:      0:NS mode; 1:JEIDA mode

;lcd_lvds_bitwidth:  0:24bit; 1:18bit

;lcd_lvds_io_cross:  0:normal; 1:pn cross

;lcd_cpu_if:         0:18bit; 1:16bit mode0; 2:16bit mode1; 3:16bit mode2; 4:16bit mode3; 5:9bit; 6:8bit 256K; 7:8bit 65K

;lcd_frm:            0:disable; 1:enable rgb666 dither; 2:enable rgb656 dither

 

;lcd_gpio_0:         SCL

;lcd_gpio_1          SDA

;-------------------------------------------------------------------------------

[lcd0_para]

lcd_used                = 1

 

lcd_x                   = 800

lcd_y                   = 480

lcd_width           = 0

lcd_height          = 0

lcd_dclk_freq           = 33

lcd_pwm_not_used        = 0

lcd_pwm_ch              = 0

lcd_pwm_freq            = 10000

lcd_pwm_pol             = 1

lcd_if                  = 3

lcd_hbp                 = 46

lcd_ht                  = 1055

lcd_vbp                 = 23

lcd_vt                  = 1050

lcd_vspw                = 0

lcd_hspw                = 0

lcd_hv_if               = 0

lcd_hv_smode            = 0

lcd_hv_s888_if          = 0

lcd_hv_syuv_if          = 0

lcd_lvds_ch             = 0

lcd_lvds_mode           = 0

lcd_lvds_bitwidth       = 0

lcd_lvds_io_cross       = 0

lcd_cpu_if              = 0

lcd_frm                 = 1

lcd_io_cfg0             = 0x10000000

lcd_gamma_correction_en = 0

lcd_gamma_tbl_0         = 0x00000000

lcd_gamma_tbl_1         = 0x00010101

lcd_gamma_tbl_255       = 0x00ffffff

 

lcd_bl_en_used          = 1

lcd_bl_en               = port:PH07<1><0><default><1>

 

lcd_power_used          = 1

lcd_power               = port:PH08<1><0><default><1>

 

lcd_pwm_used            = 1

lcd_pwm                 = port:PB02<2><0><default><default>

 

lcdd0                   = port:PD00<2><0><default><default>

lcdd1                   = port:PD01<2><0><default><default>

lcdd2                   = port:PD02<2><0><default><default>

lcdd3                   = port:PD03<2><0><default><default>

lcdd4                   = port:PD04<2><0><default><default>

lcdd5                   = port:PD05<2><0><default><default>

lcdd6                   = port:PD06<2><0><default><default>

lcdd7                   = port:PD07<2><0><default><default>

lcdd8                   = port:PD08<2><0><default><default>

lcdd9                   = port:PD09<2><0><default><default>

lcdd10                  = port:PD10<2><0><default><default>

lcdd11                  = port:PD11<2><0><default><default>

lcdd12                  = port:PD12<2><0><default><default>

lcdd13                  = port:PD13<2><0><default><default>

lcdd14                  = port:PD14<2><0><default><default>

lcdd15                  = port:PD15<2><0><default><default>

lcdd16                  = port:PD16<2><0><default><default>

lcdd17                  = port:PD17<2><0><default><default>

lcdd18                  = port:PD18<2><0><default><default>

lcdd19                  = port:PD19<2><0><default><default>

lcdd20                  = port:PD20<2><0><default><default>

lcdd21                  = port:PD21<2><0><default><default>

lcdd22                  = port:PD22<2><0><default><default>

lcdd23                  = port:PD23<2><0><default><default>

lcdclk                  = port:PD24<2><0><default><default>

lcdde                   = port:PD25<2><0><default><default>

lcdhsync                = port:PD26<2><0><default><default>

lcdvsync                = port:PD27<2><0><default><default>

 

说到LCD显示屏时序参数的修改,建议大家先看一下该链接的博客,http://blog.chinaunix.net/uid-28454895-id-4216124.html。了解了各个参数的含义和关系之后,就可以进行时序参数的修改了,时序参数的修改主要根据你所采用的LCD显示屏的常见给你的LCD显示屏规格书,里边有关于显示屏额配置时序图和表格。你可以根据表格里边的信息,对9个主要的时序参数进行配置如下:

lcd_x                   = 800

lcd_y                   = 480

lcd_width           = 0

lcd_height          = 0

lcd_dclk_freq           = 33

lcd_hbp                 = 46

lcd_ht                  = 1055

lcd_vbp                 = 23

lcd_vt                  = 1050

lcd_vspw                = 0

lcd_hspw                = 0

等调出系统界面之后,可以通过修改行场同步信号的前后肩进行对系统界面图像的左右前后位置的调整了。

 

这时候,你就离点屏成功不远了,胜利就在眼前,加油吧,boys and girls !!!

0 0