ILI9341的使用之【三】ILI9341系统通信接口模式操作详解

《ILI9341的使用之【一】TFT-LCD原理(转载)》
《ILI9341的使用之【二】ILI9341介绍》
《ILI9341的使用之【三】ILI9341系统通信接口模式操作详解》
《ILI9341的使用之【四】RGB接口操作详解》
《ILI9341的使用之【五】命令一》
《ILI9341的使用之【六】命令二》
《ILI9341的使用之【七】实体面板案例-arduino 2.4inch TFT Touch Shield》
《ILI9341的使用之【八】ASCII字符显示及驱动分析》
《ILI9341的使用之【九】BG2312字库》

MCU系统接口共4类12种模式,具体内容及选择方式详见上一篇的4.1。这里不再累述。接下来对这12种模式的部分实现细节做进一步的解释。

一、系统通信接口之8080-I系列并行接口

ILI9341提供8080-I/808II的8位,9位,16位,18位的并行系统接口,和3、4线的串行系统接口用于串行数据的输入。以上接口的选择是靠IM[3:0]扩展引脚的设置。而像素颜色的数据的位次序由指令3Ah(Pixel Format Set)的DBI[2:0]参数设置。
ILI9341的使用之【三】ILI9341系统通信接口模式操作详解_第1张图片

1.1、8080-I Series Parallel interface

ILI9341可以通过MCU 8080-I系列并行接口(分别为8位/9位/16位/18位)的方式进行访问。
CSX(片选,LOW有效)被用来使能或禁止ILI9341芯片的功能。
RESX(LOW 有效)是一个外部复位信号。
WRX是并行数据的写选通。
RDX是并行数据的读选通。
数据总线D[17:0]是并行数据总线。
D/CX是数据或命令选择的信号,当D/CX=‘1’,D[17:0]上的内容是显示RAM数据或命令的参数。当D/CX='0’时,D[17:0]是 命令
当WRX信号处于上升沿时,ILI9341锁存输入数据。

8080-I 接口模式的选择,由引脚IM3=0决定,IM[2:0]则决定了总线的使用宽度。具体如下表:
ILI9341的使用之【三】ILI9341系统通信接口模式操作详解_第2张图片
上表中的8080 MCU 8-bit bus interface I 是本系列重点讲解的模式。

1.2、写时序

在一次写周期中,WRX信号完成一次从高到低,再从低到高。在写周期中,在WRX的上升沿到来时,显示模块获得主控制器送来的信息。在这其间主控必须已把信息写入总线中。当D/DX信号被设为低电平时,总线上的信息被理解为命令。当D/CX信号被设为高电平时,总线上的信息被理解为RAM数据或命令的参数。
ILI9341的使用之【三】ILI9341系统通信接口模式操作详解_第3张图片
下图为写操作的完整时序图,注意两次数据写D/CX的不同电平使D[17:0]总线上数据被解释成不同的含义。当片选信号CSX=‘H’时,所有信号变化都被忽略。
ILI9341的使用之【三】ILI9341系统通信接口模式操作详解_第4张图片

1.3、读操作时序

在一次读周期中,RDX信号完成一次从高到低,再从低到高。在读周期中,在RDX的上升沿到来时,主控制器获得显示模块送来的信息。在这其间显示模块须已把信息写入总线中。当D/DX信号被设为低电平时,总线上的信息被理解为命令。当D/CX信号被设为高电平时,总线上的信息被理解为RAM数据或命令的参数。
ILI9341的使用之【三】ILI9341系统通信接口模式操作详解_第5张图片
下图为读操作的完整时序图,注意只有当D/CX被拉高时,读数据才是有效的。如果在读周期中D/CX被拉低,则ILI9341引脚对外将出现高阻态。因此注意下面两次数据读的有效性。第一次读,此时CSX片选有效,D/CX拉高,此时ILI9341在总线上的数据是有效数据。第二次读周期,在RDX 上升沿到来前,CSX片选信号已无效。
ILI9341的使用之【三】ILI9341系统通信接口模式操作详解_第6张图片

1.4 8-bit 并行MCU接口

ILI9341r 8080-I系统的8-bit并行总线接口的使用是通过设置外部引脚IM[3:0]为“0000”实现。下面的图展示了MCU系统接口8080-I的例子:
ILI9341的使用之【三】ILI9341系统通信接口模式操作详解_第7张图片
不同的显示数据格式可用于下面列出的两种彩色深度。
-65K色,RGB5,6,5-bits 输入数据
-262K色,RGB6,6,6 -bits 输入数据

65K色:每像素16-bitt(RGB 5-6-5 bits 输入)
当3Ah指令设置寄存器DBI[2:0]值为“101”时, 一个像素(有三个子像素,即红绿兰三个点)显示数据由2个字节来传送。
ILI9341的使用之【三】ILI9341系统通信接口模式操作详解_第8张图片
262K色:每像素18位(RGB 6-6-6 bits 输入)
当3Ah指令设置寄存器DBI[2:0]值为“110”时,一个像素(3个子像素)的显示数据由3个字节来传送
ILI9341的使用之【三】ILI9341系统通信接口模式操作详解_第9张图片
(说明:由于硬件接口是8bits,而像素的RGB三色数据占的位数大于8。因此传送像素颜色数据就需要多字节对应表示一个像素的颜色数据。该对应关系的设置由指令3Ah-Pixel Format Set设置)

1.5 9位并行MCU接口

通过设置硬件引脚 IM[3:0]为“0010”,选择ILI9341的8080-I系统的9位并行总线接口。如下:
ILI9341的使用之【三】ILI9341系统通信接口模式操作详解_第10张图片
65K color: 16-bit/pixel (RGB 5-6-5 bits input)
当3Ah寄存器的DBI[2:0]位被设置为“101”,一个像素(三个子像素)的显示数据由两个单位(每单位9bit位)来传送:
ILI9341的使用之【三】ILI9341系统通信接口模式操作详解_第11张图片
262K color: 18-bit/pixel (RGB 6-6-6 bits input)
当3Ah寄存器的DBI[2:0]位设置为“110”,2个像素(6个子像素)的显示数据由4个单位(每单位9bit位)来传送
ILI9341的使用之【三】ILI9341系统通信接口模式操作详解_第12张图片
或:
ILI9341的使用之【三】ILI9341系统通信接口模式操作详解_第13张图片

1.6 16位并行MCU接口(省略)

1.7 18位并行MCU接口(省略)

1.8 6位并行RGB接口(省略)

二、系统通信接口之8080-II系列并行接口(省略)

三、系统通信接口之串行接口

3.1、串行接口概述

该接口的选择是由IM[3:0]完成的。下表详述:
ILI9341的使用之【三】ILI9341系统通信接口模式操作详解_第14张图片
ILI9341支持3线9位和4线8位的双向串行接口用于在主控与ILI9341之间通信。
3线串行模式由CSX(片选,LOW有效),SCL(串口时钟)、SDA或SDI/SDO(串行数据输入输出引脚,模式由IM3=0或1确定,具体见引脚说明)组成。
4线串行模式由D/CX(数据/命令选择)、CSX(片选)、SCL(时钟)、SDA或SDI/SDO(串行数据输入输出引脚,模式由IM3=0或1确定,具体见引脚说明)组成。
D[17:0]不使用时,必须连接到GND。串行时钟(SCL)仅用于单片机的接口,所以如果没有通信时时钟可以中止它。
ILI9341的使用之【三】ILI9341系统通信接口模式操作详解_第15张图片
ILI9341的使用之【三】ILI9341系统通信接口模式操作详解_第16张图片

3.2 写周期时序

接口的写模式意味着从主机写命令或数据到ILI9341。3线串行数据包包含了一个数据/命令选择位(D/CX)和一个传送字节。(注意,这里是一个数据/命令的选择位,是bit,不是前面所说到的D/CX引脚)。
如果D/CX位是 “low”,传送的字节就被理解为命令字节。如果D/CX位是“high”,这个传送的字节就被存储为显示数据或命令参数。
任何指令能以任意顺序被发送给ILI9341,并且最高有效位(MSB)选被发送。当CSX=‘high’时,串行接口被初始化。在这种状态下,SCL时钟脉冲和SDA数据都是无效的。一个CSX上的下降沿会使能串行接口,并且表明数据传送的开始。具体看下面详线的数据格式:
ILI9341的使用之【三】ILI9341系统通信接口模式操作详解_第17张图片
ILI9341的使用之【三】ILI9341系统通信接口模式操作详解_第18张图片
主机处理器驱动CSX引脚为低电平,并且在SDA线上设定D/CX位。这一位被ILI9341在SCL引脚 上的第一个上升沿读取。在紧接着的SCL引脚的下降沿,MSB(最高有效位)数据位(D7)被写到SDA上。在又紧接着的下降沿,D6位被写到SDA上。如果D/CX引脚有被使用,则一个读周期是8位一个字节的宽度。3或4线串行接口写时序详见下图:
ILI9341的使用之【三】ILI9341系统通信接口模式操作详解_第19张图片

3线的两种色彩深度

ILI9341的使用之【三】ILI9341系统通信接口模式操作详解_第20张图片
注意1:16位色深的像素数据。
注意2:最高有效位是:红色 4,绿色 5 兰色 4
注意3:最低有效位都是0
注意4:“-”号不去关心,代表能被设置成0或1

ILI9341的使用之【三】ILI9341系统通信接口模式操作详解_第21张图片
注意1:18位色深的像素数据。
注意2:最高有效位是:红色 5,绿色 5 兰色 5
注意3:最低有效位都是0
注意4:“-”号不去关心,代表能被设置成0或1
ILI9341的使用之【三】ILI9341系统通信接口模式操作详解_第22张图片

ILI9341的使用之【三】ILI9341系统通信接口模式操作详解_第23张图片

3.3 4线的两种色深

ILI9341的使用之【三】ILI9341系统通信接口模式操作详解_第24张图片
注意1:16位色深的像素数据。
注意2:最高有效位是:红色 4,绿色 5 兰色 4
注意3:最低有效位都是0
注意4:“-”号不去关心,代表能被设置成0或1

ILI9341的使用之【三】ILI9341系统通信接口模式操作详解_第25张图片
注意1:18位色深的像素数据。
注意2:最高有效位是:红色 5,绿色 5 兰色 5
注意3:最低有效位都是0
注意4:“-”号不去关心,代表能被设置成0或1
ILI9341的使用之【三】ILI9341系统通信接口模式操作详解_第26张图片

3.3、读周期时序

接口的读模式意味着主机从ILI9341读取寄存器的参数或显示数据。主机必须发送命令(读 ID 或读寄存器命令)然后接着有字节会被回传。ILI9341在SCL的上升沿锁住SDA上的输入数据,然后在SCL的下降沿移位SDA上的输出数据。
主机在读的命令发出后,SDA线必须设置为三态并且该状态转换不能迟于命令字的最后一位的下降沿。读模式有三种传输命令数据的类型,分别与8-/24-/32-bit三种数据类型对应的命令码。
ILI9341的使用之【三】ILI9341系统通信接口模式操作详解_第27张图片
ILI9341的使用之【三】ILI9341系统通信接口模式操作详解_第28张图片
ILI9341的使用之【三】ILI9341系统通信接口模式操作详解_第29张图片
ILI9341的使用之【三】ILI9341系统通信接口模式操作详解_第30张图片
ILI9341的使用之【三】ILI9341系统通信接口模式操作详解_第31张图片
ILI9341的使用之【三】ILI9341系统通信接口模式操作详解_第32张图片

你可能感兴趣的:(ILI9341,单片机,嵌入式)