藏经阁(八)LCD控制器 ILI9341 解析

文章目录

    • TFT屏幕介绍
    • LCD控制器
    • ILI9341控制器内部框图
    • ILI9341时序详解
    • RGB565数据格式
    • 相关命令详解
      • 1、读芯片ID号 (0xD3)
      • 2、内存访问控制(0x36)
      • 3、横向窗口地址设置(2Ah)
      • 4、页地址设置(2Bh)
      • 5、写内存(2Ch)
    • 实战应用


TFT屏幕介绍

LCD(Liquid CrystalDisplay)的全称是液晶显示器,是现在用的比较多的手机屏幕材料,特点是价格便宜,使用普及广泛,在显示的时候需要有背光的支持。
LCD 拥有不同显示技术包括:TFT、 IPS、SLCD、UFB、SNT、NOVA等,常见的就有今天要介绍的TFT屏。
TFT屏,又称薄膜场效应管液晶屏。 液晶屏内每个像素点都是由薄膜晶体管来驱动,每个像素点相对独立,并可以连续控制,可以精准控制显示色阶层。


LCD控制器

LCD控制器就是驱动TFT-LCD显示器的关键,它可以将接收到的信号转换的信号转成TFT-LCD屏需要的信号。控制器一般都集成在TFT-LCD模组内。


ILI9341控制器内部框图

藏经阁(八)LCD控制器 ILI9341 解析_第1张图片
RESX: 复位信号线
CSX: 片选信号线
D/CX: 数据与命令信号线
WRX: 写使能信号
RDX: 读使能信号线
DB[17:0]: 数据总线,支持8/9/16/18位
GRAM用于存放屏幕数据


ILI9341时序详解

ILI9341写时序:
藏经阁(八)LCD控制器 ILI9341 解析_第2张图片
1、片选CSX拉低(选中芯片)
2、数据与命令信号线D/CX拉低(发送命令)
3、写使能信号WRX拉低(写使能)
4、发送写命令数据(主机发送给LCD)
5、数据与命令信号线D/CX拉高
6、写使能信号WRX拉低(写使能)
7、发送数据(主机发送给LCD)

ILI9341读时序:
藏经阁(八)LCD控制器 ILI9341 解析_第3张图片
1、片选CSX拉低(选中芯片)
2、数据与命令信号线D/CX拉低(发送命令)
3、写使能信号WRX拉低(写使能)
4、发送写命令数据(主机发送给LCD)
5、数据与命令信号线D/CX拉高
6、读使能信号RDX拉低(读使能)
7、读取数据(LCD发送给主机)注:读出的第一个数据无效,第二个数据开始才是有效数据


RGB565数据格式

RGB565指的是红绿蓝(RGB)三原色在D[15:0]16位数据中的位数分布。
16位数据描述像素点的三原色比例为R:G:B=5:6:5

数据传输宽度:16位
红色:D11 - D15
绿色:D5 - D10
蓝色:D0 - D4
任何颜色都可以用三原色进行组合生成。可以组成25*26*2^5种颜色。

举例:
显示纯红色:0b11111 000000 00000
显示纯绿色:0b00000 111111 00000
显示纯蓝色:0b00000 000000 11111
显示纯黑色:0b00000 000000 00000
显示纯白色:0b11111 111111 11111

程序中只要控制每个像素点的D[15:0]16位数据值就能控制TFT屏幕中的每个像素点颜色。


相关命令详解

1、读芯片ID号 (0xD3)

藏经阁(八)LCD控制器 ILI9341 解析_第4张图片
1、先发命令0xD3
2、连续获取获取4个16位数据(注:读到的第一个16bit数据是无效的)

2、内存访问控制(0x36)

在这里插入图片描述
1、先发命令0x36
2、发送数据

Bit 名字 描述
MY 横地址顺序 控制MUC读写内存的方向
MX 列地址顺序
MV 横/列地址交换
ML 垂直刷新顺序 LCD垂直刷新方向控制
BGR RGB-BGR顺序 颜色选择开关控制
(0=RGB滤色器面板;1=BGR滤色器面板)
MH 水平刷新顺序 LCD水平刷新方向控制

控制屏幕刷新顺序
藏经阁(八)LCD控制器 ILI9341 解析_第5张图片
藏经阁(八)LCD控制器 ILI9341 解析_第6张图片
藏经阁(八)LCD控制器 ILI9341 解析_第7张图片
藏经阁(八)LCD控制器 ILI9341 解析_第8张图片

3、横向窗口地址设置(2Ah)

此命令用于定义MCU可以访问的帧内存区域。
藏经阁(八)LCD控制器 ILI9341 解析_第9张图片
(1)先发命令0x2A
(2)发送窗口第一个横向坐标值的高8位 SC[15:8]
(3)发送窗口第一个横向坐标值的低8位 SC[7:0]
(4)发送窗口第二个横向坐标值的高8位 EC[15:8]
(5)发送窗口第二个横向坐标值的低8位 EC[7:0]

SC[15:0]和EC[15:0]定义
藏经阁(八)LCD控制器 ILI9341 解析_第10张图片

注:SC[15:0]必须等于或小于EC[15:0]。
当SC[15:0]或EC[15:0]大于00EFh(当MADCTL的B5 = 0)或013Fh时(当MADCTL的B5 = 1时),超出范围的数据将被忽略。

4、页地址设置(2Bh)

此命令用于定义MCU可以访问的帧内存区域。
藏经阁(八)LCD控制器 ILI9341 解析_第11张图片
(1)先发命令0x2B
(2)发送窗口第一个纵向坐标值的高8位 SP[15:8]
(3)发送窗口第一个纵向坐标值的低8位 SP[7:0]
(4)发送窗口第二个纵向坐标值的高8位 EP[15:8]
(5)发送窗口第二个纵向坐标值的低8位 EP[7:0]

藏经阁(八)LCD控制器 ILI9341 解析_第12张图片
注:SP[15:0]总是等于或小于EP [15:0]
当SP(15:0)或EP(15:0)大于013Fh(当MADCTL’s B5 = 0)或00EFh(当MADCTL’s B5 = 1)超出范围的数据将被忽略。

5、写内存(2Ch)

该命令用于将数据从MCU传输到帧内存。
当这个命令被接受时,列寄存器和页寄存器被重置到开始列/开始页的位置。然后将D[17:0]存储在帧存储器中,列寄存器和页寄存器加1。
发送任何其他命令都可以停止帧写入。
藏经阁(八)LCD控制器 ILI9341 解析_第13张图片
(1)先发命令0x2B
(2)连续发送需要显示的数据


实战应用

STM32F103 高级外设 —— TFT_LCD屏框架以及填充颜色 详解

你可能感兴趣的:(藏经阁,lcd控制器,stm32,linux,ILI19341,LCD)