FPGA点亮ILI9488驱动的SPI+RGB接口LCD显示屏
ILI9488 RGB接口显示红色、绿色、蓝色三基色图片
ILI9488 RGB接口时序
目录
前言
ILI9488是一款广泛应用于嵌入式系统和电子设备的彩色TFT LCD显示控制器芯片。本文将介绍ILI9488关于RGB接口的时序,笔者多次阅读芯片手册多次调试之后最终成功用FPGA点亮了一块分辨率为320*320的ILI9488驱动的TFT LCD显示屏,实现了稳定的RGB三基色显示功能,分别显示了RGB三基色图片。SPI初始化后,即可用RGB接口来传输像素值。
++提示:以下是本篇文章正文内容,引用请附上链接!
++
一、RGB接口相关配置命令
1、2A和2B
2A用来配置显示区域的起始列位置和终止列位置,有SC起始列和EC结束列两个参数需要设置,注意参数是16进制格式。

2B用来配置显示区域的起始行位置和终止行位置。,有SP起始行和EP结束行两个参数需要设置,注意参数是16进制格式。

比如笔者LCD屏幕的分辨率是320*320,那么初始化命令配置如下,16进制下,行和列的设置都是从0000h-013Fh,转换成十进制即从0-319。
DELAY_CLK+'d1:
data<=9'h02A;
DELAY_CLK+'d2:
data<=9'h100; //SC [15:8]
DELAY_CLK+'d3:
data<=9'h100; //SC [7:0]
DELAY_CLK+'d4:
data<=9'h101; //EC [15:8]
DELAY_CLK+'d5:
data<=9'h13F; //EC [7:0]
DELAY_CLK+'d6:
data<=9'h02B;
DELAY_CLK+'d7:
data<=9'h100; //SP [15:8]
DELAY_CLK+'d8:
data<=9'h100; //SP [7:0]
DELAY_CLK+'d9:
data<=9'h101; //EP [15:8]
DELAY_CLK+'d10:
data<=9'h13F; //EP [7:0]
2、B5
B5用来设置RGB接口时序相关的一些参数,包含四个关键时序参数设置,分别是VFP,VBP,HFP,HBP。

如下图所示,命令里面的VBP包含了VLW,HBP包含了HLW。

显示区域可划分为多个部分,其中间部分为实际像素显示区域。

其中各个参数的范围如下图所示,其中RGB接口的最大时钟频率为20MHz。

各个参数的含义如下表所示:

笔者B5命令的配置如下,配置了时序相关的参数。
'd64:
data<=9'h0B5;
'd65:
data<=9'h102; //VFP=2
'd66:
data<=9'h104; //VBP=4
'd67:
data<=9'h103; //HFP=3,改这里还要改display
'd68:
data<=9'h106; //HBP=6,(HLW+HBP)
二、RGB接口时序
RGB接口时序如下所示:
- 场同步信号(VSYNC):表示一帧数据开始传输
- 行同步信号(HSYNC):表示一行数据开始传输
- 时钟周期(Clock Cycle):每个像素数据传输的时间周期
- 数据使能(ENABLE):指示像素数据何时有效
- 像素数据(DB):二进制的像素数据

具体到每个信号的时序参数的要求如下图和下表所示:

ILI9488支持16/18/24bit,笔者用的16bit,即RGB5-6-5格式的像素表示。这里,需要注意的是所有信号什么时候有效是可以由B0命令控制的,enable笔者控制的高有效,和上面的时序图是反着的。
为了兼容,笔者在编写RGB接口时序时,支持下列参数随意修改。
localparam HLW = 3; //改这里还要改lcd_init
localparam HBP = 3;
localparam HFP = 3;
localparam VLW = 2;
localparam VBP = 2;
localparam VFP = 2;
localparam VACT=320; //行数
localparam HACT=320; //列数
仿真结果如下:

挑选部分仿真结果放大如下:

三、上板测试
显示红色纯图:

显示绿色纯图:

显示蓝色纯图:

以上测试的显示RGB三种颜色的纯色图片,可见完全是正确的。
总结
以上就是本文的全部内容,详细介绍了ILI9488 RGB接口的时序,实现了稳定的RGB三基色显示功能,分别显示了RGB三基色图片,并提供了测试图片。