25_TFTLCD原理与指令

本文详细介绍了TFTLCD模块,包括ALIENTEK的4.3寸TFTLCD的特点和硬件连接,强调其高分辨率、快速刷新率及电容触摸屏。内容涵盖TFTLCD的驱动流程,RGB565颜色格式,以及一系列LCD控制指令,如读ID、存储访问、列地址、页地址设置和GRAM读写等,旨在帮助开发者更好地理解和应用TFTLCD模块。
摘要由CSDN通过智能技术生成

目录

TFTLCD简介 

ALINETEK TFTLCD模块介绍

ATK-4.3寸TFTLCD模块特点:

ATK-4.3寸TFTLCD模块硬件连接图

TFTLCD驱动流程

RGB565格式说明

LCD读ID指令(0XDA00、0XDB00 和 0XDC00)

存储访问控制指令0x3600

列地址设置指令0X2A00~0X2A03

页地址设置指令0X2B00~0X2B03

写 GRAM 指令0X2C00

读 GRAM 指令0X2E00


TFTLCD简介 

TFTLCD即薄膜晶体管液晶显示器。它与无源TNLCD, STN-LCD的简单矩阵不同,它在液晶显示屏的每一个象素上都设置有一个薄膜晶体管(TFT),可有效地克服非选通时的串扰,使显示液晶屏的静态特性与扫描线数无关,因此大大提高了图像质量。

TFTLCD具有:亮度好、对比度高、层次感强、颜色鲜艳等特点。是目前最主流的LCD显示器。广泛应用于电视、手机、电脑、平板等各种电子产品。

ALINETEK TFTLCD模块介绍

ALIENTEK提供丰富的TFTLCD模块型号,供大家选择,目前有以下型号可选:

1, ATK-2.8寸 TFTLCD模块分辨率:240*320,驱动IC: ILI9341,电阻触摸屏,16位并口驱动

2, ATK-3. 5寸 TFTLCD模块分辨率: 320*480,驱动IC: NT35310,电阻触摸屏,16位并口驱动

3, ATK-4.3寸TFTLCD模块分辨率: 480*800,驱动IC: NT35510,电容触摸屏, 16位并口驱动

4, ATK-7寸 TFTLCD模块(V1版本)分辨率: 480*800,驱动IC: CPLD+SDRAM,电容触摸屏,16位并口驱动

5, ATK-7寸TFTLCD模块(V2版本)分辨率: 480*800,驱动IC: SSD1963,电容触摸屏,8/9/12/16位并口驱动

ATK-4.3寸TFTLCD模块特点:

高分辨率: 800*480,显示更清晰细腻;

自带驱动,无需外加驱动器,单片机直接使用;

速度超快,理论上最高刷屏速度可达78.9帧/秒;

采用电容触摸屏,最大支持5点同时触摸,操控效果佳;

板载背光电路,只需要3.3V&5V供电即可,无需外加高压;

接口简单(LCD采用16位8080并口,触摸屏采用IIC接口),使用方便:

ATK-4.3寸TFTLCD模块硬件连接图

 

模块的8080并口读/写的过程为:先根据要写入/读取的数据的类型,设置RS为高(数据)/低(命令),然后拉低片选,选中屏幕,接着我们根据是读数据,还是要写数据置RD/WR为低,然后:

1.读数据:在RD的上升沿,读取数据线上的数据(D[15:0])

2写数据:在WR的上升沿,使数据写入到屏幕里面

 

从上表可以看出,模块的写周期是非常快的,只需要 33ns 即可,理论上最大速度可以

达到:3030W 像素每秒,即刷屏速度可以达到每秒钟 78.9 帧。模块的读取速度相对较慢:

ID(RD(ID))周期是160ns,读显存周期是 400ns(RD(FM))

TFTLCD驱动流程

1.先要对LCD硬件复位

2.初始化序列这是厂家提供的,不同的厂家有不同的初始化序列

3.如果要画点就是先设置坐标,然后写GRAM指令,写入颜色,LCD显示

4.如果要读点就是先设置坐标,然后读GRAM指令,读出颜色,单片机处理

RGB565格式说明

模块对外接口采用16位并口,颜色深度为16位,格式为RGB565,关系如下图:

16 位数据中,最低 5 位代表蓝色,中间 6 位为绿色,最高 5 位为红色。数值越 大,表示该颜色越深。另外,特别注意 NT35510 的指令是 16 位宽,数据除了 GRAM 读写 的时候是 16 位宽,其他都是 8 位宽的(高 8 位无效)。

LCD读ID指令(0XDA000XDB00 0XDC00)

这三条指令是读 ID1,ID2,ID3 指令,也就是用于读取 LCD 控制器的 ID

从上表可以看出,LCD ID,总共由3个指令(0XDA000XDB00 0XDC00)构成,每个指令输出一个参数,每个ID 8位数据(即指令后的参数)的形式输出(高 8 位固定为 0),不过这里输出的ID,并不包含 5510 这样的字样,仅有指令0XDB00会输出ID:0X80,其他两个指令读到的 ID 都是 0。3 个指令的输出,组合在一起,可以得到 NT35510ID为:0X8000。通过这个 ID,即可判别所用的LCD驱动器是什么型号,这样,我们的代码,就可以根据控制器的型号去执行对应驱动IC的初始化代码,从而兼容不同驱动IC的屏,使得一个代码支持多款 LCD

存储访问控制指令0x3600

这是存储访问控制指令,可以控制NT35510存储器的读写方向,简单的说,就是在连续写GRAM的时候,可以控制GRAM指针的增长方向,从而控制显示方式(读GRAM也是一样)

从上表可以看出,0X3600 指令后面,紧跟一个参数,这里我们主要关注:MYMX

MV 这三个位,通过这三个位的设置,我们可以控制整个NT35510的全部扫描方向。

这样,我们在利用NT35510显示内容的时候,就有很大灵活性了,如果设置 LCD 扫描方向为从左到右,从下到上,那么我们只需要设置一次坐标,然后就不停的往LCD填充颜色数据即可,这样可以大大提高显示速度。

列地址设置指令0X2A00~0X2A03

这几个是列地址设置指令,在从左到右,从上到下的扫描方式(默认)下面,该指令用于设置横坐标(x 坐标)

 

 页地址设置指令0X2B00~0X2B03

 在默认扫描方式时,这4个指令用于设置 y 坐标,每条指令带有1个参数,实际上总共就是2个坐标值:SP EP(SP EP都是16位的,由28位组成)即页地址的起始值和结束值,SP 必须小于等于 EP,0SP/EP799。一般在设置 y 坐标的时候,我们只需要带0X2B00 0X2B01 两条指令即可,也就是设置 SP 即可,因为如果EP没有变化,我们只需要设置一次即可(在初始化 NT35510 的时候设置),从而提高速度。

GRAM 指令0X2C00

该指令是写 GRAM 指令,在发送该指令之后,我们便可以往LCD的GRAM里面写入颜色数据了,该指令支持连续写。

从上表可知,在收到指令0X2C00之后,数据有效位宽变为16位,我们可以连续写入 LCD GRAM 值,而 GRAM 的地址将根据 MY/MX/MV 设置的扫描方向进行自增。例如:假设设置的是从左到右,从上到下的扫描方式,那么设置好起始坐标(通过SC,SP设置)后,每写入一个颜色值,GRAM地址将会自动自增 1(SC++),如果碰到EC,则回到SC,同时SP++,一直到坐标:EC,EP结束,其间无需再次设置的坐标,从而大大提高写入速度。

GRAM 指令0X2E00

该指令是读 GRAM 指令,用于读取NT35510的显存(GRAM)

 NT35510 在收到该指令后,第一次输出的是dummy 数据,也就是无效的数据,第二次开始,读取到的才是有效的 GRAM 数据(从坐标:SC,SP 开始)输出规律为:每个颜色分量占8个位,一次输出2个颜色分量。比如:第 一次输出是R1G1,随后的规律为B1R2G2B2R3G3B3R4G4B4R5G5... 以此类推。 如果我们只需要读取一个点的颜色值,那么只需要接收到参数 3 即可,如果要连续读取(利用GRAM地址自增,方法同上),那么就按照上述规律去接收颜色数据。R1G1B1代表同一个像素点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值