LCD液晶屏驱动详解(3)

news/2024/7/8 4:29:10

2.2、LCD控制寄存器LCDCON2

用于设置垂直方向各信号的时间参数,格式如下表所示:

功能说明
VBPD[31:24]VSYNC信号脉冲之后,还要经过(VBPD+1)个HSYNC信号周期,有效的行数据才出现;
LINEVAL[23:14]LCD的垂直宽度,(LINEVAL+1)行;
VFPD[13:6]一帧中的有效数据完结后,到下一个VSYNC信号有效前的无效行数目:VFPD+1行;
VSPW[5:0]表示VSYNC信号的脉冲宽度位(VSPW+1)个HSYNC信号周期,即(VSPW+1)行,这个(VSPW+1)行的数据是无效的;

image-20210718173636125

2.3、LCD控制寄存器LCDCON3

用于设置水平方向各信号的时间参数,格式如下表所示:

功能说明
HBPD[25:19]HSYNC信号脉冲之后,还要经过(HBPD+1)个VCLK信号周期,有效的像素数据才出现;
HOZVAL[18:8]LCD的水平宽度,(HOZVAL+1)类(像素);
HFPD[7:0]一行中的有效数据完结后,到下一个HSYNC信号有效前的无效像素个数,HFPD+1个像素;

image-20210718173756266

2.4、LCD控制寄存器LCDCON4

对于TFT-LCD,这个寄存器只用来设置HSYNC信号的脉冲宽度,位[7:0]的数值称为HSPW,表示脉冲宽度位(HSPW+1)个VCLK周期。

image-20210718173853207

2.5、LCD控制寄存器LCDCON5

用于设置各个控制信号的极性,并可从中读到一些状态信息,格式如下表所示:

功能说明
VSTATUS[16:15]只读,垂直状态;00:正处于VSYNC信号脉冲期间;01:正处于VSYNC信号结束到行有效之间;10:正处于有效行期间;11:正处于行有效结束到下一个VSYNC信号之间;
HSTATUS[14:13]只读,水平状态;00:正处于HSYNC信号脉冲期间;01:正处于HSYNC信号结束到像素有效之间;01:正处于像素有效期间;11:正处于像素有效结束到下一个HSYNC信号之间;
BPP24BL[12]设置TFT-LCD的显示模式为24BPP时,一个4字节中的哪3个字节有效,0:LSB有效,1:MSB有效(高地址的3个字节);
FRM565[11]设置TFT-LCD的显示模式为16BPP时,使用的数据格式,0表示5:5:5:1格式,1表示5:6:5格式;
INVVCLK[10]设置VCLK信号有效沿极性:0表示在VCLK的下降沿读取数据;1表示在VCLK的上升沿读取数据;
INVVLINE[9]设置VINE/HSYNC脉冲的极性;0表示正常极性,1表示反转的极性;
INVVFRAME[8]设置VFRAME/VSYNC脉冲的极性;0表示正常极性,1表示反转的极性;
INVVD[7]设置VD数据线表示数据的极性;0表示正常极性,1表示反转的极性;
INVVDEN[6]设置VDEN信号的极性;0表示正常进行,1表示反转的极性;
INVPWREN[5]设置PWREN信号的极性;0表示正常进行,1表示反转的极性;
INVLEND[4]设置LEND信号的极性;0表示正常进行,1表示反转的极性;
PWREN[3]LCD_PWREN信号输出使能;0表示禁止,1表示使能;
ENLEND[2]LEND信号输出使能;0表示禁止,1表示使能;
BSWP[1]字节交换使能;0表示禁止,1表示使能;
HWSWP[0]半字(2字节)交换使能,0表示禁止,1表示使能;

image-20210718174055348

2.6、帧内存地址寄存器LCDSDRR1~LCDSDRR3

帧内存可以很大,而真正要显示的区域被称为视口(view point),它处于帧内存之内,这个3个寄存器用于确定帧内存的起始地址,定位视口在帧内存中的位置。

下图给出了帧内存和视口的位置关系:

image-20210718174314355

下面分别介绍各个帧内存寄存器;

  • LCDSADRR1寄存器格式
功能说明
LCDBANK[29:21]用于保存帧内存起始地址A[30:22],帧内存起始地址必须为4MB对齐;
LCDBASEU[20:0]对于TFT-LCD,用于保存视口所对应的内存起始地址A[21:1],这块内存也被称为LCD的帧缓冲区(frame buffer);

image-20210718174852958

  • LCDSADRR2寄存器格式
功能说明
LCDBASEL[20:0]对于TFT-LCD,用来保存LCD的帧缓冲区结束地址A[21:1],其值可如下计算:LCDBASEL=LCDBASEU+(PAGEWIDTH+OFFSIZE)*(LINEVAL+1)

注意:可以修改LCDBASEU、LCDBASEL的值来实现图像的移动,不过不能在一帧图像的结束阶段进行修改;

image-20210718174924477

  • LCDSADRR3寄存器格式
功能说明
OFFSIZE[21:11]表示上一行最后一个数据与下一行第一个数据之间地址差值的半字节,即以半字位单位的地址差;0表示两行数据是紧接着的,1表示它们之间相差2个字节,以此类推;
PAGEWIDTH[10:0]视口的宽度,以半字位为单位;


http://lihuaxi.xjx100.cn/news/1985615.html

相关文章

MySQL数据库面试知识点

1、数据库基础: MySQL是一个开源的关系型数据库管理系统,用于存储、管理和检索数据。它支持多种存储引擎,包括InnoDB、MyISAM等。MySQL是由瑞典公司MySQL AB开发,后来被Sun Microsystems收购,最终被甲骨文公司(Oracle…

Java学习5--基础知识

JAVA 流程控制 用户交互scanner 顺序结构 选择结构 循环结构 break & continue 练习 用户交互scanner/Scanner 对象 java提供的工具,用来获取用户输入。 java.util.Scanner是Java5引入的特征,用的时候程序最顶上加引用源 import java.util.Sc…

Vue.js动画库

1、vue2-animate https://animate.style/ 地址:https://www.npmjs.com/package/vue2-animate一个可以在你的网站中即用型跨浏览器动画库,非常适合主页、滑块和动画引导提示。这是Animate.css 的一个端口,用于 Vue.js 2.0/3.0 和Alpines.js …

【系统DFX】如何诊断占用过多 CPU、内存、IO 等的神秘进程?

热门面试问题:如何诊断占用过多 CPU、内存、IO 等的神秘进程? 下图展示了 Linux 系统中有用的工具。 🔹’vmstat’ - 报告有关进程、内存、分页、块 IO、陷阱和 CPU 活动的信息。🔹’iostat’ - 报告系统的 CPU 和输入/输出统计信…

Redis应用(1)缓存(1.2)------Redis三种缓存问题

三者出现的根本原因是:Redis缓存命中率下降,请求直接打到DB上了。 一、 缓存穿透: 1、定义: 缓存穿透是指客户端请求的数据在缓存中和数据库中都不存在,这样缓存永远不会生效,这些请求都会打到数据库。…

github无法访问此网站,github.com 的响应时间过长。

问题 点击之前书签页中保存的去github搜集的项目连接,出现github无法访问此网站,github.com 的响应时间过长。 解决办法 1、打开浏览器,点击百度; 2、搜索hub.nuaa.cf; 3、点击第一项,如下所示&#xf…

学会使用ubuntu——ubuntu22.04使用WebCatlog

Ubuntu22.04使用WebCatlog WebCatlog是适用于Gnu / Linux,Windows或Mac OS X系统的桌面程序。 引擎基于铬,它用于在我们的桌面上处理Web服务。简单点就是把网页单独一个窗口出来显示,当一个app用。本文就是利用WebCatlog安装后的notion编写的…

aspose-cells-20.7.jar 去除水印及次数限制

1.使用 jd-gui.exe 反编译查看,直接搜索 License 1.修改 public static boolean isLicenseSet() {return (a ! null);}改成 public static boolean isLicenseSet() {return true;}2.修改 public void setLicense(InputStream stream) {Document document null;if (…