接口简述
Intel 8080接口,来源于Intel 8080微处理器。
Intel 8080是一款历史上非常重要的早期8位微处理器,它在1974年由Intel推出,对个人计算机的发展产生了重大影响。这款处理器通常被认为是第一个真正成功的微处理器,它为后来的微计算机革命奠定了基础。
M6800,来源于摩托罗拉6800微处理器。
M6800是与摩托罗拉6800微处理器相关的总线通信协议。摩托罗拉6800是20世纪70年代中期推出的一种8位微处理器,广泛应用于早期的计算机系统和嵌入式系统。
DBI(Display Bus Interface)显示总线标准,DBI中定义了三类接口。
- A类:基于Motorola 6800总线
- B类:基于Intel 8080总线
- C类:基于SPI/I2C协议
DBI接口最大的特点就是LCM自带 framebuffer, 保存着Host端发过来的数据,并由内部的驱动芯片不断的刷新到LCD上。整体框架如下:
graph TD
LCD控制器 -->DBI接口 -->驱动芯片-->framebuffer -->LCD显示屏
常见的驱动芯片有ILI9486L、ILI9488、ILI9341、SSD1963等。 不同驱动芯片对于颜色数据格式、Command、时序要求有所差异,点屏时需参考芯片手册对工程进行修改。
I8080接口定义
信号 | 功能描述 |
---|---|
/CS | 片选信号,低有效 |
DC(RS) | 数据/命令选择端(1:数据,0:命令) |
WR | 写使能,低有效 |
RD | 读使能,低有效,读数据时,WR拉高 |
DB[x:0] | 8/9/16/18bit 双向数据总线 |
/RST | 硬件复位 LCD 信号,低电平有效 |
IM2/IM1/IM0 | 不同驱动芯片对此定义有所区别 |
M6800接口定义
信号 | 功能描述 |
---|---|
/CS | 片选信号,低有效 |
RS | 数据/命令选择端(1:数据,0:命令) |
R/W | 高:数据可被 CPU 读取; 低:可在 E 下降沿时写入显示数据 |
E | 使能信号,写模式:数据锁存于E的下降沿,读模式:当 E 为高电平时读取数据 |
DB[x:0] | 8/9/16/18bit 双向数据总线 |
/RST | 硬件复位 LCD 信号,低电平有效 |
- ILI9486L
- ILI9488
- ILI9341
写时序
读时序
数据传送模式
支持两种,可通过修改Command选定。
16bits位宽RGB数据分布
RGB565时序图
RGB666时序图
Command相关
具体点屏时,需要查询对应驱动芯片手册,通过Command命令对LCD屏幕刷新模式等参数进行设置。
时序要求
点屏模块的设计需满足对应驱动芯片的时序要求。例如,ILI9486L时序特性如下:
FPGA实现
RTL设计思路:使用三段式FSM按照接口协议进行写入。
Testbench思路:以1pixel为单位依次写入:
- RGB444(红)—RGB444(绿)—RGB444(蓝);
- RGB565(红)—RGB565(绿)—RGB565(蓝);
- RGB666(红)—RGB666(绿)—RGB666(蓝);
- RGB888(红)—RGB888(绿)—RGB888(蓝)。
实现基本功能的RTL模块仿真波形如下,符合数据手册要求: