i.mx6 lvds接口的DE模式液晶屏驱动调试

我这篇文章主要讲述i.mx6 平台下 采用DE模式的lvds液晶屏的驱动调试,

阅读该文章之前请先阅读如下两篇我转载的文章,这两篇文章是理解我这篇文章的基础知识。

1、        lcd fb参数如何计算

http://blog.csdn.net/liuhuahan/article/details/43447657

2、        camera_lcd之DE和HV模式区别

http://blog.csdn.net/liuhuahan/article/details/43489269

详细阅读并理解这两篇文章之后,就会对液晶屏显示的关键结构体的各个参数有一个详细的了解。

Linux内核的amba lcd控制器使用clcd_panel结构体表示一个LCD屏的硬件参数:

/* include/linux/fb.h */

struct fb_videomode {

const char*name;     /* optional */

u32refresh;          /* optional */

u32 xres;

u32 yres;

u32 pixclock;

u32 left_margin;

u32 right_margin;

u32 upper_margin;

u32 lower_margin;

u32 hsync_len;

u32 vsync_len;

u32 sync;

u32 vmode;

u32 flag;

};

在i.mx6中,关于lvds液晶屏的这个结构体参数所属文件为:driver/video/mxc/ldb.c

有这幅图可以知道结构体struct  fb_videomode各个元素所对应的具体含义,如果液晶屏采用行场(HV)模式的,根据液晶屏数据手册可以很容易的把这个结构体中各个元素的数值填写进去,但是如果液晶屏是采用DE模式的话,液晶屏数据手册上提供的参数就不好和结构体中各个参数对应了。现在我就来说一下DE模式下的液晶屏如何把手册中提供的数据与该结构体中各元素的值进行对应。

先说我用的液晶屏是EJ070NA-01F,手册中该屏幕的参数如下:

有该数据列表可知(其后所述均采用标称值),该屏幕分辨率为1024x600,时钟频率为51.2MHz,由此可知像素时钟周期(单位皮秒)为14065。但是其他数据就和结构体里的元素对应不上了,有以上数据手册可以得知,其一行1344个像素点,空白点是320个,即其扫描一行在行首会有320个无效像素点。根据手册又可知,其扫描一场即扫描一屏有35个空白行,

这里边没有和结构体fb_videomode个元素对应的值啊,这该怎么填呢,其实图1所示的是一个屏幕中与各元素对应的值,但实际上屏幕上显示的图像是一屏一屏连续的,你可以把两个屏幕即把两个图1左右并排放置,如下图所示:

看两个图片之间,看出来了吧,即right_margin + hsync_len + left_margin =
一行总的空白数,在该款屏幕中这个和的值为320,

再把这两个图片上下拼起来看:

再看两个图片中间无效区间,即upper_margin + lower_margin + hsync_len =
一场总空白行,在该款屏幕中,这个和的值为35。

之后就可以随意分配结构体fb_videomode中的各元素的值,只要满足以上的两个等式就可以了。

在看我这款屏幕在实际中设置的值如下:

static structfb_videomode ldb_modedb[] = {

{

"LDB-WXGA", 60, 1280, 800, 14065,

40,40,

10,3,

80,10,

0,

FB_VMODE_NONINTERLACED,

FB_MODE_IS_DETAILED,},

{

"LDB-XGA",60, 1024, 600, 19531,

220, 40,

20, 5,

60, 10,

0,

FB_VMODE_NONINTERLACED,

FB_MODE_IS_DETAILED,},

}

红色部分即为我这款屏幕的参数值,看是不是满足上述两个等式,我也随意调换了几次其中的参数值,发现只有满足我之前所说的两个等式就可以正常显示。

当然这也只是我的一家之言,我其实对Linux的显示这部分内容了解的也不深,只是因为项目需要,需要调试液晶屏驱动,我也就对着了解了一点这部分的内容,可能有些地方说的不一定对,写出来仅供大家参考吧。

时间: 2025-02-01 19:55:01

i.mx6 lvds接口的DE模式液晶屏驱动调试的相关文章

s3c2440液晶屏驱动新内核 linux-4.1.24

自带有一部分驱动的配置信息,只要修改这部分就能支援 不同的液晶屏 - /arch/arm/mach-s3c24xx/mach-smdk2440.c 另一部分在 /drivers/video/fbdev/s3c2410fb.c 先打开调试功能,这样内核在启动的时候,就可以输出这些信息,或者使用 dmesg 查看到这些信息.当然,你配置内核 make menuconfig 也可以打开,但是太麻烦了,不如这样. 1 #define CONFIG_FB_S3C2410_DEBUG 2 #define d

s3c2440液晶屏驱动 (非内核自带) linux-4.1.24

对于,不想逐一检查内核自带驱动,想自己编写驱动. 1,make menuconfig 去掉 编译到内核,改为 M 编译为 模块(因为要用到里面的3个.ko 驱动) Device Drivers --->    Graphics support --->        Support for frame buffer devices --->            <M> S3C2410 LCD framebuffer support 2,make uImage &&a

工业液晶屏的选型注意事项

对于研发人员及采购人员来说,如何选择一款适合的工业液晶屏产品是至关重要的.工业液晶屏的选型包括液晶显示屏的类型.品牌与价格.供货.分辨率与尺寸.温度与亮度.接口方式等关键指标. 随着科技的发展,人们对应用于各类控制设备.车载设备.电力设备.纺织机械等设备产品的液晶显示要求越来越高.常见液晶可分为段式.字符型和图形点阵三类.杭州立煌科技代理奇美.天马.三菱.友达.群创等品牌各类尺寸型号的液晶屏产品. TFT液晶屏,尺寸覆盖广,基本上为真彩色显示模块,一般小尺寸液晶屏都内置控制器,直接提供MPU接口

LVDS接口详解

1.LVDS输出接口概述 液晶显示器驱动板输出的数字信号中,除了包括RGB数据信号外,还包括行同步.场同步.像素时钟等信号,其中像素时钟信号的最高频率可超过28MHz.采用TTL接口,数据传输速率不高,传输距离较短,且抗电磁干扰(EMI)能力也比较差,会对RGB数据造成一定的影响:另外,TTL多路数据信号采用排线的方式来传送,整个排线数量达几十路,不但连接不便,而且不适合超薄化的趋势.采用LVDS输出接口传输数据,可以使这些问题迎刃而解,实现数据的高速率.低噪声.远距离.高准确度的传输. 那么,

LVDS接口分类,时序,输出格式

LVDS接口分类,时序,输出格式 2016年01月19日 16:57:35 打个飞机去美国 阅读数:24673 标签: LVDS液晶屏格式时序 更多 个人分类: 硬件基础 1.1.1           LVDS接口分类 1.1.1.1              单路6bit LVDS 这种接口电路中,采用单路方式传输,每个基色信号采用6位数据,共18位RGB数据,因此,也称18位或18bit LVDS接口.此,也称18位或18bit  LVDS接口. 1.1.1.2             双

TTL以及LVDS接口传输【转】

本文转载自:http://blog.csdn.net/jscese/article/details/16860833 TTL接口:属于并行方式传输数据的接口,采用这种接口时,不必在液晶显示器的驱动板端和液晶面板端使用专用的接口电路,而是由驱动板主控芯片输出的TTL数据信号经电缆线直接传送到液晶面板的输人接口.由于TTL接口信号电压高.连线多.传输电缆长,因此,电路的抗干扰能力比较差,而且容易产生电磁干扰(EMI). TTL接口输出信号由 RGB数据信号,时钟,控制信号组成. RGB三基色,单通道

从头认识java-7.8 接口与工厂模式

这一章节我们来聊聊接口与工厂模式之间的关系. 接口是实现多重继承的途径,生成遵循某个接口协议的对象的典型方式是工厂设计模式. 这种设计模式使得接口与实现完全分开. package com.ray.ch07; interface Service { void doSomeThing(); } interface ServiceFactory { Service getService(); } class ServiceImpl implements Service { @Override publ

关于display相关的一些内容—lvds接口

关于display相关的一些内容-lvds接口 lvds接口<显示lvds–LVDS接口分类,时序,输出格式.docx>需要注意的是,lvds设置的时钟频率是像素时钟频率,即(H_PW+ H_BP+ H_VD+ H_FP) (V_PW+V_BP+V_VD+V_FP) fps. 经验:所以出现屏幕闪烁严重,而且是一线一线的花屏,那么一定要注意clock,测量一下,看看频率对不对.不要光相信软件设置是多少,实际硬件就多少. 注意vsync.hsync信号跟RGB屏不同,不是独立的信号线,而是特定b

LCD1602,4位数据总线液晶屏时钟,STC12C5A60S2的10位ADC功能程序

/* 程序名:   LCD1602,4位数据总线液晶屏时钟,STC12C5A60S2的10位ADC功能程序 编写时间: 2015年10月4日 硬件支持: LCD1602液晶屏  STC12C5A60S2 外部12MHZ晶振  接线定义:   DB7 --> P1^7              DB6 --> P1^6              DB5 --> P1^5              DB4 --> P1^5              RS  --> P3^2;