S3c2410 LCD驱动学习心得

合集下载

s3c2410 LCD图片显示

s3c2410 LCD图片显示

s3c2410 LCD图片显示最近研究了s3c2410下LCD控制器的相关知识,主要的参考资料就是三星s3c2410数据手册(arm920T),英文版,看的不是非常明白,后来参考了WinCE下的部分代码,似有所领悟。

于是写了此程序,用以在LCD上显示图片。

本程序可以在LCD上居中显示小于800×480的任意大小的图片。

用到的辅助工具就是上篇文章中的RGB分量提取器.关键模块如下:0、全局变量的定义:#define DMA_BUFFER_BASE 0xAC000000#define DMA_PHYSICAL_BASE 0x35000000 // S3C2410X01 0x30000000#define FRAMEBUF_BASE (DMA_BUFFER_BASE + 0x00100000)#define FRAMEBUF_DMA_BASE (DMA_PHYSICAL_BASE +0x00000000)//0x00100000#define IOP_BASE 0x56000000 // 0x56000000typedef struct {unsigned int GPACON; // 00unsigned int GPADAT;unsigned int PAD1[2];...................}IOPreg;// Define LCD type of S3C2400X01#define TFT24BPP 3#define LCDTYPE TFT24BPP // define LCD type as upper definition.//// Registers : LCD Controller//#define LCD_BASE 0x4D000000 // 0x4D000000typedef struct {unsigned int LCDCON1; // 00unsigned int LCDCON2; // 04unsigned int LCDCON3; // 08.....................}LCDreg ;// LCD register value#define MODE_TFT_24BIT (224)#define LCD_XSIZE_TFT (800)#define LCD_YSIZE_TFT (480)#define ARRAY_SIZE_TFT_24BIT (SCR_XSIZE*4*SCR_YSIZE)#define HOZVAL_TFT (LCD_XSIZE_TFT-1)#define LINEVAL_TFT (LCD_YSIZE_TFT-1)#define MVAL (13)#define MVAL_USED (0)#define VBPD ((32-1)&0xff)#define VFPD ((11-1)&0xff)#define VSPW ((2-1) &0x3f)#define HBPD ((88-1)&0x7f)#define HFPD ((40-1)&0xff)#define HSPW ((128-1)&0xff)#define CLKVAL_TFT (1)#define M5D(n) ((n) & 0x1fffff)U32* pLCDBuffer24=(U32*)FRAMEBUF_DMA_BASE;U32* picData;volatile LCDreg *s2410LCD = (LCDreg *)LCD_BASE;volatile IOPreg *s2410IOP= (IOPreg *)IOP_BASE;int nCol = 800;//象素列数int nRow = 480;//象素行数U32* picDataT=NULL;1、入口函数,其中包括了相应端口、寄存器初始化的入口,aa,bb,cc,dd,ee是可选择的5幅预定义图片的GRB码数组,具体代码如下void lcd_Main(void){char sel;Uart_Printf("Lcd_Driver ");lcd_port_init();lcd_regs_init();Uart_Printf("select one Picture to show(1 2 3 4 5 0) ");while((sel = Uart_Getch()) != 'e'){Uart_Printf("%c ",sel);switch(sel){case '1':picData = (U32*)aa;break;case '2':picData =(U32*)bb;break;case '3':picData = (U32*)cc;break;case '4':picData = (U32*)dd; break;case '5':picData = (U32*)ee;break;default:Uart_Printf("Input 1 2 3 4 5 0 ");}lcd_display();Uart_Printf("select one Picture to show(1 2 3 4 5 0) ");}Uart_Printf("Exit");//lcd_close();}2、相应端口设置,包括GPC,GPD,GPG的相应位的设置:void lcd_port_init(void){// LCD port initialize.s2410IOP->GPCUP = 0xFFFFFFFF;s2410IOP->GPCCON = 0xAAAAAAAA;s2410IOP->GPDUP = 0xFFFFFFFF;s2410IOP->GPDCON = 0xAAAAAAAA;s2410IOP->GPGCON &= ~(3 << 8); /**//* Set LCD_PWREN asoutput */s2410IOP->GPGCON |= (1 << 8);s2410IOP->GPGDAT |= (1 << 4); //* Backlight ON,关键,不然lcd不亮}3、控制寄存器设置:void lcd_regs_init(void){#ifdef MODE_TFT_24BITs2410LCD->LCDCON1 = (1 << 8) | //* VCLK = HCLK / ((CLKVAL + 1) * 2) -> About 7 Mhz(MVAL_USED << 7) | //* 0 : EachFrame(3 << 5) | // TFT LCD Pannel(13 << 1) | //Y: // 24bpp Mode(0 << 0) ; // Disable LCD Outputs2410LCD->LCDCON2 = (VBPD << 24) | //*VBPD : ((32-1)&0xff)(LINEVAL_TFT << 14) | //* LINEVAL_TFT : 480 -1(VFPD << 6) | //* VFPD :((11-1)&0xff)(VSPW << 0) ; //* VSPW : ((2-1)&0x3f)s2410LCD->LCDCON3 = (HBPD << 19) | //*HBPD : ((88-1)&0x7f)(HOZVAL_TFT << 8) | //* HOZVAL_TFT : 800 -1(HFPD << 0) ; //* HFPD :((40-1)&0xff)s2410LCD->LCDCON4 = (MVAL << 8) | //*MVAL : 13(HSPW << 0) ; //* HSPW :((128-1)&0xff)s2410LCD->LCDCON5 = 0x00000000;/**//*s2410LCD->LCDCON5 = (0 << 12) | // BPP24BL : LSBvalid(0 << 11) | // FRM565 MODE : 5:5:5:1Format(0 << 10) | // INVVCLK : VCLK Falling Edge(0 << 9) | // INVVLINE : Inverted Polarity(0 << 8) | // INVVFRAME : Inverted Polarity(0 << 7) | // INVVD : Normal(0 << 6) | // INVVDEN : Normal(0 << 5) | // INVPWREN : Normal(0 << 4) | // INVENDLINE : Normal(0 << 3) | // PWREN : Disable PWREN(0 << 2) | // ENLEND : Disable LEND signal(0 << 1) | // BSWP : Swap Disable(0 << 0) ; // HWSWP : Swap Enable */s2410LCD->LCDSADDR1 = ((FRAMEBUF_DMA_BASE >> 22) << 21) |((M5D(FRAMEBUF_DMA_BASE >> 1)) << 0);//LCDBANK = ((FRAMEBUF_DMA_BASE >> 22) << 21)//LCDBASEU = ((M5D(FRAMEBUF_DMA_BASE) >> 1) << 0)s2410LCD->LCDSADDR2 = (M5D(FRAMEBUF_DMA_BASE) >> 1) +( (LCD_XSIZE_TFT*2) + 0 )*(LINEVAL_TFT+1);//LCDBASEL = s2410LCD->LCDSADDR2s2410LCD->LCDSADDR3 = (((LCD_XSIZE_TFT - LCD_XSIZE_TFT) / 1) << 11) | (LCD_XSIZE_TFT);//OFFSIZE = (((LCD_XSIZE_TFT - LCD_XSIZE_TFT) / 1) << 11) == 0//PAGEWIDTH = (LCD_XSIZE_TFT)s2410LCD->TPAL = 0x0;s2410LCD->LCDCON1 |= 1;#endif}4、居中显示图片:void lcd_display(void){int y;int pw, ph;int sw=800, sh=480;U32* pdata;U32* pBt=NULL;lcd_clear();get_XY();//获得图片的宽与高,以保存在RGB数组的头两个字节。

ARMS3C2410驱动TFT-LCD的研究.

ARMS3C2410驱动TFT-LCD的研究.

ARM S3C2410驱动TFT-LCD的研究技术分类:嵌入式系统 | 2008-03-07来源:电子开发网 | 作者:张义磊介绍了S3C2410的LCD控制器的数据和控制管脚,并给出了LCD的控制流程和TFT-LCD 的控制器设置规则。

参照TFT-LCD CJM10C0101的逻辑要求和时序要求设计了其驱动电路,设置了各主要LCD寄存器。

开发了CJM10C0101在嵌入式LINUX下的显示驱动程序,并在CJM10C0101上显示了清晰稳定的画面。

实验表明这套装置通用性好,能驱动大部分的TFT-LCD;可移植性强,经过少许修改即可应用在其他嵌入式系统中。

它是S3C2410驱动TFT-LCD的一套较佳的解决方案。

1 引言随着科技的发展,ARM在社会各个方面的应用越来越广。

S3C2410是三星公司生产的基于ARM920T内核的RISC微处理器,主频可达203MHz,适用于信息家电、SmartPhone、Tablet、手持设备、移动终端等领域。

其中,集成的LCD控制器具有通用性,可与大多数的LCD显示模块接口。

CJM10C0101是一种用非晶硅TFT作为开关器件的有源矩阵液晶显示器,该模块包括TFT-LCD显示屏!驱动电路和背光源,其接口为TTL电平。

分辨率为640×480像素,用18bit 数据信号能显示262144色。

6点视角是最佳视角。

在以三星ARM芯片S3C2410为核心,USB、UART、LCD、TOUCHPANEL等作为输入输出设备,FLASH和SDRAM作存储器,加上固化在FLASH里面的嵌入式LINUX组成的嵌入式系统中,我们致力于使此系统用本国生产的TFT-LCD作显示输出,因此研究设计了驱动CJM10C0101型26.4cm(10.4in)TFTLCD的硬件适配电路与嵌入式LINUX下的显示驱动程序。

2 S3C2410 LCD控制器介绍2.1 管脚S3C2410 LCD控制器用于传输视频数据和产生必要的控制信号,像VFRAME、VLINE、VCLK、VM等等。

S3C2410开发心得——硬件篇概要

S3C2410开发心得——硬件篇概要

S3C2410开发心得——硬件篇调了很久了,说说体会吧。

好久不写这种心得了。

大概从2003年11月开始,准备动手做S3C2410的板子,因为三星网站上的资料给的很全,还有mizilinux给三星的那个开发板写了几乎所有的驱动程序。

感觉,做一个2410的系统来玩玩,仅仅就是时间和钱的问题。

本来不是很着急,但是,看着无数的人都在做2410,自己还在ARM7上转,心里不免有点痒痒。

于是,为经过老板同意自作主张,创造条件,开始做板。

动手之前,看了很多人的板子,也打听了很多人。

似乎2410和SDRAM之间的走线很成问题,不少人都遇到了麻烦。

100MHz的信号线,当时的感觉就是速度不是很高。

我在44B0和SDRAM连接,只要稍微注意一点,做了很多板子都没出过问题。

这次应该也没事。

略去板图的设计不说,因为有很多文章和资料都说得很详细了。

结果,板子做回来(6层板),速度真的上不去。

200M的时候,用Multi-ICE对SDRAM写数,反复写,有的时候,其他地址的数据就会跟着变。

只有降低频率。

我焊了两块板。

一块只能稳定在135MHz,另一块,只有90MHz。

ft!,这就是我恶梦的开始。

开始找原因吧。

和三星给的原理图对比,我使用了74LVC16245分离SDRAM和外设的总线信号,和74LVC162245差别不大。

这个似乎不是问题。

总线上的传输电阻,我从0欧开始10欧、22欧、33欧、47欧、68欧,一个个的试--我的测试方法是用Multi-ICE配置起来2410的SDRAM空间,把一个3.8MB 的.rar文件下载到SDRAM中,再读取回来,然后,检查这个rar文件的正确性。

不停的改变2410的频率,不断的换电阻。

就这样,我折腾了1天,结论,换电阻作用不大,能稳定工作的频率几乎没有丝毫提高。

这个似乎也不是问题。

看看板子的布线,2410和SDRAM之间走线都是尽量的短,而且,连线都不长。

唯一的问题就是,三星的设计参考上说,要"连线等长",那段话,当时我设计的时候就不怎么理解。

2440裸机学习心得下

2440裸机学习心得下

2440裸机学习心得(下)摄像头驱动一些概念:摄像接口的主时钟信号由USB PLL产生,它的频率为96MHz,再经过分频处理后输出给摄像头,摄像头再根据该时钟信号产生三个同步时钟信号(像素时钟、帧同步时钟和行同步时钟),反过来再输入回s3c2440。

OV9650内部有大量的寄存器需要配置,这就需要另外的数据接口。

OV9650的数据接口称为SCCB(串行摄像控制总线),它由两条数据线组成:一个是用于传输时钟信号的SIO_C,另一个是用于传输数据信号的SIO_D。

SCCB的传输协议与IIC的极其相似,只不过IIC在每传输完一个字节后,接收数据的一方要发送一位的确认数据,而SCCB一次要传输9位数据,前8位为有用数据,而第9位数据在写周期中是Don&rsquo;t-Care位(即不必关心位),在读周期中是NA位。

SCCB定义数据传输的基本单元为相(phase),即一个相传输一个字节数据。

SCCB只包括三种传输周期,即3相写传输周期(三个相依次为设备从地址,内存地址,所写数据),2相写传输周期(两个相依次为设备从地址,内存地址)和2相读传输周期(两个相依次为设备从地址,所读数据)。

当需要写操作时,应用3相写传输周期,当需要读操作时,依次应用2相写传输周期和2相读传输周期。

(这些读写和IIC一样~)OV9650有两个只读寄存器&mdash;&mdash;0x1C和0x1D,用于存放厂家ID,数据分别为0x7F和0xA2,我们可以通过读取它们来判断s3c2440是否连接了OV9650。

当确认连接了OV9650后,我们就可以把VGA(640&times;480)模式下YUV彩色空间的配置数组写入OV9650内(二维数组:第一个表示寄存器地址,第二个表示要写入的数据)注意比较三个变量的含义:Width= 640//源宽度PrDstWidth=480//目标宽度SrcWidth=640-WinHorOffset*2;//偏移后宽度驱动函数编写步骤:外围基础准备硬件初始化IIC初始化, LCD初始化, UPLL时钟初始化(96M,0V9650系统时钟) ,GPIO初始化(GPJ),硬件和软件复位摄像头(GPJ12为CAMERARESET,rCIGCTRL)0V9650寄存器配置A、读取OV9650厂商ID,验证是否工作B、复位所有OV9650寄存器C、配置OV9650寄存器(用规定的二维数组直接配)摄像头接口初始化摄像头接口的一些寄存器初始化:rCIGCTRL,rCIWDOFST rCISRCFMTrCIPRTRGFMT,rCIPRTAREAB、设置内存首地址为LCD缓存数组首地址:rCIPRCLRSA1~4C、计算水平和垂直缩放比率和位移量,以及主水平、垂直比率放入以下三个寄存器中rCIPRSCPRERATIO,rCIPRSCPREDST rCIPRSCCTRL中断函数开启和指向控制台菜单的编写与实现显示视频rCIPRSCCTRL|=(1;Control=&hellip;&hellip;&hellip;&hellip;&hellip;&hellip; &hellip;&hellip;.}调用时,因16字节对齐:__align(16) ED ed;(声明)CreateEd((unsigned int) &ed,// ED Address&hellip;&hellip;&hellip;&hellip;.);简单的USB设备枚举,读取描述符:(控制传输步骤)搞好最重要的3个数据结构:端点描述符ED,传输描述符TD和共享数据域HCCA 由于HCCA只是创建一个空间域,不需要初始化而ED和TD在设备枚举时需要不同初始化,故还要创建两个初始化结构体函数:CreateEd和CreateGenTd初始化OCHI寄存器(仅限枚举部分,不涉及中断)复位,设置帧间隔,初始化HcDoneHead,设置HC为运行状态写HCCA(开拓一片域)检测是否有USB设备设一定的时间检测,如for(i=0;i<100000;i++)设备枚举的5个过程:第一步,主机得到设备描述符第二步为设备分配地址第三步,主机用新的地址再次获取设备描述符第四步,主机读取设备全部配置描述符第五步,主机发送SETUP数据包,用以设置配置,允许所有端点进入工作状态。

基于S3C2410A和Linux的嵌入式系统彩色LCD驱动

基于S3C2410A和Linux的嵌入式系统彩色LCD驱动
本文 中 1 6色 T T屏采用 565显示方式,在 4 1 E :: . 节做 进一步介绍 。
指 定显 示缓 冲 区, 显示 的 内容就 是 从缓 冲 区 中读 出 的,其 大小 由屏 幕 分 辨率 和显 示颜 色数 决 定 。在本 文中采用的是夏普 L 0 3 ]T T 显示屏,在 6 0× Q] D 2 F 4 4 0分 辨率 下可提 供 1 8 6位彩色显 示。 为使 LCD 显 示屏 能 正 常工 作 , 硬件 连 接是 前 提,下面几个 信号线路是 s C 4 0 C 3 2 A L D控制器与 1
作者 简介 :严 明贵 ( 9 8 ) 男,工 学硕 士在读 ,从 事嵌 1 7 一,
入式应 用开发研 究 ;
朱善安(9 2) 男,工 学博士,教 授 ,博导 ,从事预测 自 1 5 一,
适 应 控 制 理 论 与 工 业 应 用 ,PD 自整 定 理 论 与工 业 应 用 , I 基
于P C机 的智 能控 制 系统 ,信 息传输 与 自动化 系统等研 究。
f 0 ~ / e /b 。 b d v f 3l
5 四哑圜 20 年 4 8 06 期
维普资讯
嵌 入 式 技 术
编 了号 ,每 个 设备 号 又 分 为 主设 备号 和次 设 备号 。 主设备 号 用来 区分 不 同种类 的设 备 ,而次 设 备号 用
显 示设 备就 够 了 。帧 缓 冲设备 为标准 字符 设备 , 主 设备号 为 2 ,次设 备号则从 0~3 。分别对应 d v 9 1 e/
应用 的一款 MC U。
L CD 控制 器的功 能是产 生显 示驱动 信号, 驱动 LCD 显 示 器 用户 只 需 要通过 读 写一 系列 的 寄 存

s3c2440,adc实验心得体会

s3c2440,adc实验心得体会

竭诚为您提供优质文档/双击可除s3c2440,adc实验心得体会篇一:一起学mini2440裸机开发(十三)--adc原理与实验一起学mini2440裸机开发(十三)--adc原理与实验概述s3c2440的cmos模拟数字转换器adc可以对8通道模拟输入信号进行循环检测,s3c2440的adc和触摸屏公用一个adc转换器,所以学习adc也是学习触摸屏的基础。

s3c2440adc的主要特性如下:●分辨率:10位●最大转换速率:500ksps●微分线性度误差:±1.0lsb●积分线性度误差:±2.0lsb●供电电压:3.3V●模拟输入电压范围:0~3.3Vadc原理adc是一种将模拟信号转化为数字信号的方法,一般要经过采样、保持、量化、编码4个步骤。

在实际电路中,有些过程是合并进行的,如采样和保持,量化和编码在转换过程中时同时实现的。

由奈奎特采样定理可知,当采样频率大于模拟信号中最高频率的2倍时,采样值才能不失真地反映原来模拟信号。

主要技术指标如下:●分辨率通常以输出二进制的位数表示分辨率的高低,一般位数越多,量化单位越小,对输入信号的分辨能力就越高。

例如,输入模拟电压的变化范围为0±~3.3V、分辨率为12位时,可以分辨的最小模拟电压为3.3V/2^12≈0.8mV;而分辨率为10位时,可以分辨的最小模拟电压为3.3V/2^10≈3.2mV。

●转换误差它是指在零点和满度都校准以后,在整个转换范围内,分别测量各个数字量所对应的模拟输入电压实测范围与理论范围之间的偏差,取其中的最大偏差作为转换误差的指标。

它通常以相对误差的形式出现,并以lsb为单位表示。

●转换速度完成一次模数转换所需要的时间称为转换时间。

在大多数情况下,转换速度是转换时间的倒数。

adc的转换速度主要取决于转换电路的类型,并联比较型adc的转换速度最高,逐次逼近型adc次之,双积分型adc转换速度最低。

s3c2440处理器adc功能图如图1所示,其中虚线框是与触摸屏有关的功能模块,可以暂不考虑,学完adc基本实验后,再学触摸屏部分也可以。

LCD控制器-S3C2410

LCD控制器-S3C2410

LCD控制器什么是液晶显示器(LCD)液晶,是一种在一定温度范围内呈现既不同于固态、液态,又不同于气态的特殊物质态,它既具有各向异性的晶体所特有的双折射性,又具有液体的流动性。

一般可分热致液晶和溶致液晶两类。

在显示应用领域,使用的是热致液晶,超出一定温度范围,热致液晶就不再呈现液晶态,温度低了,出现结晶现象,温度升高了,就变成液体;液晶显示器件所标注的存储温度指的就是呈现液晶态的温度范围。

利用液晶分子受到电压的影响而改变其分子的排列状态,并且可以让入射光线产生偏转的现象之原理,制造出的使用液晶显示的屏幕就是液晶显示器,英文称LCD(Liquid Crystal Display)。

在LCD 显示器中,显示面板薄膜被分成很多小栅格,每个小栅格有一个电极控制,通过改变栅格上的电极就能控制格内液晶分子的排列,从而控制光路的导通。

彩色显示通过利用三种原色混合的原理显示不同的色彩:彩色面板中,每个像素都是有三个液晶单元格构成的,其中每个单元格前面都分别有红色,绿色或蓝色的过滤片;光线经过过滤片的处理变成红色,蓝色或则绿色,利用三原色的原理组合出不同的色彩。

TN、STN和TFT型LCDLCD 种类可分为依驱动方式之静态驱动(Static)、单纯矩阵驱动(Simple Matrix)以及主动矩阵驱动(Active Matrix)三种。

而其中,单纯矩阵型又是俗称的被动式(Passive),可分为扭转向列型(Twisted Nematic,简称TN)和超扭转式向列型(Super Twisted Nematic,简称STN)两种;而主动矩阵型则以薄膜式晶体管型(Thin Film Transistor;TFT)为目前主流。

这两种显示器的基本原理比较接近,不同点在于:TN 型显示器通过电极控制液晶分子,FET 有电容效应,显示质量较差;TFT 型显示器则通过FET 电子管控制液晶分子,FET 有电容效应,所以液晶分子能在下一次电极变化前保持原有的排列,因此TFT 型显示器的颜色数量和刷新速度都优于TN 型显示器。

基于S3C2410的TFT—LCD驱动电路设计

基于S3C2410的TFT—LCD驱动电路设计
位 嵌 入 式 处理 器 。它 主 要 面 向手 持 示 系 统 , 图 l 示 , 系统 可 以满 液 晶显示 器 的驱 动 电路 只需 要嵌 入 如 所 该 设 备 以 及 高 性 价 比 、 低 功 耗 的 应 足 大 多数 嵌入 式 手 持 设 备 的功 能 要 式 处 理器 给 出像 点 时 钟 、数 据 . .

、 j !. j
维普资讯
瞄匕I hr:、 _ h ’ ! “
表 I T 30 -E S 5Q1 I的电压要求 L P
名韵 : 符 号 最 小值 典型值 最l 值 单位 入 _ 数字 电压 , j 3 0 3 3 3 伏 6 模 拟 电压 , 47 50 53 伏 栅极开启电压 1 5 1 8 2 0 伏 栅极荚晰电压 K . 8 —0 1 —2 1 伏 公 电压 36 4O 44 伏
系 统 中 。 ¥ C2 1 3 4 0是 三 星 公 司 开 发 L S 5 Ql El 为 显 示 设 备 可 以 来 构 成嵌 入 式 液 晶显示 系 统 。调 试 T 30 — P 作
的 一 歉 以 A M9 0 为 核 心 的 l/2 构 成 一个 基 于 嵌 入 式 平 台 的液 晶显 结 果 表 明设 计 正 确 ,本 文 所 设计 的 R 2T 63
用 。 L S 5 Q1P 是 三 星 电子 公 求 。但 是 ,要想 ¥ C 4 0的 L D控 信 号 和 RGB数据 信 号 ,因 此 ,可 以 T 3 0 一 EI 321 C
司生 产 的 一款 非 晶硅 有 源矩 阵T T 制 器 可 以 正 确 有 效 地 控 制 TFT— 不 做硬 件 上 的修 改就 能成 为 以其它 F—
屏 上 显 示 的 画面 ,必 须 以有 6 种 灰 度 的 变 化 。由于 集 成度 4 为 液 晶 屏 提 供 背 光 源 。 的 限制 ,灰 度 参 考 电压 电路 需 要 由

液晶显示驱动原理心得体会(共5篇)

液晶显示驱动原理心得体会(共5篇)

液晶显示驱动原理心得体会(共5篇)第一篇:液晶显示驱动原理心得体会SZRD 了解液晶顯示驅動原理1.Cs(storage capacitor)储存电容架构不同, 所形成不同驱动系统架构的原理。

(1).Cs on gate:儲存電容利用gate走線來完成。

優點:1)不需要增加一条额外的common走线,開口率(Aperture ratio)較大。

2)不影響儲存電容上儲存電壓的大小(響應時間影響有限)。

(2).Cs on common:儲存電容利用common走線來完成。

2.整块面板的电路架构。

(1).以一个1024*768分辨率的TFT LCD来说,共需要1024*768*3个点(每一个TFT与Clc跟Cs所并联的电容, 代表一个显示的点;三个RGB三原色代表一个基本的显示单元pixel)组合而成.(2).由gate driver所送出的波形,依序将每一行的TFT打开, 好让整排的source driver同时将一整行的显示点, 充电到各自所需的电压, 显示不同的灰阶.如此依序下去。

3.面板的各种极性变换方式。

(1).由于液晶分子有一种特性,就是不能够一直固定在某一个电压不变, 不然时间久了, 你即使将电压取消掉, 液晶分子会因为特性的破坏, 而无法再因应电场的变化来转动, 以形成不同的灰阶.避免当液晶分子转向一直固定在一个方向时, 所造成的特性破坏.也就是说, 当显示画面一直不动时, 我们仍然可以由正负极性不停的交替, 达到显示画面不动, 同时液晶分子不被破坏掉特性的结果.(2).面板各種極性變換方式:1)frame inversion2)row inversion与column inversion3)dot inversion4)delta inversionmon電極的驅動方式:(1).common電壓固定不變的驅動方式。

(2).common電壓不停變動的驅動方式。

1.面板极性变换与common电极驱动方式的选用:2.各种面板极性变换的比较:5.SVGA分辨率的二阶驱动: 指gate driver的输出电压仅有两种数值,一为打开电压,一为关闭电压.1.feed through电压:成因主要是因为面板上其它电压的变化,经由寄生电容或是储存电容,影响到显示电极电压的正确性.(1)CS on common時Common電壓不變之feed through。

三星S3C2410芯片内部集成的LCD驱动控制器滚动屏幕的实现

三星S3C2410芯片内部集成的LCD驱动控制器滚动屏幕的实现

三星S3C2410芯片内部集成的LCD驱动控制器滚动屏幕的实现S3C2410X 支持硬件方式的水平和垂直滚屏。

要实现滚屏,可修改LCDSADDR1和LCDSADDR2寄存器中的LCDBASEU和LCDBASEL的值(如图所示)。

但不是通过修改PAGEWIDTH和OFFSIZE来实现。

对于STN类型的LCD,VFRAME和VLINE脉冲的产生取决于于LCDCON2/3寄存器中的HOZV AL和LINEV AL的配置,它们都与LCD屏的大小和显示模式有关。

换句话说,HOZV AL和LINEV AL可由LCD屏与显示模式决定,公式如下:HOZV AL = (水平显示尺寸/有效VD数据队列数)-1彩色显示模式下:水平显示尺寸=3 * 水平像素数在4位但扫描模式下,有效VD数据队列数应为4。

若用4位双扫描模式显示,有效的VD数据队列数也是4,但在8位但扫描模式下,有效的VD数据队列数应为8.单扫描情况:LINEV AL = (垂直显示尺寸)-1双扫描情况:LINEV AL = (垂直显示尺寸/2)-1LCDBASEU:对双扫描LCD:这些位只是帧缓冲区或在双扫描LCD时的上帧缓冲区的开始地址A[21:1]对单扫描LCD:这些位只是帧缓冲区的开始地址A[21:1]LCDBASEL:对双扫描LCD:这些位只是在使用双扫描LCD时的下帧存储区的开始地址A[21:1]对单扫描LCD:这些位只是帧存储区的末地址[21:1]LCDBASEL=((the frame end address)>>1)+1=LCDBASEU+(PAGEWIDTH+OFFSIZE)*(LINEV AL+1)注意:当LCD 控制器启用时,用户可通过改变LCDBSEU和LCDBASEL的值实现滚屏。

但是,在一帧结束时,LCDBASEU和LCDBASEL的值务必不能改变,可参考LCDCON1寄存器中的LINECNT域,因为LCD屏的显示也会出现错误。

S3C2410——SD卡(个人总结版)

S3C2410——SD卡(个人总结版)

0
4095
数据
0
CRC
1
帧起始标记
帧结束标记
16比特CRC校验
SDI模式——帧
宽带数据帧(Data0-Data3同时传输数据)
DAT3 DAT2
0 0 0 0
4095 4094 4093 4092
数据 数据 数据 数据
3 2 1 0
CRC CRC CRC CRC
1 1 1 1
DAT1
DAT0
SDI模式——时序
S3C2410——SD卡
SD卡简介
SD卡(Secure Digital Memory Card)中文翻译
为安全数码卡,是一种基于半导体快闪记忆器的新一代
记忆设备,它被广泛地于便携式装置上使用,例如数码
相机、个人数码助理(PDA)和多媒体播放器等。SD卡由
日本松下、东芝及美国SanDisk公司于1999年8月共同
开发研制。大小犹如一张邮票的SD记忆卡,重量只有2
克,但却拥有高记忆容量、快速数据传输率、极大的移
动灵活性以及很好的安全性。
DATA0-3:数据引脚(双向) CMD:命令引脚(双向) 总线 接口
0 1
2
3
4
5
6
7 8
VDD:3.3V电压
CLK:时钟 3、4号引脚:地线


控制器 器 组
FLASH
(Card Specific Data)专用数据寄存器,保存SD卡的 配置信息,包括卡的容量、数据访问时间、最大传输率、 最大读数据长度、最大读写电流、擦除保护和写保护等 信息。
CSD 128
SCR 64
OCR 32
(SD Configuration Reigister)SD卡配置寄存器,包 括SD版本号、SD加密支持和数据总线宽度等信息。

基于S3C2410的触摸屏驱动开发及校准算法

基于S3C2410的触摸屏驱动开发及校准算法

Computer Knowledge and Technology 电脑知识与技术多媒体技术及其应用本栏目责任编辑:唐一东第6卷第19期(2010年7月)ISSN 1009-3044Computer Knowledge and Technology电脑知识与技术Vol.6,No.19,July 2010,pp.5321-5322E-mail:eduf@ Tel:+86-551-56909635690964基于S3C2410的触摸屏驱动开发及校准算法何世杰(解放军炮兵学院,安徽合肥230031)摘要:该文基于s3c2410微处理器,开发了嵌入式linux 操作系统的触摸屏驱动程序。

针对一些常见机械性误差,介绍了触摸屏校准算法,并详细讲解了三点校准算法的原理。

适用于嵌入式linux 操作系统的开发,特别是QT ,miniGUI 等图形界面的操作系统。

关键词:S3C2410;LINUX ;触摸屏驱动;三点校准法中图分类号:TP391文献标识码:A 文章编号:1009-3044(2010)19-5321-02S3C2410-based Touch-screen Driver Development and Calibration AlgorithmsHE Shi-jie(Artillery Academy of P.L.A,Hefei 230031,China)Abstract:Base on the s3c2410,this paper design a device drive of touch screen for Linux embedded operating system.Arm to the com -mon mechanical errors,this paper introduce the 3-Points calibration algorithm,which can be useful to the embedded operate system,espe -cial to the QT and miniGUI.Key words:S3C2410;LINUX,touch screen driver;3-Points calibration algorithm在小型化的设备中,输入和输出设备占据了很大的体积,而触摸屏集输入输出于一体,有效的减小了设备的体积;另外,触摸屏使人们摆脱了键盘和鼠标的操作,让人机交互更为直接。

基于S3C2410的触摸屏驱动开发及校准算法

基于S3C2410的触摸屏驱动开发及校准算法

摘 要 : 文 基 于 s c 4 0微 处理 器 . 该 32 1 开发 了嵌 入 式 l u i x操 作 系统 的 触摸 屏驱 动程 序 针 对 一 些 常 见机 械 性误 差 . 绍 了触 摸 屏 校 准 n 介 算 法 , 详 细 讲 解 了三 点校 准算 法的 原 理 。 适 用 于 嵌入 式 l u 并 i x操 作 系统 的 开 发 , 别 是 QT, ii UI 图 形界 面的 操 作 系统 。 n 特 m nG 等
关键 词 : 3 4 0 LI ¥ C2 1 ; NUX; 摸 屏 驱 动 : 触 三点 校 准 法 中 图分 类 号 : 3 1 TP 9 文献标识码 : A 文 章 编 号 :0 9 3 4 (0 0 1 —5 2 — 2 1 0 — 0 42 1 ) 9 3 1 0
S3 2 0 C 41 -ba e To h-s r e D rve e l pm e tand Ca i ato A l rt s s d uc c e n i rD veo n lbr i n go ihm
嵌 入 式 L n x几 乎 继 承 了 Liu iu n x的所 有 优 点 。
lu i x设 备 驱 动 都 在 内 核 空 间实 现. 现 方 式 有 两 种 :一 种 是 将 有 关 的设 备 驱 动 程 序 和 数 据 结 构 静 态 地 编 译 进 内核 映像 ( ae n 实 i g) m 中; 另一 种 是 将 设 备 驱 动 程 序 和 数 据 结构 独立 编译 , 之 成 为 可安 装 的模 块 (o ue。一 般 情 况 下是 采用 第 二种 方 法 加 载 到 内核 的 。 使 m d l) Lnx把 所 有 的 设 备 都 当作 文 件 进 行 处 理 , 一 类 文 件 就 是 设 备 文 件 , 可 以 使 用 文 件 , 0 相 关 鬲 数 进 行 操 作 , 而 方 便 了 对 设 备 iu 这 它 I / 从

S3C2440上LCD驱动详解

S3C2440上LCD驱动详解

S3C2440上LCD驱动(FrameBuffer)实例开发讲解一、开发环境·主机:VMWare--Fedora 9·开发板:Mini2440--64MB Nand, Kernel:2.6.30.4·编译器:arm-linux-gcc-4.3.2二、背景知识1. LCD工作的硬件需求:要使一块LCD正常的显示文字或图像,不仅需要LCD驱动器,而且还需要相应的LCD控制器。

在通常情况下,生产厂商把LCD驱动器会以COF/COG 的形式与LCD玻璃基板制作在一起,而LCD控制器则是由外部的电路来实现,现在很多的MCU内部都集成了LCD控制器,如S3C2410/2440等。

通过LCD 控制器就可以产生LCD驱动器所需要的控制信号来控制STN/TFT屏了。

2. S3C2440内部LCD控制器结构图:我们根据数据手册来描述一下这个集成在S3C2440内部的LCD控制器:a:LCD控制器由REGBANK、LCDCDMA、TIMEGEN、VIDPRCS寄存器组成;b:REGBANK由17个可编程的寄存器组和一块256*16的调色板内存组成,它们用来配置LCD控制器的;c:LCDCDMA是一个专用的DMA,它能自动地把在侦内存中的视频数据传送到LCD驱动器,通过使用这个DMA通道,视频数据在不需要CPU的干预的情况下显示在LCD屏上;d:VIDPRCS接收来自LCDCDMA的数据,将数据转换为合适的数据格式,比如说4/8位单扫,4位双扫显示模式,然后通过数据端口VD[23:0]传送视频数据到LCD驱动器;e:TIMEGEN由可编程的逻辑组成,他生成LCD驱动器需要的控制信号,比如VSYNC、HSYNC、VCLK和LEND等等,而这些控制信号又与REGBANK寄存器组中的LCDCON1/2/3/4/5的配置密切相关,通过不同的配置,TIMEGEN 就能产生这些信号的不同形态,从而支持不同的LCD驱动器(即不同的STN/TFT屏)。

LCD 基础及S3C2410 LCD 控制器

LCD 基础及S3C2410 LCD 控制器

LCD基础及S3C2410 LCD控制器一、超薄平面显示器时代来临电视机所采用的 CRT(阴极射线管)有着体积大、重量重、尺寸受限等缺点。

随着电子科技的发展,对移动显示的要求越来越多,CRT 的先天限制,让其小型化、行动化的理想受到阻碍。

这使得开发新一代的显示器技术变得更有其必要! 新一代的显示器讲求几个重点:平面直角,画面显示不变形、轻薄短小耗能少,携带方便且同时要与现有的影像信号技术兼容。

目前谈论到超薄型显示器技术,最普及当是 TFT LCD 的应用了,举凡数字相机、笔记型计算机、PDA 等,需要显示复杂信息的电子产品通通少不了它。

TFT LCD 技术又包含了,低温多硅晶TFT LCD、反射式TFT LCD 等,多项不同的显示技术,下面我们就要来一探 LCD 的历史与原理。

二、液晶的发明与发现液晶的诞生来自于一项非常特殊物质的发现,早在 1850 年 Virchow, Mettenheimer 和 Valentin 这三个人就发现 nerve fibre 的粹取物中含有这种不寻常的东西。

到了 1877 年德国物理学家 Otto Lehmann 运用偏极化的显微镜首次观测到了液晶化的现象,但他对此一现象的成因并不了解。

直到公元1888年,奥地利的植物学家 Friedrich Reinitzer(1857-1927)发现了螺旋性甲苯酸盐的化合物(cholesteryl benzoate),确认了这种化合物在加热时具有两个不同温度的熔点,在这两个不同的温度点中,其状态介于一般液态与固态物质之间,类似胶状,但在某一温度范围内其又具有液体和结晶双方性质,由于其特殊的状态。

Reinitzer 后来走访 Lehmann 深入探讨这种物质的表现,其后两人便命名这种物质为「Liquid Crystal」,就是液态结晶物质的意思。

Reinitzer 和 Lehmann 这两人被誉为液晶之父。

同 CRT 阴极射线管一样,液晶虽早在1888年就被发现(实际上,但是实际应用在生活周遭时,已是80年后的事了。

基于S3C2410的触摸屏应用技术

基于S3C2410的触摸屏应用技术
O l 1 O
/设置成为等待中断模式 :1 O / 1 1
结果
Q 、Q 1 2导 通 ,
若给一个工作面的 电极对施加 电压 , 重量 轻、成本低 、可靠 性高 的优 点 ,其 中 AR 体 系处理器 为该工作 面的一对 电极 , M
占据 了 目前 各种嵌入 式处理 器最大的市场份额 ,¥ C 4 3 21 布 。当给 X
A P CA TI PLI ON
■ ●
基于 ¥ 2 3 1 C 4 0的触 摸屏应用技术
摘 要 :¥ C 40 3 21 处理 器 是 Smsn a u g公 司基 于 A M 公 在嵌入式 系统 中用的较 多。 电阻触摸屏 是一块 4层 的透 明的 R
司 的 AR 2 T处理 器核 ,是 当前 3 M9 0 2位嵌入 式市 场 中应用 复合薄膜屏 ,最 下面是玻璃或有机玻 璃构成的基层 ,最上面 较多的微控制器 ,基 于 ¥ C 4 0嵌入 式微 处理器的触摸屏应 是一层外表面经过 硬化处理从而 光滑防刮 的塑料层 ,中间是 3 21 用技术有较 高的工程 应用价值。介绍 了 ¥ C 4 0处理器的技 两 层金属导 电层 ,分别在基层 之上和 塑料层 内表面 ,在两 导 3 21 术特点 、触摸屏 的工作原理 ,阐述了基于 ¥ C 4 0系统的触 电层之间有许 多细 小的透 明隔离 点把 它们 隔开。 当手指触摸 3 21 摸屏接 口设计方法 和程序 配置。 关键词 :¥ C 4 0 3 2 1 ;嵌 入式 ;触摸屏 ; 屏 幕时 ,两导 电层在触摸点处接触。如图 1 示。 所 电阻式触摸屏有 四线和五线两种。应用较多 的是 四线式 , 其触摸 屏的 X工作面和 Y工作面 分别加在两个导 电层上,共
( 2) 拥 有 独 立 的 1 K B指 令 C c e和 1 K 6 ah 6 B数 据 3 、¥ C 4 处理 器 与触摸 屏 的接 口设计 321 0微 Cce a h ,支持 T T的 L F CD及控 制器 。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

S3c2410 LCD驱动学习心得一实验内容简要描述1.实验目的学会驱动程序的编写方法,配置S3C2410的LCD驱动,以及在LCD屏上显示包括bmp和jpeg两种格式的图片2.实验内容(1)分析S3c2410实验箱LCD以及LCD控制器的硬件原理,据此找出相应的硬件设置参数,参考xcale 实验箱关于lcd的设置,完成s3c2410实验箱LCD的设置(2)在LCD上显示一张BMP图片或JPEG图片3.实验条件(软硬件环境)PC机、S3C2410开发板、PXA255开发板二实验原理1. S3C2410内置LCD控制器分析1.1 S3C2410 LCD控制器一块LCD屏显示图像,不但需要LCD驱动器,还需要有相应的LCD控制器。

通常LCD驱动器会以COF/COG的形式与LCD 玻璃基板制作在一起,而LCD控制器则由外部电路来实现。

而S3C2410内部已经集成了LCD控制器,因此可以很方便地去控制各种类型的LCD屏,例如:STN和TFT屏。

S3C2410 LCD控制器的特性如下:(1)STN屏支持3种扫描方式:4bit单扫、4位双扫和8位单扫支持单色、4级灰度和16级灰度屏支持256色和4096色彩色STN屏(CSTN)支持分辩率为640*480、320*240、160*160以及其它规格的多种LCD(2)TFT屏支持单色、4级灰度、256色的调色板显示模式支持64K和16M色非调色板显示模式支持分辩率为640*480,320*240及其它多种规格的LCD对于控制TFT屏来说,除了要给它送视频资料(VD[23:0])以外,还有以下一些信号是必不可少的,分别是:VSYNC(VFRAME):帧同步信号HSYNC(VLINE):行同步信号VCLK :像数时钟信号VDEN(VM):数据有效标志信号由于本项目所用的S3C2410上的LCD是TFT屏,并且TFT屏将是今后应用的主流,因此接下来,重点围绕TFT屏的控制来进行。

图1.1是S3C2410内部的LCD控制器的逻辑示意图:图1.1REGBANK 是LCD控制器的寄存器组,用来对LCD控制器的各项参数进行设置。

而LCDCDMA 则是LCD控制器专用的DMA信道,负责将视频资料从系统总线(System Bus)上取来,通过VIDPRCS 从VD[23:0]发送给LCD屏。

同时TIMEGEN 和LPC3600 负责产生LCD屏所需要的控制时序,例如VSYNC、HSYNC、VCLK、VDEN,然后从VIDEO MUX 送给LCD屏。

1.2 TFT屏时序分析图1.2是TFT屏的典型时序。

其中VSYNC是帧同步信号,VSYNC每发出1个脉冲,都意味着新的1屏视频资料开始发送。

而HSYNC为行同步信号,每个HSYNC脉冲都表明新的1行视频资料开始发送。

而VDEN则用来标明视频资料的有效,VCLK是用来锁存视频资料的像数时钟。

并且在帧同步以及行同步的头尾都必须留有回扫时间,例如对于VSYNC来说前回扫时间就是(VSPW+1)+(VBPD+1),后回扫时间就是(VFPD +1);HSYNC亦类同。

这样的时序要求是当初CRT显示器由于电子枪偏转需要时间,但后来成了实际上的工业标准,乃至于后来出现的TFT屏为了在时序上于CRT兼容,也采用了这样的控制时序。

图1.2S3C2410实验箱上的LCD是一款3.5寸TFT真彩LCD屏,分辩率为240*320,下图为该屏的时序要求。

图1.3通过对比图1.2和图1.3,我们不难看出:VSPW+1=2 -> VSPW=1VBPD+1=2 -> VBPD=1LINVAL+1=320-> LINVAL=319VFPD+1=3 -> VFPD=2HSPW+1=4 -> HSPW=3HBPD+1=7 -> HBPW=6HOZVAL+1=240-> HOZVAL=239HFPD+1=31 -> HFPD=30以上各参数,除了LINVAL和HOZVAL直接和屏的分辩率有关,其它的参数在实际操作过程中应以上面的为参考,不应偏差太多。

1.3 LCD控制器主要寄存器功能详解图1.4LINECNT :当前行扫描计数器值,标明当前扫描到了多少行。

CLKVAL :决定VCLK的分频比。

LCD控制器输出的VCLK是直接由系统总线(AHB)的工作频率HCLK 直接分频得到的。

做为240*320的TFT屏,应保证得出的VCLK在5~10MHz之间。

MMODE :VM信号的触发模式(仅对STN屏有效,对TFT屏无意义)。

PNRMODE :选择当前的显示模式,对于TFT屏而言,应选择[11],即TFT LCD panel。

BPPMODE :选择色彩模式,对于真彩显示而言,选择16bpp(64K色)即可满足要求。

ENVID :使能LCD信号输出。

图1.5VBPD ,LINEVAL ,VFPD ,VSPW 的各项含义已经在前面的时序图中得到体现。

图1.6HBPD ,HOZVAL ,HFPD 的各项含义已经在前面的时序图中得到体现。

图1.7HSPW 的含义已经在前面的时序图中得到体现。

MVAL 只对STN屏有效,对TFT屏无意义。

HSPW 的含义已经在前面的时序图中得到体现,这里不再赘述。

MVAL 只对STN屏有效,对TFT屏无意义。

图1.8VSTATUS :当前VSYNC信号扫描状态,指明当前VSYNC同步信号处于何种扫描阶段。

HSTATUS :当前HSYNC信号扫描状态,指明当前HSYNC同步信号处于何种扫描阶段。

BPP24BL :设定24bpp显示模式时,视频资料在显示缓冲区中的排列顺序(即低位有效还是高位有效)。

对于16bpp的64K色显示模式,该设置位无意义。

FRM565 :对于16bpp显示模式,有2中形式,一种是RGB=5:5:5:1,另一种是5:6:5。

后一种模式最为常用,它的含义是表示64K种色彩的16bit RGB资料中,红色(R)占了5bit,绿色(G)占了6bit,兰色(B)占了5bitINVVCLK ,INVLINE ,INVFRAME ,INVVD :通过前面的时序图,我们知道,CPU的LCD控制器输出的时序默认是正脉冲,而LCD需要VSYNC(VFRAME)、VLINE(HSYNC)均为负脉冲,因此INVLINE 和INVFRAME 必须设为“1 ”,即选择反相输出。

INVVDEN ,INVPWREN ,INVLEND 的功能同前面的类似。

PWREN 为LCD电源使能控制。

在CPU LCD控制器的输出信号中,有一个电源使能管脚LCD_PWREN,用来做为LCD屏电源的开关信号。

ENLEND 对普通的TFT屏无效,可以不考虑。

BSWP 和HWSWP 为字节(Byte)或半字(Half-Word)交换使能。

由于不同的GUI对FrameBuffer (显示缓冲区)的管理不同,必要时需要通过调整BSWP 和HWSWP 来适应GUI。

2. Linux 驱动2.1 FrameBufferLinux是工作在保护模式下,所以用户态进程是无法像DOS那样使用显卡BIOS里提供的中断调用来实现直接写屏,Lin仿显卡的功能,将显ux抽象出FrameBuffer这个设备来供用户态进程实现直接写屏。

Framebuffer机制模卡硬件结构抽象掉,可以通过Framebuffer的读写直接对显存进行操作。

用户可以将Framebuffer看成是显示内存的一个映像,将其映射到进程地址空间之后,就可以直接进行读写操作,而写操作可以立即反应在屏幕上。

这种操作是抽象的,统一的。

用户不必关心物理显存的位置、换页机制等等具体细节。

这些都是由Framebuffer设备驱动来完成的。

在Linux系统下,FrameBuffer的主要的结构如图所示。

Linux为了开发FrameBuffer程序的方便,使用了分层结构。

fbmem.c处于Framebuffer设备驱动技术的中心位置。

它为上层应用程序提供系统调用,也为下一层的特定硬件驱动提供接口;那些底层硬件驱动需要用到这儿的接口来向系统内核注册它们自己。

fbmem.c 为所有支持FrameBuffer的设备驱动提供了通用的接口,避免重复工作。

下将介绍fbmem.c主要的一些数据结构。

2.2 数据结构2.2.1 Linux FrameBuffer的数据结构在FrameBuffer中,fb_info可以说是最重要的一个结构体,它是Linux为帧缓冲设备定义的驱动层接口。

它不仅包含了底层函数,而且还有记录设备状态的数据。

每个帧缓冲设备都与一个fb_info结构相对应。

fb_info的主要成员如下struct fb_info {int node;struct fb_var_screeninfo var; /* Current var */struct fb_fix_screeninfo fix; /* Current fix */struct fb_videomode *mode; /* current mode */struct fb_ops *fbops;struct device *device; /* This is the parent */struct device *dev; /* This is this fb device */char __iomem *screen_base; /* Virtual address */unsigned long screen_size; /* Amount of ioremapped VRAM or 0 */…………};其中node成员域标示了特定的FrameBuffer,实际上也就是一个FrameBuffer设备的次设备号。

fb_var_screeninfo结构体成员记录用户可修改的显示控制器参数,包括屏幕分辨率和每个像素点的比特数。

fb_var_screeninfo中的xres定义屏幕一行有多少个点, yres定义屏幕一列有多少个点, bits_per_pixel 定义每个点用多少个字节表示。

其他域见以下代码注释。

struct fb_var_screeninfo {__u32 xres; /* visible resolution */__u32 yres;__u32 xoffset; /* offset from virtual to visible */__u32 yoffset; /* resolution */__u32 bits_per_pixel; /* bits/pixel */__u32 pixclock; /* pixel clock in ps (pico seconds) */__u32 left_margin; /* time from sync to picture */__u32 right_margin; /* time from picture to sync */__u32 hsync_len; /* length of horizontal sync */__u32 vsync_len; /* length of vertical sync */…………};在fb_info结构体中,fb_fix_screeninfo中记录用户不能修改的显示控制器的参数,如屏幕缓冲区的物理地址,长度。

相关文档
最新文档