1. 程式人生 > >基於飛思卡爾imx6 sabrelite開發板的android lvds螢幕驅動除錯

基於飛思卡爾imx6 sabrelite開發板的android lvds螢幕驅動除錯

一、概述

      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的電源、地等接上:

2VCC=>3.3V

3VCC=>3.3V

10GND=>接地

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,14430
	u32 left_margin;	 // HBPD(horizontal back porch):80
	u32 right_margin;	 // HFPD(horizontal front porth):48
	u32 upper_margin;	 // VBPD(vertical back porch),15
	u32 lower_margin;	 // VFBD(vertical front porch),2
	u32 hsync_len;		 // HSPW(horizontal sync pulse width):32
	u32 vsync_len;		 // VSPW(vertical sync pulse width):47
	u32 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 [email protected] 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=10M
saveenv

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

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

設定好後,用printenv檢視一下啟動引數:

X6Q SABRELITE U-Boot > printenv
bootdelay=3
baudrate=115200
ipaddr=192.168.1.103
serverip=192.168.1.101
netmask=255.255.255.0
loadaddr=0x10800000
rd_loadaddr=0x11000000
netdev=eth0
ethprime=FEC0
bootcmd=booti mmc1
ethact=FEC0
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=10M
stdin=serial
stdout=serial
stderr=serial

Environment size: 419/8188 bytes
MX6Q SABRELITE U-Boot > 

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



相關推薦

基於imx6 sabrelite開發android lvds螢幕驅動除錯

一、概述       1、 飛思卡爾 imx6的顯示屏驅動架構:      2、目標:      因sabrelite開發板本身已提供LVDS介面,目標螢幕是LG的LP101WX1-SLN2,其主要引數為: 解析度:1280*800 色彩:18位 色彩數:262K 時鐘頻

產品研發ARM開發如何選擇?I.MX6Q開發

pow 清分 工作 images logs 時鐘 網通 https 處理器 處理器:迅為-i.MX6開發板恩智浦Cortex-A9 四核i.MX6Q處理器,主頻1GHz,內存2G,存儲16GB。 系統支持:i.MX6開發板系統支持LINUX,Android,Ubuntu系統

基於i.MX 6Quad Sabrelite開發的觸控式螢幕除錯

1      概述 本次任務是在飛思卡爾i.MX 6Quqd Sabrelite開發板上除錯觸屏驅動,觸屏晶片是Goodix的gt828晶片,觸屏介面是I2C。 作業系統:android 4.0.4 核心版本:3.0.15 2      除錯步驟 2.1    硬體

imx6開發網路設定

imx6q 網路除錯方式彙總 2016年01月25日 21:34:35 海邊自在生活 閱讀數:2322更多 個人分類: linux 前面完成了linux平臺的移植,下面介紹部分除錯手段,可以加快專案開發速度.先簡介除錯手段 ( 1 ) 在uboot下使用TFTP

基於imxsolosabresd開發Linux-3.10.53 lvds螢幕除錯

       BSP是Linux-3.10.53,在這個版本中引入了devicetree,所以一些關於硬體的配置都被剝離到dts中了,與3.0的版本有較大的改變,下面我們具體來看一下: imxsolo燒寫的時候,需要的是imx6dl-sabresd.dtb檔案,對應的原始碼

[原創] 我也來講ModBus移植,基於 K60,中斷接收,中斷髮送

題外話,用K60,其實我是抵觸的,哪有STM32用的舒服,客戶就要汽車級MCU,那就上吧,就是多花點時間唄。移植下來,收穫還很多,記錄下來,或許將來有小夥伴用得上: 在移植MB之前,先理一理MB的實現機理: 首先是三個函式: 1. eMBInit() eMBEnable() 和

IMX6處理器的GPIO配置方式

在linux或android系統中,假如我們要配置飛思卡爾IMX6處理器的GPIO管腳,比如是GPIO_19這個管腳,那麼要像這樣: #define MX6Q_PAD_GPIO_19__GPIO_4_5 \ (_MX6Q_PAD_GPIO_19__GPIO_4_5

IMX6修改uboot預設啟動引數

硬體平臺:飛思卡爾IMX6 核心版本:kernel3.0.35 問題來源: 開發板的預設顯示方式是FPC介面800*480的屏,本專案中用到的屏是工業級的1024*768介面的LVDS屏,更換屏之後,除了移植相應的屏驅動和觸控驅動之外,就是uboot傳輸給核心的啟動引數b

迅為-iMX6開發iMX6Q開發 工業級開發

迅為-i.MX6開發板是採用Freescale Cortex-A9 四核i.MX6Q處理器,主頻1GHz,2G DDR3記憶體,16GB EMMC儲存,i.MX6開發板採用核心板+底板結構設計,高品質,穩定性強 ,可以更靈活地進行產品開發,快速設計出更具有競爭力的產品。F

恩智浦iMX6Q核心/Cortex-A9高穩定性低功耗開發

        iMX6Q核心板-商業級       iMX6Q-Plus核心板   iMX6DL核心板-商業級   iMX6Q核心板-工業級    &nbs

痞子衡嵌入式:Kinetis開發OpenSDA偵錯程式那些事(上)- 背景與架構

  大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家介紹的是飛思卡爾Kinetis MCU開發闆闆載OpenSDA偵錯程式(上篇)。   眾所周知,嵌入式軟體開發幾乎離不開偵錯程式,因為寫一個稍有程式碼規模(5K行以上)的嵌入式應用程式一般不可能一次性搞定,沒有任何bug,出了bug並不可怕,只要我

S12系列(基於MC9S12XET256MAA和/MC9S12XEP100)CAN初始化總結和分享

CAN初始化流程: 1.查詢是否進入初始化狀態,如不是,進入初始化狀態,此處需設定CANCTL0,CANCTL1暫存器 3.關閉相應CAN口濾波器,此處需設定CANIDMR暫存器。 4.使能MSCAN模組,進入一般模式,選擇時鐘,此處需設定CANCTL0,C

的i.mx6dl開發上實現nfs網路檔案系統掛載操作指南

問題描述:在MCIMX6DL_SDP上實現網路檔案掛載,要求從emmc中啟動uboot和kernel,從網路上掛載根檔案系統。 操作平臺: host :Ubuntu14.04LTS board:

迅為i.MX6UL核心ARMCortex-A7單核NXP工控行業Imx6核心

  迅為iMX6UL核心板小巧精緻,尺寸僅38mm*42mm;CPU型號[email protected] 528MHz ARM Cortex-A7架構 ;記憶體:512M DDR ;儲存:8G EMMC,低功耗,效能強大,價效比高。 IMX6UL核心板引數

痞子衡嵌入式:i.MX RTxxx系列MCU開發那些事 - 索引

持續更新 技術 紀元 dsp cad rtx 相關 面向 tro   大家好,我是痞子衡,是正經搞技術的痞子。本系列痞子衡給大家介紹的是恩智浦i.MX RTxxx系列微控制器相關知識。   恩智浦半導體於2018年10月發布的i.MX RTxxx系列開啟了ML/AI MC

痞子衡嵌入式:i.MX RT系列微控制器啟動篇(2)- Boot配置(BOOT_CFG Pin/eFUSE)

TP 執行 不同 mcu 更新 oom als 配置 示例   大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家介紹的是飛思卡爾i.MX RT系列MCU的Boot配置。   在上一篇文章 飛思卡爾i.MX RT系列微控制器啟動篇(1)- Boot簡介 裏痞子衡為大

痞子衡嵌入式:i.MX RT系列微控制器介紹篇(3)- 命名規則

rule 成員 oom 嵌入 信息 100% 規則 控制器 今天   大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家介紹的是飛思卡爾i.MX RT系列MCU的命名規則。   打開任何一款i.MX RT系列芯片的Data Sheet均可找到如下命名規則表,以i.M

痞子衡嵌入式:i.MX RT系列微控制器啟動篇(3)- Serial Downloader模式(sdphost/mfgtool)

efi RM pda lock mman www. esc https conn   大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家介紹的是飛思卡爾i.MX RT系列MCU的Serial Downloader模式。   在上一篇文章 飛思卡爾i.MX RT系列微

痞子衡嵌入式:i.MX RT系列微控制器啟動篇(6)- Bootable image格式與加載(elftosb/.bd/.bin)

before 詳細介紹 tab true 加載完成 table sdp 推薦 包含   大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家介紹的是飛思卡爾i.MX RT系列MCU的Bootable image格式與加載過程。   在i.MXRT啟動系列第三篇文章 飛

痞子衡嵌入式:i.MX RT系列微控制器啟動篇(9)- 從Parallel NOR啟動

16bit erase section cloud 你會 命令執行 選型 兩個 寬度   大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家介紹的是飛思卡爾i.MX RT系列MCU的Parallel NOR啟動。   上一篇講i.MXRT從Raw NAND啟動的文章