STM32
登录
直播中
王辉
7年用户
1281经验值
私信
关注
[问答]
TFTLCD液晶显示器的驱动原理与驱动流程是怎样的
开启该帖子的消息推送
TFTLCD
液晶显示器
驱动
TFTLCD是什么意思?
TFTLCD液晶显示器的驱动原理与驱动流程是怎样的?
回帖
(1)
庄蒙少
2021-12-15 14:34:11
STM32学习——TFTLCD原理
一.TFTLCD 简介
TFT-LCD 即薄膜晶体管液晶显示器(Thin Film Transistor-Liquid Crystal Display)
TFT-LCD 与无源 TN-LCD、STN-LCD 的简单矩阵不同,它在液晶显示屏的每一个象 素上都设置有一个薄膜晶体管(TFT),可有效地克服非选通时的串扰,使显示液晶屏的静态特 性与扫描线数无关,因此大大提高了图像质量。TFT-LCD 也被叫做真彩液晶显示器。
TFTLCD特点:亮度好、对比度高、层次感强、颜色鲜艳,是目前最主流的LCD显示器。广泛应用于电视、手机、电脑、平板等各种电子产品。
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位并口驱动
这里我们介绍的是ALINETEK 2.8寸 TFTLCD。
二.ALINETEK 2.8寸 TFTLCD模块原理图介绍
1.ALINETEK 2.8寸 TFTLCD实物图
240*320分辨率
16位真彩显示(65536色)
自带电阻触摸屏
自带背光威廉希尔官方网站
注意:模块是3.3V供电的,不支持5V电压的MCU,如果是5V MCU,必须在信号线串接120R电阻使用。
2.ALINETEK 2.8寸 TFTLCD原理图:
(对应上图序号1,2,3):
3.ALINETEK 2.8寸 TFTLCD接口说明(16位80并口):
注意:DB1~DB8,DB10~DB17,总是按顺序连接MCU的D0~D15
三.ALINETEK 2.8寸 TFTLCD 16位80并口驱动简介
首先我们介绍一下模块的 8080 并行接口,8080 并行接口的发明者是 INTEL,该总线也被 广泛应用于各类液晶显示器,ALIENTEK OLED 模块也提供了这种接口,使得 MCU 可以快速 的访问 OLED。
模块的8080并口读/写的过程为:
先根据要写入/读取的数据的类型,设置RS为高(数据)/低(命令),然后拉低片选,选中ILI9341,接着我们根据是读数据,还是要写数据置RD/WR为低,然后:
1.读数据:在RD的上升沿, 读取数据线上的数据(D[15:0]);
2.写数据:在WR的上升沿,使数据写入到ILI9341里面
另外,在 8080 方式下读数据操作的时候,我们有时候(例如读显存的时候)需要一个假读命 (Dummy Read),以使得微控制器的操作频率和显存的操作频率相匹配。在读取真正的数据之 前,由一个的假读的过程。这里的假读,其实就是第一个读到的字节丢弃不要,从第二个开始, 才是我们真正要读的数据。
一个典型的读显存的时序图,
可以看到,在发送了列地址之后,开始读数据,第一个是 Dummy Read,也就是假读,我 们从第二个开始,才算是真正有效的数据。
四.TFTLCD驱动流程
任何 LCD,使用流程都可以简单的用以上流程图表示。
硬复位
:方法一,将 TFTLCD 的 RST 同 STM32F1 的 RESET 连接在一起,只要按下开发板的 RESET 键, 就会对 LCD 进行硬复位。
方法二,将 TFTLCD 的 RST 同 STM32F1 的 GPIO连接在一起,先拉低,延迟100us,然后
再释放RST(拉高),完成复位。
初始化序列
:由厂商直接提供。
画点流程
:设置坐标—>写 GRAM 指令—>写入颜色数据,然后在 LCD 上 面,我们就可以看到对应的点显示我们写入的颜色。
读点流程
:设置坐标—>读 GRAM 指令 —>读取颜色数据,这样就可以获取到对应点的颜色数据。
五.TFTLCD驱动原理-指令简介
1.RGB565格式说明
模块对外接口采用16位并口,颜色深度为16位,格式为RGB565,关系如下图:
从图中可以看出,ILI9341 在 16 位模式下面,数据线有用的是:D17~ D13 和 D11~ D1,D0 和 D12 没有用到,实际上在我们 LCD 模块里面,ILI9341 的 D0 和 D12 压根就没有引出来,这 样,ILI9341 的 D17~ D13 和 D11~ D1 对应 MCU 的 D15~D0。
这样 MCU 的 16 位数据,最低 5 位代表蓝色,中间 6 位为绿色,最高 5 位为红色。数值越 大,表示该颜色越深.
2.ILI9341指令格式说明——0XD3
从上表可以看出,0XD3 指令后面跟了 4 个参数,最后 2 个参数,读出来是 0X93 和 0X41, 刚好是我们控制器 ILI9341 的数字部分,从而,通过该指令,即可判别所用的 LCD 驱动器是什 么型号,这样,我们的代码,就可以根据控制器的型号去执行对应驱动 IC 的初始化代码,从而 兼容不同驱动 IC 的屏,使得一个代码支持多款 LCD。
3.ILI9341指令格式说明——0X36
0X36(存储访问控制指令)
,可以控制 ILI9341 存储器的读写方向,简 单的说,就是在连续写 GRAM 的时候,可以控制 GRAM 指针的增长方向,从而控制显示方式 (读 GRAM 也是一样)。
从上表可以看出,0X36 指令后面,紧跟一个参数,这里我们主要关注:MY、MX、MV 这三个位,通过这三个位的设置,我们可以控制整个 ILI9341 的全部扫描方向。见下图:
4.ILI9341指令格式说明——0X2A
0X2A(列地址设置指令)
,在从左到右,从上到下的扫描方式(默认) 下面,该指令用于设置横坐标(x 坐标).
在默认扫描方式时,该指令用于设置 x 坐标,该指令带有 4 个参数,实际上是 2 个坐标值: SC 和 EC,即列地址的起始值和结束值,SC 必须小于等于 EC,且 0≤SC/EC≤239(LCD分辨率240*320)。一般在设 置 x 坐标的时候,我们只需要带 2 个参数即可,也就是设置 SC 即可,因为如果 EC 没有变化, 我们只需要设置一次即可(EC在初始化 ILI9341 的时候设置好了),从而提高速度。
5.ILI9341指令格式说明——0X2B
0X2B(页地址设置指令)
,在从左到右,从上到下的扫描方式 (默认)下面,该指令用于设置纵坐标(y 坐标)。
在默认扫描方式时,该指令用于设置 y 坐标,该指令带有 4 个参数,实际上是 2 个坐标值:SP 和 EP,即页地址的起始值和结束值,SP 必须小于等于 EP,且 0≤SP/EP≤319(LCD分辨率240*320)。一般在设置 y 坐标的时候,我们只需要带 2 个参数即可,也就是设置 SP 即可,因为如果 EP 没有变化,我 们只需要设置一次即可(EP在初始化 ILI9341 的时候设置好了),从而提高速度。
当要在LCD屏内开窗时,则需要使用到 SC,EC,SP , EP。
6.ILI9341指令格式说明——0X2C
0X2C(写 GRAM 指令)
,在发送该指令之后,我们便可以往 LCD 的 GRAM 里面写入颜色数据,该指令支持连续写。
从上表可知,在收到指令 0X2C 之后,数据有效位宽变为 16 位,我们可以连续写入 LCD GRAM 值,而 GRAM 的地址将根据 MY/MX/MV 设置的扫描方向进行自增。
例如:假设设置 的是从左到右,从上到下的扫描方式,那么设置好起始坐标(通过 SC,SP 设置)后,每写入 一个颜色值,GRAM 地址将会自动自增 1(SC++),如果碰到 EC,则回到 SC,同时 SP++,一 直到坐标:EC,EP 结束,其间无需再次设置的坐标,从而大大提高写入速度。
特别注意: ILI9341 所有的指令都是 8 位的(高 8 位无效),且参数 除了读写 GRAM 的时候是 16 位,其他操作参数,都是 8 位的。
7.ILI9341指令格式说明——0X2E
0X2E(读 GRAM 指令)
,用于读取 ILI9341 的显存(GRAM),注意该指令在 ILI9341 的数据手册上面的描述是有误的。
该指令用于读取 GRAM,如表 ,ILI9341 在收到该指令后,第一次输出的是 dummy 数据,也就是无效的数据,第二次开始,读取到的才是有效的 GRAM 数据(从坐标: SC,SP 开始),输出规律为:每个颜色分量占 8 个位,一次输出 2 个颜色分量。
比如:第一次输出是 R1G1,随后的规律为:B1R2—>G2B2—>R3G3—>B3R4—>G4B4—>R5G5… 以此类推。
如果 我们只需要读取一个点的颜色值,那么只需要接收到参数 3 即可,如果要连续读取(利用 GRAM地址自增,方法同上),那么就按照上述规律去接收颜色数据。
STM32学习——TFTLCD原理
一.TFTLCD 简介
TFT-LCD 即薄膜晶体管液晶显示器(Thin Film Transistor-Liquid Crystal Display)
TFT-LCD 与无源 TN-LCD、STN-LCD 的简单矩阵不同,它在液晶显示屏的每一个象 素上都设置有一个薄膜晶体管(TFT),可有效地克服非选通时的串扰,使显示液晶屏的静态特 性与扫描线数无关,因此大大提高了图像质量。TFT-LCD 也被叫做真彩液晶显示器。
TFTLCD特点:亮度好、对比度高、层次感强、颜色鲜艳,是目前最主流的LCD显示器。广泛应用于电视、手机、电脑、平板等各种电子产品。
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位并口驱动
这里我们介绍的是ALINETEK 2.8寸 TFTLCD。
二.ALINETEK 2.8寸 TFTLCD模块原理图介绍
1.ALINETEK 2.8寸 TFTLCD实物图
240*320分辨率
16位真彩显示(65536色)
自带电阻触摸屏
自带背光威廉希尔官方网站
注意:模块是3.3V供电的,不支持5V电压的MCU,如果是5V MCU,必须在信号线串接120R电阻使用。
2.ALINETEK 2.8寸 TFTLCD原理图:
(对应上图序号1,2,3):
3.ALINETEK 2.8寸 TFTLCD接口说明(16位80并口):
注意:DB1~DB8,DB10~DB17,总是按顺序连接MCU的D0~D15
三.ALINETEK 2.8寸 TFTLCD 16位80并口驱动简介
首先我们介绍一下模块的 8080 并行接口,8080 并行接口的发明者是 INTEL,该总线也被 广泛应用于各类液晶显示器,ALIENTEK OLED 模块也提供了这种接口,使得 MCU 可以快速 的访问 OLED。
模块的8080并口读/写的过程为:
先根据要写入/读取的数据的类型,设置RS为高(数据)/低(命令),然后拉低片选,选中ILI9341,接着我们根据是读数据,还是要写数据置RD/WR为低,然后:
1.读数据:在RD的上升沿, 读取数据线上的数据(D[15:0]);
2.写数据:在WR的上升沿,使数据写入到ILI9341里面
另外,在 8080 方式下读数据操作的时候,我们有时候(例如读显存的时候)需要一个假读命 (Dummy Read),以使得微控制器的操作频率和显存的操作频率相匹配。在读取真正的数据之 前,由一个的假读的过程。这里的假读,其实就是第一个读到的字节丢弃不要,从第二个开始, 才是我们真正要读的数据。
一个典型的读显存的时序图,
可以看到,在发送了列地址之后,开始读数据,第一个是 Dummy Read,也就是假读,我 们从第二个开始,才算是真正有效的数据。
四.TFTLCD驱动流程
任何 LCD,使用流程都可以简单的用以上流程图表示。
硬复位
:方法一,将 TFTLCD 的 RST 同 STM32F1 的 RESET 连接在一起,只要按下开发板的 RESET 键, 就会对 LCD 进行硬复位。
方法二,将 TFTLCD 的 RST 同 STM32F1 的 GPIO连接在一起,先拉低,延迟100us,然后
再释放RST(拉高),完成复位。
初始化序列
:由厂商直接提供。
画点流程
:设置坐标—>写 GRAM 指令—>写入颜色数据,然后在 LCD 上 面,我们就可以看到对应的点显示我们写入的颜色。
读点流程
:设置坐标—>读 GRAM 指令 —>读取颜色数据,这样就可以获取到对应点的颜色数据。
五.TFTLCD驱动原理-指令简介
1.RGB565格式说明
模块对外接口采用16位并口,颜色深度为16位,格式为RGB565,关系如下图:
从图中可以看出,ILI9341 在 16 位模式下面,数据线有用的是:D17~ D13 和 D11~ D1,D0 和 D12 没有用到,实际上在我们 LCD 模块里面,ILI9341 的 D0 和 D12 压根就没有引出来,这 样,ILI9341 的 D17~ D13 和 D11~ D1 对应 MCU 的 D15~D0。
这样 MCU 的 16 位数据,最低 5 位代表蓝色,中间 6 位为绿色,最高 5 位为红色。数值越 大,表示该颜色越深.
2.ILI9341指令格式说明——0XD3
从上表可以看出,0XD3 指令后面跟了 4 个参数,最后 2 个参数,读出来是 0X93 和 0X41, 刚好是我们控制器 ILI9341 的数字部分,从而,通过该指令,即可判别所用的 LCD 驱动器是什 么型号,这样,我们的代码,就可以根据控制器的型号去执行对应驱动 IC 的初始化代码,从而 兼容不同驱动 IC 的屏,使得一个代码支持多款 LCD。
3.ILI9341指令格式说明——0X36
0X36(存储访问控制指令)
,可以控制 ILI9341 存储器的读写方向,简 单的说,就是在连续写 GRAM 的时候,可以控制 GRAM 指针的增长方向,从而控制显示方式 (读 GRAM 也是一样)。
从上表可以看出,0X36 指令后面,紧跟一个参数,这里我们主要关注:MY、MX、MV 这三个位,通过这三个位的设置,我们可以控制整个 ILI9341 的全部扫描方向。见下图:
4.ILI9341指令格式说明——0X2A
0X2A(列地址设置指令)
,在从左到右,从上到下的扫描方式(默认) 下面,该指令用于设置横坐标(x 坐标).
在默认扫描方式时,该指令用于设置 x 坐标,该指令带有 4 个参数,实际上是 2 个坐标值: SC 和 EC,即列地址的起始值和结束值,SC 必须小于等于 EC,且 0≤SC/EC≤239(LCD分辨率240*320)。一般在设 置 x 坐标的时候,我们只需要带 2 个参数即可,也就是设置 SC 即可,因为如果 EC 没有变化, 我们只需要设置一次即可(EC在初始化 ILI9341 的时候设置好了),从而提高速度。
5.ILI9341指令格式说明——0X2B
0X2B(页地址设置指令)
,在从左到右,从上到下的扫描方式 (默认)下面,该指令用于设置纵坐标(y 坐标)。
在默认扫描方式时,该指令用于设置 y 坐标,该指令带有 4 个参数,实际上是 2 个坐标值:SP 和 EP,即页地址的起始值和结束值,SP 必须小于等于 EP,且 0≤SP/EP≤319(LCD分辨率240*320)。一般在设置 y 坐标的时候,我们只需要带 2 个参数即可,也就是设置 SP 即可,因为如果 EP 没有变化,我 们只需要设置一次即可(EP在初始化 ILI9341 的时候设置好了),从而提高速度。
当要在LCD屏内开窗时,则需要使用到 SC,EC,SP , EP。
6.ILI9341指令格式说明——0X2C
0X2C(写 GRAM 指令)
,在发送该指令之后,我们便可以往 LCD 的 GRAM 里面写入颜色数据,该指令支持连续写。
从上表可知,在收到指令 0X2C 之后,数据有效位宽变为 16 位,我们可以连续写入 LCD GRAM 值,而 GRAM 的地址将根据 MY/MX/MV 设置的扫描方向进行自增。
例如:假设设置 的是从左到右,从上到下的扫描方式,那么设置好起始坐标(通过 SC,SP 设置)后,每写入 一个颜色值,GRAM 地址将会自动自增 1(SC++),如果碰到 EC,则回到 SC,同时 SP++,一 直到坐标:EC,EP 结束,其间无需再次设置的坐标,从而大大提高写入速度。
特别注意: ILI9341 所有的指令都是 8 位的(高 8 位无效),且参数 除了读写 GRAM 的时候是 16 位,其他操作参数,都是 8 位的。
7.ILI9341指令格式说明——0X2E
0X2E(读 GRAM 指令)
,用于读取 ILI9341 的显存(GRAM),注意该指令在 ILI9341 的数据手册上面的描述是有误的。
该指令用于读取 GRAM,如表 ,ILI9341 在收到该指令后,第一次输出的是 dummy 数据,也就是无效的数据,第二次开始,读取到的才是有效的 GRAM 数据(从坐标: SC,SP 开始),输出规律为:每个颜色分量占 8 个位,一次输出 2 个颜色分量。
比如:第一次输出是 R1G1,随后的规律为:B1R2—>G2B2—>R3G3—>B3R4—>G4B4—>R5G5… 以此类推。
如果 我们只需要读取一个点的颜色值,那么只需要接收到参数 3 即可,如果要连续读取(利用 GRAM地址自增,方法同上),那么就按照上述规律去接收颜色数据。
举报
更多回帖
rotate(-90deg);
回复
相关问答
TFTLCD
液晶显示器
驱动
液晶显示器
件的原理是什么?
2019-10-08
1927
怎样
去设计一种LCM12832ZK中文
液晶显示器
?
2021-06-04
1375
如何设计
液晶显示
控制
器
?
2019-11-11
2836
怎么利用FPGA和Verilog设计
液晶显示
控制
器
?
2019-08-16
1532
如何利用FPGA实现
液晶显示器
驱动
IP核?
2021-04-08
942
车用
液晶显示器
有哪些开发技巧?
2021-05-11
1749
请问
怎样
去设计Framebuffer
驱动
程序?
2021-04-27
1012
怎样
将graph出来的波形图
显示
在
液晶显示器
上?
2019-06-25
1578
液晶显示器
控制课程设计
2015-12-07
3141
笔段式
液晶显示器
问题
2018-08-08
2748
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
英国威廉希尔公司网站
william hill官网 版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分