TFTLCD显示
显示器简介
显示器属于计算机的I/O设备,即输入输出设备。它是一种将特定电子信息输出到屏幕上再反射到人眼的显示工具。常见的有CRT显示器、 液晶显示器、LED点阵显示器及OLED显示器。
液晶显示器
液晶显示器,简称LCD。LCD显示器具有功耗低、体积小、承载信息量大以及不伤眼的优点。
1、液晶
液晶是一种介于固体和液体之间的特殊物质,他是一种有机化合物,常态下呈现液态,到那时它的分子排列和固态晶体的排列方式一样的有规则,所以称为液晶。
如果给液晶施加电场,会改变分子排列,从而改变光线的传播方向,配合着偏振光片,他就具备了控制光线透过率的作用。
在配合着彩色滤光片就可以改变某种颜色的透光量。
通过这种结构和原理,可以做出红、绿、蓝,不同强度的输出光。
把着三种颜色放到一个显示单位,通过不同颜色的强弱可以配置更多的颜色。这样一个显示单位称为像素。
2、LED和OLED显示器
LED点阵彩色显示器的单个像素点内包含红绿蓝三色LED灯。通过控制红绿蓝颜色的强度进行混色,实现全彩颜色输出,多个像素点构成一个屏幕。由于每个像素点都是LED灯自发光的, 所以在户外白天也显示得非常清晰,但由于LED灯体积较大,导致屏幕的像素密度低,所以它一般只适合用于广场上的巨型显示器。
OLED显示和LED点阵彩色咸宁市器类似,但是它采用的是像素单元式有机发光二极管,所以像素密集度和普通LED点整显示高。
3、显示器的基本参数
- 像素
- 像素式组成图像的基本单元要素。
- 分辨率
- 行像素值 * 列像素值:表示屏幕的分辨率。
TFTLCD
1、TFTLCD技术概括
全称:薄膜晶体管液晶显示器(TFTLCD),因其具有全彩色、高亮度以及支持视频显示的特性,成为了现在显示的主导地位。从消费电子产品到工业设备,TFTLCD的应用范围十分广泛 。为了在基于微控制器的项目中有效地利用TFTLCD,深入理解其工作原理和接口方法至关重要。TFTLCD的普及得益于其成熟的制造工艺,这使得其成本,尤其是在较大尺寸方面,可能相对低于更新的技术,如OLED。随着TFTLCD技术的不断成熟,行业内的重点逐渐转向优化其与微控制器的接口技术,以满足各种特定应用的需求,这推动了多种接口标准的开发和完善。
2、TFTLCD工作原理
TFT-LCD是液晶显示器LCD的一种变体,它利用率薄膜晶体管技术(TFT)提高图像显示的质量,例如可寻址性和对比度。与传统的LCD相比较,TFTLCD属于有源矩阵LCD,每个像素由一道四个晶体管控制。液晶材料是LCD的核心,特性是在被施加电厂后,能够改变透光率。
TFT的作用是类似与开关,控制着施加到每个像素的电压。通过精准的控制每个像素的电压,可以产生各种颜色。
有源矩阵寻址技术使得TFTLCD想较于无缘矩阵来说,能够实现更高的分辨率和更快的响应速度。
3、TFTLCD的结构和结构
TFTLCD的基本结构:
- 背光单元:提供光源
- 偏光片:用于过滤光线
- 玻璃基板:上面由TFT薄膜晶体管
- 另外一个玻璃基板:由彩色滤光片(RGB)
- 液晶:核心元件,在两个玻璃基板中间
- 透明电极:例如,氧化铟锡(ITO),用于对液晶施加电场
- 触摸板:电阻式或者电容式,位于最外层。
TFTLCD的特点:
- 显示分辨率:320 * 480
- 接口使用:8080接口
- 自带触摸屏,作为输入
4、显示控制器的作用
显示控制器用于控制TFTLCD的运行。主要职责包括接收微控制器发送的命令和数据。为TFT面板生成必要的时序和控制信号。(HSYNC、VSYNC、时钟使能等),通过不断的向LCD发送像素数据以特定速率刷新显示,管理存储显示像素数据的帧缓冲,从内存获取数据,已执行显示相关的功能。
5、微控制器与TFTLCD的接口
- TFTLCD模块原理接口图
- TFTLCD采用16位并行方式和外部进行连接。
- 为什么不用8位数据线?
- 因为TFTLCD要显示的像素数据非常多,如果使用8位数据线进行传输,显示速率会很慢。
- 为什么不用8位数据线?
- TFTLCD使用8080并口接口方式
- 什么是8080并行接口?
- 8080并行接口是intel 8080微处理器相关的并行通信接口。
- 8080接口使用的信号线:
- CS:TFTLCD的片选信号
- WR:向TFTLCD写入数据
- RD:向TFTLCD读取数据
- D【0-15】:16位数据线
- RST:硬件复位TFTLCD
- RS:写数据还是写命令判断
- 什么是8080并行接口?
- TFTLCD的驱动芯片:ILI9341控制器(例子)
- 作用:
- 数据处理:接收主机发送的数据或者控制命令;保存接收数据到GRAM。
- GRAM是一个二维内存阵列,可以理解为二维数组。
- GRAM每一个地址对应一位像素。
- 信号生成:控制TFTLCD像素的点亮;通过时序信号。
- 电源管理:根据数据,生成电压。
- 数据处理:接收主机发送的数据或者控制命令;保存接收数据到GRAM。
- 自带显存,存储数据为RGB565格式的像素数据。
- ILI9341的18根数据线与MPU的16为数据线,以及GRAM的对饮关系
- 作用:
6、TFTLCD的重要命令
写命令和写数据共用0-15的16根数据线,但是ILI9341的命令是8位,所以高8位无效。
命令:0XD3
- 作用:读取ILI9341的ID信息。
- 返回:4个字节数据,包含驱动芯片ID
- 用途:
- 验证是否为ILI9341驱动芯片
- 验证是否正常通信
命令:OX36
作用:设置内存访问控制参数。
用途:
- 调整图像显示的方向
- 设置扫描顺序
写入参数:(8位i)
bit7:MY:行地址顺序
0:从上到下写入GRAM(默认)。
1:从下到上写入GRAM。
bit6:MX:列地址顺序
0:从左到右写入GRAM(默认)。
1:从右到左写入GRAM。
bit5:MV:行/列交换
0:正常模式(行和列不交换)。
1:行和列交换(实现90°或270°旋转)。
bit4:ML:垂直刷新顺序
0:从上到下刷新显示。
1:从下到上刷新显示。
bit3:BGR:RGB-BGR顺序
- 0:RGB颜色顺序(默认)。
- 1:BGR颜色顺序(红蓝通道交换)。
bit2:MH:水平书信顺序
0:从左到右刷新显示。
1:从右到左刷新显示。
bit0-1:未使用
命令:0x2A
- 作用:设置GRAM的列地址范围,定义显示窗口的左右边界
- 写入参数:4字节
- 列起始地址SC
- 列结束地址EC
命令:0x2B
- 作用:设置页地址方位,定义显示窗口的上下边界
- 写入参数:4字节
- 行起始地址SP
- 行结束地址EP
命令:0x2C
- 作用:写入GRAM指令。
- 支持连续写入。
- GRAM的地址递增方式按照,MY、MX、MV设置的扫描方向递增。
命令:0x2E
- 作用:读取GRAM数据。
- 过程:
- ILI9341接收到0x2E命令。
- 第一次输出两个字节的无效数据。
- 第二次输出的两个字节的数据(从坐标SC,SP开始)
- 每个颜色分量占 8 个位,一次输出 2 个颜色分量。比如:第一次 输出是 R1G1,随后的规律为:B1R2→G2B2→R3G3→B3R4→G4B4→R5G5… 以此类推。如果 我们只需要读取一个点的颜色值,那么只需要接收到参数 3 即可,如果要连续读取(利用 GRAM 地址自增,方法同上),那么就按照上述规律去接收颜色数据。
使用流程
FSMC
FSMC的基础相关知识点在SRAM的文章内容内。这里只讲FSMC与TFTLCD相关的知识点。
- 为什么可以把TFTLCD当成外部SRAM使用?
- 外部SRAM有:19条地址线、16条数据线、写信号WE、读信号OE、片选信号CS,UB/LB字节控制信号线。
- TFTLCD有:RS(写数据还是写命令)、16条数据线、WR写信号、RD读信号、RST硬件复位、CS片选,BL高8位掩码。
- 控制TFTLCD只用到了RS、D0-15、WR、RD、CS。和操作SRAM大致相同,除了多了一个RS,没有地址信号线。
- RS的功能:决定传输的是数据还是命令。所以这里使用了一根地址线来连接。实现这个功能。由主机发送0时,就是告诉TFTLCD现在发送发是命令。反之则是数据。
- 在STM32F4系列中,FSMC管理着1GB的空间,用于4个存储块,每个存储块256M字节(2^28),由28根地址线来寻址。
- 本次我们使用的是Bank1.每个bank中又分了4个区,每个区为64M字节(2^26).由26根地址线来寻址。
- 少的两个地址线的作用:用来片选是哪个区的。
- 在表中:HADDR【25:0】的对应关系。
- 当 Bank1 接的是 16 位宽度存储器的时候:HADDR[25:1]→ FSMC_A[24:0]。
- 当 Bank1 接的是 8 位宽度存储器的时候:HADDR[25:0]→ FSMC_A[25:0]。
- 解释:为什么16位宽时是那样的对应?
- 在CPU通过AHB总线发送HADDR,指向一个8位的字节地址。
- 而外部存储器则是选择的16位宽度,每位地址对应着一个16位存储空间。
- 一个16位的字在外部存储单元中,占用一个存储单元。所以FSMC_A[24:0]25根地址线,大概32M字节(2^25).
但是在CPU内部字节地址空间中,则占用2个连续的字节地址存储单元。 - 最低为HADDR【0】的作用:当设置为8位宽度,需要HADDR【0】这个位来判断发送的是高8位、低8位。但是设置为16位宽度时,一次就发送了16位,所以不用判断。
- 在表中:HADDR【25:0】的对应关系。