基于飛思卡爾imx6 sabrelite開發板的android lvds螢幕驅動調試

來源:互聯網
上載者:User

一、概述

      1、 飛思卡爾 imx6的顯示屏驅動架構:


     2、目標:

     因sabrelite開發板本身已提供LVDS介面,目標螢幕是LG的LP101WX1-SLN2,其主要參數為:

解析度:1280*800

色彩:18位

色彩數:262K

時鐘頻率:69.3M Hz

     


二 移植過程

1、首先把螢幕的介面接到sabrelite開發板的lvds介面上。sabrelite開發板提供的lvds介面如下:




如所示,lvds共有20個pin,其中有4組資料線,1組時鐘線,其他還有背光控制、電源、地等介面。

我們再看LP101WX1的介面:




它共有40個pin口,共有3組資料線,1組時鐘線。下面是接線步驟:

1)把LP101WX1的3組資料線和1組時鐘線對應接到開發板的lvds介面上:

ORX0-  =>  LVDS0_TX0_N

ORX0+ =>  LVDS0_TX0_P

...

ORXC- =>  LVDS0_CLK_N

ORXC+ => LVDS0_CLK_P


2)把LP101WX1的電源、地等接上:

2 VCC=>3.3V

3 VCC=>3.3V

10 GND=>接地

13
GND=>接地

16
GND=>接地

19
GND=>接地


3)把LP101WX1的背光接上:

31 GND=>接地

35 PWM=>3.3V(背光亮度調節)

36 LED_EN=>背光使能腳,接1個10k電阻,接到3.3V電源

38 VLED=>背光電源,接到5V電源

2、修改android的核心源碼。

1)找到drivers/video/mxc/ldb.c的fb_videomode陣列變數,它定義了螢幕的相關參數,fb_videomode結構體的定義在include/linux/fb.h中:


struct fb_videomode {const char *name; /* 名字 */u32 refresh; /* 重新整理頻率 */u32 xres; //行像素u32 yres; //列像素u32 pixclock; //時鐘頻率,單位ps,14430u32 left_margin; // HBPD(horizontal back porch):80u32 right_margin; // HFPD(horizontal front porth):48u32 upper_margin; // VBPD(vertical back porch),15u32 lower_margin; // VFBD(vertical front porch),2u32 hsync_len; // HSPW(horizontal sync pulse width):32u32 vsync_len; // VSPW(vertical sync pulse width):47u32 sync;u32 vmode;u32 flag;};


2)修改drivers/video/mxc/ldb.c的fb_videomode陣列變數,使它的參數適應LP101WX1的螢幕參數。

static struct fb_videomode ldb_modedb[] = {#if 0{ "LDB-XGA", 60, 1024, 768, 15385, 220, 40, 21, 7, 60, 10, 0, FB_VMODE_NONINTERLACED, FB_MODE_IS_DETAILED,}, #endif //add by tonny@2012-06-04 13:43 { "LDB-XGA", 60, 1280, 800, 14430, 80, 48, 15, 2, 32, 47, 0, FB_VMODE_NONINTERLACED, FB_MODE_IS_DETAILED,},{ "LDB-1080P60", 60, 1920, 1080, 7692, 100, 40, 30, 3, 10, 2, 0, FB_VMODE_NONINTERLACED, FB_MODE_IS_DETAILED,},};

名稱:LDB-XGA

重新整理頻率:60

解析度:1280*800

時鐘:10^12/69300000 = 14430

sync:0

vmode:FB_VMODE_NONINTERLACED

flag:FB_MODE_IS_DETAILED

3)重新編譯kernel,產生boot.img,燒錄到sabrelite開發板中。

4)啟動開發板,進入u-boot,在u-boot命令列中設定啟動參數為:

setenv bootargs console=ttymxc0,115200 androidboot.console=ttymxc0 vmalloc=400M init=/init video=mxcfb0:dev=ldb,LDB-XGA, if=RGB666,bpp=16 video=mxcfb1:off video=mxcfb2:off fbmem=10Msaveenv



其中video = mxcfb0:dev=ldb,LDB-XGA表示選用fb0的ldb驅動

if=RGB666,bpp=16表示16位色彩

設定好後,用printenv查看一下啟動參數:



X6Q SABRELITE U-Boot > printenvbootdelay=3baudrate=115200ipaddr=192.168.1.103serverip=192.168.1.101netmask=255.255.255.0loadaddr=0x10800000rd_loadaddr=0x11000000netdev=eth0ethprime=FEC0bootcmd=booti mmc1ethact=FEC0bootargs=console=ttymxc0,115200 androidboot.console=ttymxc0 vmalloc=400M init=/init video=mxcfb0:dev=ldb,LDB-XGA, if=RGB666,bpp=16 video=mxcfb1:off video=mxcfb2:off fbmem=10Mstdin=serialstdout=serialstderr=serialEnvironment size: 419/8188 bytesMX6Q SABRELITE U-Boot > 

然後用run bootcmd命令啟動開發板,隨後可以在log中看到android啟動的資訊,並可以看到螢幕正常顯示android系統。





相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.