1、LCD介绍
ATK-4.3’ TFTLCD 模块采用NT35510 作为 LCD驱动器,该驱动器自带 LCD GRAM,无需外加独立驱动器,使用非常方便。模块采用 16 位 8080 并口与外部连接(不支持其他接口方式,仅支持 16 位 8080 并口),在 8080 并口模 式下,LCD驱动需要用到的信号线如下:
- CS:LCD片选信号
- WR:向 LCD写入数据
- RD:从 LCD读取数据
- D[15:0]:16 位双向数据线
- RST:硬复位 LCD
- RS:命令/数据标志
NT35510 自带 LCD GRAM(480 * 864 * 3 字节),并且最高支持 24 位颜色深度(1600 万色),不过,我们一般使用 16 位颜色深度(65K色),RGB565 格式,这样,在 16 位模式下, 可以达到最快的速度。
在 16 位模式下,NT35510 采用RGB565 格式存储颜色数据,此时NT35510 的低 16 位数据总线(高 8 位没有用到)与MCU的 16 位数据线以及 24 位 LCD GRAM的对应关系如图所示:
从上表可以看出,NT35510 的 24 位GRAM与 16 位RGB565 的对应关系,其实就是分别将高位的R、G、B 数据,搬运到低位做填充,“凑成”24 位,再显示。MCU的 16 位数据中,最低 5 位代表蓝色,中间 6 位为绿色,最高 5 位为红色。数值越大,表示该颜色越深。
2、LCD时序
NT35510时序图和参数说明如下:
1、写数据分析
-
Tast (地址设置时间)
RS 必须比 WR 提前最小 0ns,因此可以同时变化
-
Twrl
WR低电平保持时间必须大于等于 15ns
-
Twrh
WR高电平保持时间必须大于等于 15ns
-
Twc(写周期)
WR整个写时序最少需要 33ns,而高低电平保持时间为 15ns,所以每个时钟沿变化时间为 1.5ns
-
Tdst(数据设置时间)
数据线上数据必须最少比WR上升沿提前 15ns,而WR低电平保持时间也是 15ns,所以可以和WR同时或提前变化
-
Tdht(数据保持时间)
在WR上升沿后,数据线上的数据至少保持 10ns
-
Taht(地址保持时间)
在WR上升沿后,RS状态至少保持 2ns
根据以上分析,整理一种以最小参数设置的写时序:
- a 和 d 之间为Tast ,设置为最小值 0ns(RS设置必须优先于WR)
- d 和 e 之间为Twrl,设置为最小值 15ns
- e 和 f 之间为Twrh,设置为最小值 15ns
- h 和 d 之间为Tdst,设置为最小值 15ns(D设置必须优先于WR)
- e 和 b 之间为Taht,为了方便设计为可连续时序,RS变化设置为下一个WR下降沿之前
- e 和 i 之间为Tdht,为了方便设计为可连续时序,RS变化设置为下一个WR下降沿之前
写时序设置顺序为:写CS - > 写RS -> 写D -> 写WR
2、读数据详细说明(FM)
-
Tast (地址设置时间)
RS 必须比 RD下降沿变换 提前最小 10ns
-
Trdhfm
RD高电平保持时间必须大于等于 250ns
-
Trdlfm
RD低电平保持时间必须大于等于 150ns
-
Trcfm
RD整个读时序最低为 400ns
-
Tratfm(读取访问时间)
在读取数据时,下降沿变化以后最多 150ns,数据线上就可以获取。(数据由LCD设置,单片机读取)
-
Taht(地址保持时间)
在RD上升沿后,RS状态至少保持 2ns
-
Todh(数据关闭时间)
在RD上升沿后,数据线上数据保持最少 5ns
根据以上分析,整理一种以最小参数设置的读时序:
- a 和 d 之间为Tast ,设置为最小值 10ns(RS设置必须优先于RD)
- d 和 e 之间为Trdlfm,设置为最小值 150ns
- e 和 f 之间为Trdhfm,设置为最小值 250ns
- h 和 d 之间为Tratfm,设置为最大值 150ns(注意:最晚读取时间为上升沿)
- e 和 b 之间为Taht,为了方便设计为可连续时序,RS变化设置为下一个WR下降沿之前10ns
- e 和 i 之间为Tdht,读取状态下数据线不由单片机配置
3、LCD初始化步骤
1、初始化与TFTLCD模块相连的IO口进行初始化,以便驱动LCD。
2、初始化TFTLCD模块
- 硬件复位LCD
- 初始化序列
3、通过函数将数字和字符显示到TFTLCD模块上
- 设置坐标
- 写GRAM指令
- 写GRAM
以上步骤为一个点的处理,想要显示数字/字符,必须要多次使用这个步骤。
4、使用FSMC模拟8080并口时序
因操作LCD的核心是向GRAM中写入数据,而FSMC主要作用为操作存储器设计,所以,我们可以尝试用FSMC模拟8080并口时序。
FSMC结构框图:
通过分析,我们可以使用如下对应关系进行模拟,时序选用模式A:
功能 | LCD引脚 | FSMC引脚 |
---|---|---|
片选 | CS | NE |
数据/命令选择 | A[25:0]中的1根 | RS |
写使能 | WR | NWE |
读使能 | RD | NOE |
数据 | D[15:0] | D[15:0] |
模式A写操作:
模式A读操作:
注:LCD操作的核心在于如何精确定位像素点