TFTLCD原理与驱动与指令介绍

一,TFTLCD简介

TFTLCD : 薄膜晶体管液晶显示器

在液晶显示屏的每一个像素上都设置有一个薄膜晶体管(TFT)
克服非选通时的串扰,使显示液晶屏的静态特性与扫描线数无关,提高图像质量

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

二,ALINETEK 2.8寸 TFTLCD模块介绍

TFTLCD原理与驱动与指令介绍_第1张图片

240*320分辨率
16位真彩显示(65536色)
自带电阻触摸屏
自带背光电路

三,ALINETEK 2.8寸 TFTLCD模块原理图

TFTLCD原理与驱动与指令介绍_第2张图片

1,2.8寸LCD引脚

TFTLCD原理与驱动与指令介绍_第3张图片

2,TFTLCD 为对外接口,引出2*17排针

TFTLCD原理与驱动与指令介绍_第4张图片

3,电阻触摸屏驱动XPT2046

TFTLCD原理与驱动与指令介绍_第5张图片

4,触摸屏信号控制

TFTLCD原理与驱动与指令介绍_第6张图片

TFT2.8 12-15引脚 X+ Y+ X- Y- 为电阻触摸屏信号,连接到XPT2046,再由TFTLCD引出

5,LCD的兼容处理

TFTLCD原理与驱动与指令介绍_第7张图片

IM0:兼容不同LCD的兼容处理,由于2.8寸屏不支持8或16位设置,所以此处R1,R2未焊接
LEDA为LCD背光控制,背光电压可以选择3.3V或来自BL_VDD
BL_VDD来自TFTLCD的BL_VDD,可不接,开发板上接5V
此处R3焊接,R4未焊接,所以BL_VDD无用,LEDA=3.3V

6,LCD背光控制电路

TFTLCD原理与驱动与指令介绍_第8张图片

通过TFTLCD的BL_CTR引脚,控制S8050三极管,从而控制背光是否点亮,R6-R9为限流电阻

三,ALINETEK 2.8寸 TFTLCD对外接口说明(16位80并口)

TFTLCD原理与驱动与指令介绍_第9张图片

LCD_CS:LCD片选信号
LCD_WR:LCD写信号
LCD_RD:LCD读信号
DB[17:1]:16位双向数据线。
LCD_RST:硬复位LCD信号
LCD_RS:命令/数据标志 (0:命令,1:数据)
BL_CTR:背光控制信号
T_MISO/T_MOSI/T_PEN/T_CS/T_CLK,触摸屏接口信号

注意:DB1~DB8,DB10~DB17,共16引脚,总是按顺序连接MCU的D0~D15

如果我们只是要点亮LCD,不使用触摸屏可不接相关引脚(29-34)

四,ALINETEK 2.8寸 TFTLCD 16位80并口驱动

模块的8080并口读/写的过程为:

1,先根据要写入/读取的数据的类型,设置RS为高(数据)/低(命令)
2,拉低片选CS,选中ILI9341
3,根据读/写数据,将置RD/WR置低

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

TFTLCD原理与驱动与指令介绍_第10张图片

4-2.写数据:在WR的上升沿,使数据写入到ILI9341里面

TFTLCD原理与驱动与指令介绍_第11张图片

五,ILI9341驱动的几个重点时序

TFTLCD原理与驱动与指令介绍_第12张图片

1,读ID低电平脉宽(trdl)     ID指LCD的ID号
trdl低电平最小持续时间需要45ns

2,读ID高电平脉宽(trdh)
trdl低电平最小持续时间需要90ns

读ID时序

3,读FM低电平脉宽(trdlfm)     FM指帧缓存,即:GRAM
读取FM低电平脉宽最小持续时间trdlfm需要355ns

4,读FM高电平脉宽(trdhfm)
读取FM高电平脉宽最小持续时间trdlfm需要90ns

结论:
    读FM低电平时速度比较慢,高电平和读ID相同都是90ns

5,写控制低电平脉宽(twrl)
写LCD低电平最小持续时间15ns

6,写控制高电平脉宽(twrh)
写LCD高电平最小持续时间15ns

结论:
    写LCD速度较快

4个读时序(主要用于配置FSMC的读时序)和2个写时序(主要用于配置FSMC的写时序)

如果开发板没有FSMC,可以使用IO模拟的方式实现,此时不需要关注时序,因为一定会大于最小时间

六,TFTLCD驱动流程

TFTLCD原理与驱动与指令介绍_第13张图片

硬复位:
    1,连接到MCU复位引脚,随MCU一起复位
    2,连接到MCU的IO引脚,先拉低,延迟,再拉高实现复位
初始化序列:
    由LCD厂家提供,不同厂家不同型号都不相同
写GRAM:
    0X2C指令,详见后续
读GRAM:
    0X2E指令,详见后续

七,TFTLCD驱动原理-指令

1,RGB565

模块对外接口采用16位并口,颜色深度为16位,格式为RGB565

RGB565

2,ILI9341指令

指令格式:
    ILI9341所有的指令都是8位(高8位无效)
    参数除了读写GRAM的时候是16位,其他操作参数也都是8位的

重要指令

1,0XD3-读ID4指令

读取LCD控制器ID,可根据ID执行不同的LCD驱动初始化,实现多屏幕兼容

TFTLCD原理与驱动与指令介绍_第14张图片

1,RS=0命令,RD=1为写入,在WR上升沿写入指令0xD3,高8位无效
2,RS=1数据,WR=1为读取,在RD上升沿读取参数1,为无效参数
3,RS=1数据,WR=1为读取,在RD上升沿读取参数2,为00H
4,RS=1数据,WR=1为读取,在RD上升沿读取参数3,为93H
5,RS=1数据,WR=1为读取,在RD上升沿读取参数4,为41H

结论:由参数3和参数4,组成LCD控制器ID-9341,确定执行9341的驱动代码

2,0X36-储存访问控制指令

可以控制ILI9341控制器的读写方向,即GRAM指针自增方向,从而控制显示

0X36-储存访问控制指令

1,RS=0命令,RD=1为写入,在WR上升沿写入指令0x36,高8位无效
2,RS=1数据,RD=1为写入,在WR上升沿写入参数数据,高8位无效

参数D5-D7位,控制GRAM自增方向,配置如下:

TFTLCD原理与驱动与指令介绍_第15张图片

3,0X2A-列地址(X轴)设置指令

用于设置横坐标,默认从左到右,从上到下,由0x36指令设置储存访问控制

TFTLCD原理与驱动与指令介绍_第16张图片

发送一个指令0X2A+四个参数确定两个坐标分别是SC和EC
SC和EC是列地址的起始值和结束值,所以SC必须小于EC
LCD分辨率是240*320,所以SC/EC不能大于240(0-239)

一般设置X坐标值,EC无变化(初始化已设置),只需设置SC(参数1和参数2)即可

4,0X2B-页地址(Y轴)设置指令

用于设置纵坐标,默认从左到右,从上到下,由0x36指令设置储存访问控制

TFTLCD原理与驱动与指令介绍_第17张图片

与列地址设置指令相似:
    发送一个指令0X2B+四个参数确定两个坐标分别是SP和EP
    SP和EP是页地址的起始值和结束值,所以SP必须小于EP
    LCD分辨率是240*320,所以SC/EC不能大于320(0-319)

一般设置Y坐标值,EP无变化(初始化已设置),只需设置SP(参数1和参数2)即可

应用:使用0X2A和0X2B指令可以在LCD屏进行开窗

5,0X2C指令-写GRAM指令

发送该指令后可向LCD-GRAM写入颜色数据,支持连续写入,地址自增,由0x36指令设置储存访问控制

TFTLCD原理与驱动与指令介绍_第18张图片

1,RS=0命令,RD=1为写入,在WR上升沿写入指令0x2C,高8位无效,随后可以写入颜色数据
2,RS=1数据,WD=1为写入,在WR上升沿可连续写入n个颜色参数,参数长度为16为即RGB565

6,0X2E指令-读GRAM指令

用于读取ILI9341的显存GRAM,支持连续读取,地址自增,由0x36指令设置储存访问控制

TFTLCD原理与驱动与指令介绍_第19张图片

1,RS=0命令,RD=1为写入,在WR上升沿写入指令0x2E,高8位无效,随后可以读取颜色数据
2,ILI9341收到0x2E指令后,第一次输出为dummy,即无效参数,从第二次开始为有效GRAM数据
3,RS=1数据,WR=1为读取,在RD上升沿可连续读取n个颜色参数,参数长度为16为即RGB565

如图所示,输出规律:
如:第一次输出R1G1,第二次输出B1R2->G2B2->R3G3->B3R4...

修改记录:
20161210-勘误-修改错别字,及部分逻辑

你可能感兴趣的:(STM32,STM32学习笔记)