杭州电子网站建设方案深圳地铁公司网站

pingmian/2026/1/27 13:33:54/文章来源:
杭州电子网站建设方案,深圳地铁公司网站,最有吸引力的营销模式,网页qq手机版目录 1、LCD显示系统介绍1.1 LCD显示基本原理1.1.1 颜色的显示原理#xff1a;1.1.2 图像的构成 1.2 LCD接口介绍1.2.1 驱动接口 - MCU接口1.2.2 驱动接口 - RGB接口1.2.3 驱动接口 - LVDS接口1.2.4 驱动接口 - MIPI接口1.2.5 RGB / MIPI / LVDS三种接口方式的区别#xff1a… 目录 1、LCD显示系统介绍1.1 LCD显示基本原理1.1.1 颜色的显示原理1.1.2 图像的构成 1.2 LCD接口介绍1.2.1 驱动接口 - MCU接口1.2.2 驱动接口 - RGB接口1.2.3 驱动接口 - LVDS接口1.2.4 驱动接口 - MIPI接口1.2.5 RGB / MIPI / LVDS三种接口方式的区别 2、RGB控制原理2.1 LCD显示系统结构2.2 基本显示过程2.3 LCD时钟控制2.3.1 像素时钟2.3.2 水平同步时钟 HSYNC2.3.3 显示一帧 - 垂直同步时钟VSYNC 2.4 控制时序2.5 LCD时序与显示的映射关系2.6 linux对LCD时序的抽象2.6.1 struct fb_videomode 显示参数结构体2.6.2 判断 HSYNC,VSYNC,VCLK, VDEN信号是否需要反转 3、实验环境介绍4、 exynos4412的LCD控制器相关知识点介绍4.1 显示控制器介绍4.2 时钟4.3 RGB接口4.3.1 RGB接口控制器4.3.2 RGB接口规范4.3.3 信号4.3.4 LCD RGB接口时序 4.4 寄存器4.4.1 寄存器概况4.4.2 寄存器使用详述4.4.2.2 时钟寄存器CLK_SRC_LCD0 P505CLK_SRC_MASK_LCDCLK_DIV_LCD P530CLK_GATE_IP_LCD (P556) 4.4.2.3 系统寄存器LCDBLK_CFG (P884)LCDBLK_CFG2 P886 4.4.2.4 LCD控制寄存器VIDCON0 P1838VIDCON1 (P1839)VIDTCON0 (P1842)VIDTCON1VIDTCON2 (P1843)VIDTCON3 (P1843)WINCON0 (P1844)SHADOWCON (P1859)WINCHMAP2VIDOSD0A VIDOSD0B VIDOSD0CP1863 4.4.2.5 电源管理寄存器9 LCD0_CONFIGURATION 5、结语 本篇是LINUX3.14环境中的LCD驱动框架的第一篇主要讲解LCD显示的基本原理RGB控制器的运行原理LCD硬件编程的准备知识包括大量的需要使用到的寄存器详述。由于涉及到大量的细节因此写的过程中难免有错误与遗漏因此如有发现错漏请及时留言指出。哪些地方不好理解或没说明白也请指出我们一起讨论完善。 1、LCD显示系统介绍 1.1 LCD显示基本原理 \qquad 从这张图就可以看出。白光经过楄光和液晶层后通过每一个像素的RGB的三个子像素后就能呈现出彩色图像。 \qquad 因此LCD的电路主要任务就是控制如图中的电极板从而控制液晶形态而达到控制每个红兰绿子像素的秀光量。 \qquad 当前主流的LCD是TFT特点是超薄、清晰。 1.1.1 颜色的显示原理 \qquad 显示器的颜色一般采用RGB标准通过对红(RED)、绿(GREEN)蓝(BLUE)三个颜色相互叠加得到各种不同的颜色。 通过对颜色的编码来对颜色进行量化即转换成数字量RGB是一种编码方式每种颜色根据RGB格式不同每种颜色的量化位不相同常见的RGB格式有RGB565/RGB888即: RGB565: red :5 green : 6 blue:516BPP RGB888: red :8 green : 8 blue:824BPP有的还会有个alpha参数用于实现图形渐变效果以及半透明效果0xFFF全透明0x0不透明 1.1.2 图像的构成 像素 像素pix显示的最小单位在计算机只常用若干位数据来表示一个像素比如使用R8、G8、B8共24位来表示一个像素这个也称为像素深度单位为BPP 常见的有16BPP/24BPP像素深度越大则一个像素点所显示的颜色就越多所显示的颜色更广 帧 一屏图像被称为一帧每帧里面由行列排列的像素组成 调色板 \qquad 画油画的时候通常先在调色板里配好想要的颜色再用画笔沾到画布上作画。 \qquad LCD控制器里也借用了这个概念从FrameBuffer获得数据这个数据作为索引从调色板获得对应数据再发给电子枪显示出来。 \qquad 假如是16BPP的数据LCD控制器从FB取出16bit数据显示到LCD上。 \qquad 当如果想节约内存对颜色要求也没那么高就可以采用调色板的方式调色板里存放了256个16bit的数据FB只存放每个像素的索引根据索引去调色板找到对应的数据传给LCD控制器再通过电子枪显示出来。 1.2 LCD接口介绍 \qquad 不同的组件之间的连接需要做好很多约定这些软硬件的约定构成了接口。在LCD的屏与控制器之间的接口是开发者重点要关注的。接口有不同层次的分别使用时注意区分 LCD驱动接口 用于连接LCD驱动器与LCD控制器这间的软硬件规范。是芯片级的接口。 在单片机上MCU接口在嵌入式中RGB接口、LVDS接口、MIPI-DSI接口 LCD传输接口 当LCD与SOC有一定的距离就需要用到传输技术来为控制器和驱动器传递信号传输线缆与控制器之前的连接也涉及到相应的软硬件规范。 HDMIDPUSB 1.2.1 驱动接口 - MCU接口 应用领域小尺寸手机屏单片机应用一般4寸以下。优势价格便宜。劣势指令逐点写入速度慢接口执行标准Intel 8080总线标准I80标准 8080模式 、6800模式 并行8位、16位、18位、24位传输 无需时钟和同步信号 L C D 驱动器要内置 G R A M \color{red}{LCD驱动器要内置GRAM} LCD驱动器要内置GRAM直接一对一投射每个象素。显示过程 不需要点、行、帧时钟 \color{red}{不需要点、行、帧时钟} 不需要点、行、帧时钟。 1.2.2 驱动接口 - RGB接口 应用领域嵌入式应用一般7寸以上。优势直接写屏显示速度快劣势价格高功耗大抗EMI电磁干扰弱接口执行标准TTL 颜色编码方式RGB24 / RGB888 / RGB555 / RGB565 / RGB666 并行24位传输 显示过程要有时钟和行、帧同步信号等HSYNC, , VSYNC , ENABLE , CS , RESET , RS 显存是 内存映射 \color{red}{内存映射} 内存映射LCD驱动中没有GRAM。 1.2.3 驱动接口 - LVDS接口 LVDSLow Voltage Differential Signaling 是一种低压差分信号技术接口。 应用领域嵌入式应用一般7寸以上。优势直接写屏显示速度快功耗小EMI电磁干扰小劣势价格高接口执行标准LVDS 信号内容RGB 常见的lvds接口分为四通道、五通道、十通道。 速度快常见的有几百Mbit/s 1.2.4 驱动接口 - MIPI接口 MIPIMobile Industry Processor Interface 移动行业处理器接口 应用领域移动嵌入式领域应用的接口标准DSI(Display Serial Interface Specification和 CSI摄像头接口优势高速功耗小干扰小劣势价格高接口执行标准 信号内容视频流数据和控制指令 1.2.5 RGB / MIPI / LVDS三种接口方式的区别 2、RGB控制原理 由于手上是一块RGB的7寸电容屏因此本文重点介绍RGB接口的驱动方法。 下面这些内容会涉及到比较多的细节这是因为在具体编写驱动时会设置LCD控制器和LCD屏的很多参数这些个参数的具体与硬件的对应关系就在本章节列述。如果不想看那么多可直接跳到第三章看框架介绍。在具体编写驱动时再回头来看本章。 2.1 LCD显示系统结构 在嵌入式领域RGB接口的LCD驱动结构一般如下图所示 图2.1 组件描述SoC负责发送显示数据及控制指令等给LCD。显 存SoC在内存中选一段内存用来存放颜色数据应用程序通过往显存中写数据然后通过配置将LCD控制器和这一段内存连接起来构成一个映射关系一旦这个关系建立以后LCD控制器就会自动从显存中读取像素数据传给LCD驱动器LCD驱动器会自动的控制每个像素点的液晶分子以形成最终的图像建立这个映射以后就不需要SoC再来参与任何行为了。LCD控制器在SoC内部会集成有LCD控制器它负责通过数字接口向外部的LCD驱动器提供要显示的像素数字信号。它必须按照一定的时序和LCD驱动器通信LCD控制器受SoC控制SoC会从内存中拿出像素数据给LCD控制器并最终传给LCD驱动器。LCD驱动器LCD驱动器一般与LCD面板集成在一起面板需要一定的模拟电信号来控制液晶分子LCD驱动器芯片负责给面板提供控制液晶分子的模拟电信号驱动器的控制信号数字信号来自于LCD控制器的提供的接口。 2.2 基本显示过程 LCD显示一张图片其实是每一个像素点的填充只是速度很快我们人眼没有察觉而已。 我们将LCD屏幕分为水平方向和垂直方向LCD每一行的像素点被逐一填充填充完一行继续填充下一行填充顺序可以为左-右 或者 右-左每一帧图像就从第一行的第一个像素点一直填充到最后一行的最后一个像素点。例如上图就现实一帧的图像(从左到右从上到下)。 2.3 LCD时钟控制 时钟是LCD正确工作的核心因素。上面所描述的每个像素的逐一发送每一行每一帧的正确发送都依靠各个时钟的有序运作。其中最基础的是像素时钟。 2.3.1 像素时钟 \qquad 如上图展示的是一个800*480的RGB LCD屏幕。 24bpp 显示模式即红绿蓝三色每色由8bit数位表示。 显示一行LCD需要填充800个像素点。每一个像素由RGB三元素组成每个元素(R、G、B)由8bit位数组成也就是说一个像素我们需要通过信号线传输24bit的数据。 \qquad 如图所示每一个clk的脉冲发送一个像素数据。一行共发送800个像素数据。 \qquad 像素时钟clk是一个持续的信号在实际工作中必须还要解决哪一个CLK代表一行的开始哪一个CLK代表第一个有效的像素数据这就需要有水平同步时钟HSYNC。 2.3.2 水平同步时钟 HSYNC HSYNC水平同步信号表示一行数据的开始。具体如下图 \qquad 其中CLK没有任何变化只是多了HSYNC和DEN上图中的ENB两个信号。 \qquad 如图中的红色箭头当HSYNC产生了如图所示的变化表示新的一行数据传送马上开始当ENB信号线为高电平期间传输的数据视为有效数据。这样一来一行800个像素的数据才能正确的传送完成。 2.3.3 显示一帧 - 垂直同步时钟VSYNC \qquad 按照我们之前假设的800*480LCD。从第一行一直到最后一行整个LCD屏幕所有像素填充完毕这一过程也就是写了一帧数据我们如果要LCD能够实时显示画面很显然一帧数据肯定不够所以要给LCD不断的提供新的帧数据这无非也就是重复上述显示一帧的过程。 \qquad 上图中VSYNC垂直同步信号当产生如图所示的变化就代表新的一帧数据马上开始传送。那么这里怎么没有有效数据信号DEN呢 \qquad 其实很简单因为新的一帧数据不就是从LCD第一行的第一个像素开始填充嘛那么前面我们已经说明了每一行都自己的同步信号而每一行也有对应的数据有效信号线。所以垂直同步信号只用关心从一帧数据的同步而不同关心每一行的同步。 于是我们将上面分析的时钟放在一起就变成了LCD RGB模式的典型时序图 。 2.4 控制时序 \qquad 时序图完整的描述了几个不同的控制信号之间如何相互协作。以及各个信号之间的工作间隔时间等。对于LCD控制器的寄存器设置的相关参数也在这个时序图中描述。 \qquad 下面这个是一个典型的完整的时序图。 图2.2 控制信号释义 信号名称作用VDVideo Data)数据信号用于传输图像的像素数据。每个像素的颜色信息通过VD信号传输。HSYNCHorizontal Sync水平同步信号用于同步每行图像数据的传输。每发出一个HSYNC脉冲表示新的一行图像数据开始发送。VSYNCVertical Sync垂直同步信号用于同步每帧图像数据的传输。每发出一个VSYNC脉冲表示新的一帧图像数据开始发送。VDENVideo Data Enable数据有效标志与HSYNC和VSYNC信号结合使用。VDEN信号表示VD数据的有效性只有在VDEN为高电平时VD数据才是有效的。LENDLine End行结束标志是一种时序信号用于表示一行图像数据的结束。不是所有接口都需要使用LEND信号例如210接口就没有。VCLKVideo Clock时钟信号用于同步图像数据的传输。VCLK信号的频率决定了图像数据的传输速度。 \qquad 想象每个像素点是由电子枪发射出来的电子枪依次扫描整个LCD界面就显示了一副完整的图像。 \qquad 当发出一个HSYNC信号后电子枪就会从行末花费HBP时长移动到行首然后在VCLK时钟下在下图中阴影区域显示像素等到了行末后再等待HFP时长待HSYNC信号到来再移动到行首如此往复。因此HBP和HFP分别决定了左边和右边的黑框。 \qquad 同理当发出一个VSYNC信号后电子枪就会从列末花费VBP时长移动到列首然后在VCLK时钟下在图中阴影区域显示像素等到了列末后再等待VFP时长待VSYNC信号到来再移动到列首如此往复。因此VBP和VFP分别决定了上边和下边的黑框。 2.5 LCD时序与显示的映射关系 下图是从LCD控制器的角度理解的显示映射关系 显示步骤 为了更好的理解上图总结成以下几个过程 1、产生垂直信号表示一帧数据将要开始2、经过VBP个行后才开始有效数据的第一行 类似上边距3、经过HBP具体的数值在后面会解释个CLK后才开始传输每行的有效数据。类似调整了A4纸张的左边距4、每行有效数据传输完毕经过HFP个CLK后才开始下一行。类似右边距5、重复3和4两个步骤一直到有效行显示完。6、有效行显示完毕后经过VFP个行后再开始下一帧数据 类似下边距 时序参数的含义如下参照上图理解 英文缩写名称作用HSPW(Horizontal Sync Pulse Width)行同步信号的脉宽单位为1VCLK的时间。HBP(Horizontal Back Porch)水平后肩水平同步信号HSYNC的下降沿到VDEN的上升沿的间隔称为HBP。单位为1VCLK的时间。在图中为HBPD1。HFP(Horizontal Front Porch)水平前肩把VDEN的下降沿到水平同步信号HSYNC的上升沿的间隔称为HFP单位为1VCLK的时间。在图中为HFPD1。HOZVAL行显示尺寸-1即屏列宽-1对于800*480分配率的LCD屏那么HOZVAL800-1799请记住是屏列宽也就是LCD屏显示一行数据所需要的像素(pixel)的数目。VSPW(Vertical Sync Pluse Width)帧同步信号的脉宽单位为1行Line的时间。VBP(Vertical Back Porch)垂直后肩垂直同步信号VSYNC下降沿到VDEN信号产生之前的一个行同步信号VHSYNC的上升沿之间隔。单位为1行Line的时间。在图中为VBPD1。VFP(Vertical Front Porch)垂直前肩VDEN数据信号的下降沿到垂直同步信号VSYNC产生的上升沿之间隔。单位为1行Line的时间。在图中为VFPD1。LINEVAL帧显示尺寸-1即屏行宽-1对于800*480分配率的LCD屏那么LINEVAL480-1479请记住是屏行宽也就是LCD屏显示一帧数据所需要的行的数目。 VSPW、HSPW这两个值其实很简单其中的W代表width也就是宽度的意思。所以这两个值分别描述的是垂直信号和水平信号的宽度如下图所示。 时间计算 由图2.2可知 扫描一帧所需的时间 T ( ( VSPW1 ) ( VBPD 1 ) ( LINEVAL 1) ( VFPD 1 ) ) 个行时间。扫描一行所所需的时间 ( ( HSPW 1 ) ( HSPD 1 ) ( HFPD 1 ) ( HOZVAL 1 ) ) 个VCLK时间。 而一个VCLK时间由LCD寄存器VIDCON0内的CLKVAL决定: VCLK HCLK / ( CLKVAL 1 ) ------这个公式是exynos4412的LCD控制器的其他CPU的不一定一样 因此扫描一帧所需的时间 T [(VSPW1)(VBPD1)(LINEVAL1)(VFPD1)] * [(HSPW1)(HSPD1)(HFPD1) (HOZVAL1)] * HCLK/ (CLKVAL1) 即帧频率为:1/T 2.6 linux对LCD时序的抽象 下图为从linux角度对lcd时序的理解这与前面从LCD控制器的角度对lcd时序的理解差别在于hsync_len和vsync_len。这实际是没有区别的只是理解的角度不同。因要写的是linux的驱动因此要清楚从linux的角度是如何映射的。 对应如下这个数据结构体 2.6.1 struct fb_videomode 显示参数结构体 /* include/linux/fb.h */ struct fb_videomode { const char *name; 可选的视频模式名称。这个成员用于存储视频模式的名称可以是一个字符串。 u32 refresh; 可选的刷新率。这个成员用于指定视频模式的刷新率以每秒刷新次数表示。 u32 xres; 显示的水平分辨率。这个成员表示图像在屏幕上的水平像素数。 u32 yres; 显示的垂直分辨率。这个成员表示图像在屏幕上的垂直像素数。 u32 pixclock; 像素时钟频率。这个成员表示像素时钟的频率用于计算图像的时序。 u32 left_margin; /*HBP*/ 在每行象素数据开始输出前需要要插入的空闲象素时钟周期数 u32 right_margin; /*HFP*/ 在每行象素数据结束到LCD行同步时钟脉冲之间插入的空闲象素时钟数 u32 upper_margin; /*VBP*/ 在垂直同步脉冲之后每帧开头前的无效行数 u32 lower_margin; /*VFP*/ 每帧数据输出结束到下一帧垂直同步时钟周期开始前的无效行数 u32 hsync_len; /*HSYNC 或 HPW 或 HWH*/ 行同步脉宽水平同步时钟的脉冲宽度 u32 vsync_len; /*VSYNC 或 VPW 或 VWH */ 帧同步脉宽垂直同步时钟的脉冲宽度 u32 sync; 同步极性设置,可根据需要设置FB_SYNC_HOR_HIGH_ACT(水平同步高电平有效)和FB_SYNC_VERT_HIGH_ACT(垂直同步高电平有效) u32 vmode; 显示模式。这个成员指定了显示器的模式例如非隔行模式或隔行模式。 u32 flag; 标志位。这个成员用于指示视频模式的一些特性和选项例如是否支持透明度等 }; 重要参数详解 pixclock 像素时钟频率在时序图上有时称DCLK 、VCLK 、CLK等都 是一个意思。如65MHZ的频率这里要填写pixclock 65000000。sync成员用于指定同步信号的类型可以是水平同步、垂直同步或两者的组合。 FB_SYNC_HOR_HIGH_ACT表示水平同步信号在高电平时激活。在某些视频模式中需要在高电平时发送水平同步信号。 FB_SYNC_VERT_HIGH_ACT表示垂直同步信号在高电平时激活。在某些视频模式中需要在高电平时发送垂直同步信号。 FB_SYNC_EXT表示使用外部同步信号。某些设备可能支持使用外部同步信号而不是内部的同步信号。 FB_SYNC_COMP_HIGH_ACT表示复合同步信号在高电平时激活。复合同步信号是基于水平和垂直同步信号组合而成的同步信号。 FB_SYNC_BROADCAST表示广播视频时所使用的视频定时信息。在PAL制式下垂直总行数为144行渐进扫描或288行隔行扫描在NTSC制式下垂直总行数为121行渐进扫描或242行隔行扫描。 FB_SYNC_ON_GREEN表示同步信号发送在绿色通道上。某些视频模式可能需要使用绿色通道来传输同步信号。 vmode成员用于指定视频模式的类型可以是以下几种常见的填写方式 FB_VMODE_NONINTERLACED表示非隔行模式也即渐进扫描模式。在这种模式下视频图像的每一帧都是通过逐行扫描显示的。 -
- FB_VMODE_INTERLACED表示隔行模式也即隔行扫描模式。在这种模式下视频图像的每一帧由两个交替的场组成每个场只显示图像的一半行数通过交替显示两个场来达到全帧显示的效果。 FB_VMODE_DOUBLE表示双帧缓冲模式。在这种模式下使用两个帧缓冲器来交替渲染显示图像的每一帧可以减少视频闪烁的效果。 FB_VMODE_ODD_FLD_FIRST表示隔行模式下先显示奇数场。在某些设备上隔行扫描模式下可以选择先显示奇数场还是偶数场。 FB_VMODE_MASK用于屏蔽其他标志位只保留视频模式的相关信息。 FB_VMODE_YWRAP表示使用y轴环绕而不是滚动。在某些设备上可以选择使用y轴环绕来显示图像而不是滚动显示。 FB_VMODE_SMOOTH_XPAN表示支持平滑的水平滚动。在某些设备上可以平滑地滚动图像而不是简单地按照整数像素进行滚动。 FB_VMODE_CONUPDATE表示不要更新x和y偏移量。在某些设备上可能希望固定x和y偏移量而不更新它们。 \qquad 在使用struct fb_videomode时可以参考设备文档或相关的驱动程序来确定正确的填写方式。 2.6.2 判断 HSYNC,VSYNC,VCLK, VDEN信号是否需要反转 在具体驱动编写时还要配置以上几个信号是否需要反转并去设置相应的寄存器。判断的过程就是通过你SOC数据手册中介绍lcd的时序图另外还要再对比你屏厂的数据手册的时序图就可以判断出来 先看LCD控制器默认情况下送出来的TFT LCD屏的时序图 图2.3-exynos4412 lcd控制器输出时序 再来看屏厂的时序图 图2.4LCD屏时序图 从上两图对比可以看出实验用屏的VSYNC与HSYNC需要反转。 另个从屏厂还提供的信号周期表用来填写驱动的timing结构体 以上这两张图在下面具体讲lcd屏驱动时需要用到。 bppbits per pixel 像素深度表示一个像素的颜色状态需要用几位来表示 1位单色显示只有亮灭之分常见的如小店招牌 8位灰度显示此时能表示256种颜色这时候显示不了色彩但是有了黑白明暗的区别 16位一般是RGB565的颜色分布即16位色 24位RGB888的颜色分布称之为24位真彩 32位还是RGB888的颜色分布剩下的8位代表透明度故称之为ARGB是目前主流 3、实验环境介绍 开发板华清fs4412SoC : samsung exynos4412 arm-A9框架LCD7寸电容触摸tft-lcd屏分辨率1024 x 600驱动接口并行24位RGB接口 触摸屏I2C接口物理接口40P 间距0.5mm FPC连接器linux内核 3.14交叉编译环境arm-linux-gnueabi-FPC连接器定义 SoC侧gpio接口定义 这样所有的LCD屏与开发板相连接的引脚都能一一对应到SoC上的GPIO脚上了。 驱动框架FrameBuffer帧缓冲驱动框架 4、 exynos4412的LCD控制器相关知识点介绍 由于在linux3.14环境中在实际编写LCD驱动程序中不仅涉及到上面所介绍的相关lcd的控制原理也涉及到如何设置LCD控制寄存器的相关。以下是对exynos4412的数据手册《4412手册完整版SEC_Exynos 4412 SCP_Users Manual_Ver.0.10.00_Preliminary》摘录与翻译 4.1 显示控制器介绍 \qquad exynos4412的LCD驱动程序接口支持三种接口。它们是RGB接口、间接i80接口和用于写回的YUV接口。显示控制器使用多达五个覆盖图像窗口这些窗口支持各种颜色格式、256级alpha混合、颜色键、x-y位置控制、软滚动和可变窗口大小等。显示控制器支持各种颜色格式如RGB1到24BPP和YCbCr 4:4:4仅本地总线。 \qquad 您可以对显示控制器进行编程以支持屏幕上与水平和垂直像素数、数据接口的数据线宽、接口定时和刷新率相关的不同要求。 \qquad 显示控制器传输视频数据并生成必要的控制信号例如RGB_VSYNC、RGB_HSYNC、RGB VCLK、RGB_VDEN、SYS_CS0、SYS_CS1和SYS_WE。除了生成控制信号外显示控制器还包含视频数据的数据端口RGB_VD[23:0]和SYS_VD exynos4412可以支持红框中的三种接口形式。 控制器的相关特性 Maximum VCLK in RGB Interface 80MHz Video Clock Source: SCLK_FIMD0 for display controller (from CMU module) 4.2 时钟 Exynos 4412 SCP时钟生成电路特殊时钟- lcd模块时钟 4.3 RGB接口 4.3.1 RGB接口控制器 显示控制器由VSFR、VDMA、VPRCS、VTIME和视频时钟发生器组成。 要配置显示控制器VSFR具有 121个可编程寄存器组一个伽玛LUT寄存器组64个寄存器一个i80命令寄存器组12个寄存器五个 256 x 32个调色板存储器 VDMA是一种专用的显示DMA用于将帧存储器中的视频数据传输到VPRCS。通过使用这种特殊的DMA您可以在屏幕上显示视频数据而无需CPU干预。 VPRCS从VDMA接收视频数据并通过数据端口RGB_VD或SYS_VD将其发送到显示设备LCD在将视频数据更改为合适的数据格式后例如每像素8位模式8BPP模式或每像素16位模式16BPP模式。 VTIME由可编程逻辑组成以支持不同LCD驱动器中常见的接口时序和速率的可变要求。TIME块生成RGB_VSYNC、RGB_HSYNC、RGB_VCLK、RGB_VDEN、VEN_VSYNC、VEN_HSYNC、VEN_FIELD、VEN_HREF、SYS_CS0、SYS_CS1、SYS_WE等。 使用显示控制器数据可以通过设置LCDBLK_CFG寄存器0x1001_0210来选择上述数据路径之一。有关更多信息请参阅“Chapter 12, System Register Controller, for more information.P884”手册。 VTIME生成用于RGB接口的控制信号例如RGB_VSYNC、RGB_HSYNC、RGB VDEN和RGB_VCLK信号。在VSFR寄存器中配置VIDTCON0/1/2寄存器时可以使用这些控制信号。 您可以在VSFR中对显示控制寄存器的配置进行编程。然后VTIME模块生成支持不同类型显示设备的可编程控制信号。 RGB_VSYNC信号使LCD行指针从显示器顶部开始。HOZVAL字段和LINEVAL寄存器的配置控制RGB_VSYNC和RGB_HSYNC的脉冲生成。基于这些方程LCD面板的尺寸决定了HOZVAL和LINEVAL VIDCON0寄存器中的CLKVAL字段控制RGB_VCLK信号的速率。 CLKVAL的最小值为1。有公式 其中SCLK_FIMDxx01 计算帧速率的方程式为 4.3.2 RGB接口规范 RGB接口规范包括 信号LCD RGB接口时序并行输出串行8位输出输出配置结构 4.3.3 信号 4.3.4 LCD RGB接口时序 4.4 寄存器 LCD控制器的使用全部依赖对其提供的寄存器的设置。因此在开发lcd驱动程序时必须根据情况去设置寄存器才能使LCD正常工作。因此以下对LCD所使用的寄存器进行一一的介绍。 4.4.1 寄存器概况 LCD控制器直接操作的寄存器很多但主要有以下这些。其中的x指代0,1,2…等数值在使用时要注意区分。 可用于配置显示控制器的寄存器有 1.VIDCON0配置视频输出格式并显示启用/禁用。 2.VIDCON1指定RGB I/F控制信号。 3.VIDCON2指定输出数据格式控制。 4.VIDCON3指定图像增强控制。 5.I80IFCONx指定CPU接口控制信号。 6.VIDTCONx配置视频输出时序并确定显示器的大小。 7.WINCONx指定每个窗口功能设置。 8.VIDOSDxAVIDOSDxDB指定窗口位置设置。 9.VIDOSDxCD指定屏幕显示OSD大小设置。 10.VIDWxALPHA0/1指定alpha值设置。 11.BLENDEQx指定混合方程式设置。 12.VIDWxxADDx指定源映像地址设置。 13.WxKEYCONx指定颜色键设置寄存器。 14.WxKEYALPHA指定颜色键alpha值设置。 15.WINxMAP指定窗口颜色控制。 16.GAMMALUT_xx指定伽玛值设置。 17.COLORGAINCON指定颜色增益值设置。 18.HUExxx指定色调系数和偏移值设置。 19.WPALCON指定调色板控制寄存器。 20.WxRTQOSCON指定RTQoS控制寄存器。 21.WxPDATAxx指定每个索引的窗口选项板数据。 22.SHDOWCON指定卷影控制寄存器。 23.WxRTQOSCON指定QoS控制寄存器。 4.4.2 寄存器使用详述 这些详细说明的寄存器都是在LCD驱动中要用到的。 4.4.2.2 时钟寄存器 时钟寄存器是属于系统的时钟的部分其中涉及到LCD的部分时钟寄存器如下表基地址为0x1003_C000: 以下为必须要用到的寄存器的详细用法。 CLK_SRC_LCD0 P505 Base Address: 0x1003_0000 Address Base Address 0xC234, Reset Value 0x0000_1111 作用为LCD_BLK选择时钟源 CLK_SRC_MASK_LCD Base Address: 0x1003_0000 Address Base Address 0xC334, Reset Value 0x0000_1111 作用LCD BLK的时钟源掩码。如果希望使用外部时钟源来驱动LCD控制器可以设置CLK_SRC_MASK_LCD寄存器的相应位为1将其它位设置为0 CLK_DIV_LCD P530 Base Address: 0x1003_0000 Address Base Address 0xC534, Reset Value 0x0070_0000 作用设置LCD BLK的时钟分频比 CLK_GATE_IP_LCD (P556) Base Address: 0x1003_0000 Address Base Address 0xC934, Reset Value 0xFFFF_FFFF 作用控制LCD BLK的IP时钟门控。设置为1时表示使能LCD控制器的时钟设置为0时表示关闭LCD控制器的时钟。 4.4.2.3 系统寄存器 LCDBLK_CFG (P884) Base Address: 0x1001_0000 Address Base Address 0x0210, Reset Value 0x00F8_0000 寄存器lcdblk_cfg是Exynos4412芯片中与LCD控制器背光控制相关的寄存器。该寄存器用于配置和控制LCD控制器背光的工作方式和参数。 fimdbypass_lblk0: 用于配置背光控制是否绕过FIMDFramebuffer Interface Module Display模块。设置为1时表示绕过FIMD模块背光控制由外部电路或外部控制器进行设置为0时表示背光控制由FIMD模块进行。 LCDBLK_CFG2 P886 Base Address: 0x1001_0000 Address Base Address 0x0214, Reset Value 0x0000_0001 4.4.2.4 LCD控制寄存器 VIDCON0 P1838 Base Address 0x11C0_0000 Address Base Address 0x0000, Reset Value 0x0000_0000 VIDCON1 (P1839) Base Address 0x11C0_0000 Address Base Address 0x0004, Reset Value 0x0000_0000 VIDTCON0 (P1842) Base Address 0x11C0_0000 Address Base Address 0x0010, Reset Value 0x0000_0000 VIDTCON1 Base Address 0x11C0_0000 Address Base Address 0x0014, Reset Value 0x0000_0000 VIDTCON2 (P1843) Base Address 0x11C0_0000 Address Base Address 0x0018, Reset Value 0x0000_0000 VIDTCON3 (P1843) Base Address 0x11C0_0000 Address Base Address 0x001C, Reset Value 0x0000_0000 WINCON0 (P1844) Base Address 0x11C0_0000 Address Base Address 0x0020, Reset Value 0x0000_0000 SHADOWCON (P1859) Base Address 0x11C0_0000 Address Base Address 0x0034, Reset Value 0x0000_0000 WINCHMAP2 Base Address 0x11C0_0000 Address Base Address 0x003C, Reset Value 0x7D51_7D51 VIDOSD0A VIDOSD0B VIDOSD0CP1863 VIDOSD0A用于配置视频显示层0的位置和大小。通过设置该寄存器的位字段可以指定视频显示层0在屏幕上的位置和大小。
• VIDOSD0B用于配置视频显示层0的颜色控制。通过设置该寄存器的位字段可以调整视频显示层0的颜色属性例如亮度、对比度、饱和度等。
• VIDOSD0C用于配置视频显示层0的混合模式和透明度。通过设置该寄存器的位字段可以指定视频显示层0的混合模式例如覆盖、叠加等以及透明度。
这些寄存器的区别在于它们分别用于配置视频显示层的不同方面。VIDOSD0A用于配置位置和大小VIDOSD0B用于配置颜色控制VIDOSD0C用于配置混合模式和透明度。4.4.2.5 电源管理寄存器 9 LCD0_CONFIGURATION Base Address: 0x1002_0000 Address Base Address 0x3C80, Reset Value 0x0000_0007 作用配置LCD0的电源模式 5、结语 \qquad 到此有了以上的知识准备接下来就可以开始进行LCD驱动程序的开发了。在下一篇中我们将讲述linux3.14中的LCD驱动的FrameBuffer框架相关内容。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/85162.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

做音乐网站赚钱吗天元建设集团有限公司人力资源部电话

由于上半年实在太忙太忙,所以导致很久没更新公众号了,特意向各位长期关注的小伙伴表示歉意。今天分享的是DFT性质的应用。背景:DFT的对称性在解题中是非常常见的,很多同学,一看到“实序列”就感觉无从下手。然而它却是…

国家 住房城乡建设信用 网站免费网络推广软件有哪些

一、安装驱动 参考这篇文章进行安装Ubuntu安装Nvidia显卡驱动_Kevin__47的博客-CSDN博客 【出现问题】 禁用nouveau后出现黑屏,有几行代码,断线一直在闪 【解决方法】 1、参考这篇文章Ubuntu20.04安装nvidia显卡驱动并解决重启后黑屏问题_ubuntu安装…

晋江网站开发哈尔滨seo网站排名

数据库实验三 Sql多表查询和视图 一、Sql表二、在线练习 一、Sql表 www.db-book.com 二、在线练习 对所有表执行查询语句,查看有哪些数据。 select * from tableName; 一、执行以下查询语句,写出查询意图。 (1) select * from student,takes whe…

济南行知做网站哪个兄弟来个直接看的网站

常用命令linux下vi编辑器命令大全来源:考试大 【学而优则进,考试大以成!】 2007年8月14日  文本编辑器是所有计算机系统中最常用的一种工具。UNIX下的编辑器有ex,sed和vi等,其中,使用最为广泛的是vi,而vi…

北京网站备案速度网店运营在哪里学比较好些

时间:2019 年 级别:SCI 机构:南京信息工程大学 摘要 随着多媒体呈现技术、图像采集技术和互联网行业的发展,远程通信的方式已经从以前的书信、音频转变为现在的音频/视频。和 视频在工作、学习和娱乐中的比例不断提高&#xff0…

深圳鼎诚网站建设wordpress网站外包

关注我——个人公众号:后端技术漫谈我目前是一名后端开发工程师。主要关注后端开发,数据安全,网络爬虫,物联网,边缘计算等方向。原创博客主要内容Java知识点复习全手册Leetcode算法题解析剑指offer算法题解析SpringClo…

万网网站空间购买芜湖公司做网站

八、HttpMessageConverter HttpMessageConverter,报文信息转换器,将请求报文转换为Java对象,或将Java对象转换为响应报文 HttpMessageConverter提供了两个注解和两个类型:RequestBody,ResponseBody,Reque…

培训网站设计师网站设计公司哪家专业

基本介绍 Sentinel中的簇点链路是由一个个的Node组成的,Node是一个接口。Node中保存了对资源的实时数据的统计,Sentinel中的限流或者降级等功能就是通过Node中的数据进行判断的。 Sentinel中是这样描述Node的: Holds real-time statistics…

厦门网站制作开发收费工程承包

为源响应式对象上的某个属性创建一个 ref对象, 二者内部操作的是同一个数据值, 更新时二者是同步的 区别ref: 拷贝了一份新的数据值单独操作, 更新时相互不影响 应用: 当要将 某个prop 的 ref 传递给复合函数时&#xff0c;toRef 很有用 父组件代码: <template><…

网站三大要素是什么意思建设银行住房公积网站

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 C#在写一个实体类时&#xff0c;有属性的写法&#xff0c;省去了写getter和setter的麻烦。 在Java编程时&#xff0c;写完字段后&#x…

做网站如何安全 博客国外浏览器app下载

http://www.cnblogs.com/genhaosan/articles/5129791.html 转载于:https://www.cnblogs.com/wangc04/p/6400477.html

昆明app网站开发公司有些网站为什么会有弹窗

原标题&#xff1a;电气自动化自学宝典——看过人人都是工程师怎样快速成为一名电气自动化工程师呢&#xff1f; 对于一些对电气技术一无所知或略有一点基础的人来说&#xff0c;要想成为一名电气自动化工程师或达到相同的技术程度&#xff0c;有什么速成的方法吗&#xff1f;如…

网站公司建设个服务号多少钱无锡新吴区住房建设和交通局网站

文章目录 一、继承 组合 模式的类对象 构造函数和析构函数调用规则1、场景说明2、调用规则 二、完整代码示例分析1、代码分析2、代码示例 一、继承 组合 模式的类对象 构造函数和析构函数调用规则 1、场景说明 如果一个类 既 继承了 基类 ,又 在类中 维护了一个 其它类型 的…

网站建设页面图国家对网站建设有什么要求

摘自https://zhuanlan.zhihu.com/p/29874146 写在前面 当你老大扔给你这样的图&#xff0c;或者你需要完成某些功能而去看文档的时候发现以下类似这样的图会不会不&#xff08;一&#xff09;知&#xff08;脸&#xff09;所&#xff08;懵&#xff09;措&#xff08;逼&#x…

网站编程语言哪个好延安网站建设网络公司

当我们从网上copy一段代码后&#xff0c;总会出现这个问题。博主在Arduino环境中也出现了&#xff0c;so,这个问题应该是C语言和C编译器中才会出现的。 test_int:19: error: stray \343 in program 銆?銆? char string[25]; ^ test_int:19: error: stray \200 in progr…

网站建设应用权限wordpress怎么添加连接

目录 一、HTTP协议 1、跨网络的主机间通讯方式 套接字相关的系统调用 2、HTTP协议访问网站的过程 3、http协议状态码分类 常见的http协议状态码 4、MIME 5、URL组成 6、HTTP协议版本 7、系统处理http请求的工作模式 8、apache与nginx的区别 二、I/O模型 I/O模型相关…

营口网站建设开发制作可以自己画设计图的app

首发博客地址 https://blog.zysicyj.top/ 前面我们说过&#xff0c;redis采用了读写分离的方式实现高可靠。后面我们说了&#xff0c;为了防止主节点压力过大&#xff0c;优化成了主-从-从模式 思考一个问题&#xff0c;主节点此时挂了怎么办 这里主从模式下涉及到的几个问题&a…

站长网站后台浙江1万家企业

MNN是一个轻量级的深度学习推理框架&#xff0c;由阿里巴巴公司开发。它支持多种硬件平台&#xff0c;包括CPU、GPU和NPU&#xff0c;并提供高效、高性能的深度学习模型推理服务。下面是MNN的安装和编译步骤&#xff1a; 下载MNN源代码 在MNN的GitHub页面&#xff08;https://g…

顺德网站建设公司有哪些南京口碑最好的装修公司

这一节笔记还是聚合查询&#xff0c;以下是本节目录&#xff1a;去重统计 cardinality基础统计 stats百分位 percentiles字符串统计 string_stats1、去重统计 cardinality去重统计&#xff0c;就是统计某个字段的值&#xff0c;去重后的数量。先导入如下数据&#xff1a;PUT /e…

农用地转建设用地结果查询网站磁力王

关于寻找目标R包&#xff0c;一般可以在官网利用关键词搜索即可获得相关信息&#xff0c;不过米老鼠在这里想给大家介绍一个特别的R包&#xff0c;它可以帮助你寻找你想要的理想R包。不过&#xff0c;在正式讲解&#xff0c;我想和大家提醒一下安装R包的注意事项&#xff1a; &…