基於飛思卡爾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
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啟動的文章