LCD屏参:手把手教你配置LCD屏参(proch值)

您所在的位置:网站首页 lcd是指 LCD屏参:手把手教你配置LCD屏参(proch值)

LCD屏参:手把手教你配置LCD屏参(proch值)

2024-07-01 03:15:59| 来源: 网络整理| 查看: 265

  LCD屏参(proch值)解释和计算

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

 

/* include/linux/fb.h */   struct fb_videomode {   const char *name; /* optional */   u32 refresh; /* 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;   };   /* include/linux/amba/clcd.h */   struct clcd_panel {   struct fb_videomode mode;   signed short width; /* width in mm */   signed short height; /* height in mm */   u32 tim2;   u32 tim3;   u32 cntl;   unsigned int bpp:8,   fixedtimings:1,   grayscale:1;   unsigned int connector;   };   /* include/linux/fb.h */ struct fb_videomode { const char *name; /* optional */ u32 refresh; /* 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; }; /* include/linux/amba/clcd.h */ struct clcd_panel { struct fb_videomode mode; signed short width; /* width in mm */ signed short height; /* height in mm */ u32 tim2; u32 tim3; u32 cntl; unsigned int bpp:8, fixedtimings:1, grayscale:1; unsigned int connector; };

先看一个例子:http://lxr.linux.no/linux+v2.6.37.4/arch/arm/mach-lpc32xx/phy3250.c

 

 

fb_videomode各个参数的意义

Linux对LCD的抽象如下图所示:

下面研究一下fb_videomode各个成员的意义:

 

名称在数据手册中的简称中文名意义备注nameNo名字液晶屏名字(可选)NorefreshNo刷新频率刷新频率(内核中很多例子都赋值为60)NoxresNo行宽每行的像素个数NoyresNo屏幕高度屏幕的行数NopixclockNo像素时钟每个像素时钟周期的长度,单位是皮秒(10的负12次方分之1秒)Noleft_marginHBP (Horizontal Back Porch)水平后沿在每行或每列的象素数据开始输出时要插入的象 素时钟周期数Noright_marginHFP (Horizontal Front Porch )水平前沿在每行或每列的象素结束到LCD 行时钟输出脉冲 之间的象素时钟数Noupper_marginVBP (Vertical Back Porch)垂直后沿在垂直同步周期之后帧开头时的无效行数Nolower_marginVFP (Vertical Front Porch)垂直前沿本帧数据输出结束到下一帧垂直同步周期开始之 前的无效行数Nohsync_lenHPW (HSYNC plus width)行同步脉宽单位:像素时钟周期也有手册简称为HWH(HSYNC width)vsync_lenVPW (VSYNC width)垂直同步脉宽单位:显示一行的时间th也有手册简称为VWH(VSYNC width)syncNo同步极性设置可以根据需要设置FB_SYNC_HOR_HIGH_ACT(水平同步高电平有效)和FB_SYNC_VERT_HIGH_ACT(垂直同步高电平有效)NovmodeNoNo在内核中的大多数示例都直接置为FB_VMODE_NONINTERLACED。interlaced的意思是交错[隔行]扫描,电视中使用2:1的交错率, 即每帧分两场,垂直扫描两次,一场扫描奇数行,另一场扫描偶数行。很显然LCD目前不是这种模式。NoflagNoNo目前没有看到用法No

说明:

(1)Linux对LCD的抽象是以图像为中心的,而LCD手册则以同步信号为中心,所以内核中的left_margin是指在每一行之前(前面自然对应左边)的空闲周期数,而它对应LCD数据手册中的水平后沿(HBP Horizontal Back Porch),是指在行同步信号之后的空闲周期。参照物不同而已,但是说的是同一个东西。

(2)水平同步信号有时也成为行同步型号,垂直同步信号有人称为场同步信号。

(3)对于LCD的frambuffer抽象模型请参考内核中的文档:Documention/fb/frambuffer.txt。

(4)fb_videomode各个成员的用处是我自己参照内核代码中的include/linux/amba/clcd.h中的clcdfb_decode()函数总结的,不保证护绝对正确。

 

clcd_panel各个成员的意义

clcd_panel是ARM的AMBA LCD控制器专有的数据结构,定义在include/linux/amba/clcd.h中。

ARM的AMBA LCD控制器数据手册在这里:http://infocenter.arm.com/help/topic/com.arm.doc.ddi0121d/DDI0121.pdf

width和height的单位是mm,应该是指屏幕的物理尺寸。但是在drivers/video/amba-clcd.c中只是简单的赋给fb.var.width/height,内核中大多数例子直接赋为-1。

 

从include/linux/amba/clcd.h中的clcdfb_decode()函数和drivers/video/amba-clcd.c中的clcdfb_set_par()函数可以看出 tim2是时钟和信号极性寄存器,tim3是行末控制寄存器,用来控制每行输出结束后是否输出一个脉冲。tim3一般不用理,使用默认值。tim2一般要根据LCD数据手册用下面几个宏赋值:

#define TIM2_CLKSEL (1



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭