常见的屏幕接口有:SPI、8080、RGB、MIPI-SDI、LVDS等
8080接口
使用这种接口的屏幕一般是屏幕自带了驱动芯片,比如ILI9488、ILI9341、SSD1963等 。驱动芯片里面自带了显存,MCU只需要把显示数据传给驱动芯片,驱动芯片会把数据保存到显存中,最后再把显存中的数据显示到屏幕上。



信号线
LCD_DB[15:0];数据信号

LCD_RD:读数据信号,低电平有效

LCD_RS:数据/命令信号,高电平时,D[15:0]表示的是数据(RGB像素数据或命令数据),低电平时D[15:0]表示控制命令

LCD_RESET:复位信号,低电平有效

LCD_WR:写数据信号,低电平有效

LCD_CS:片选信号,低电平有效

例如:





优点是:控制简单方便,无需时钟和同步信号,无需MCU提供显存,可省掉SDRAM或者SRAM

缺点是:耗费GRAM,对驱动芯片有要求,所以难以做到大屏(QVGA以上),因为带了驱动芯片,会比RGB接口屏幕贵。

8080时序也叫因特尔总线,一般MCU(MPU)模式的LCD上
Inter总线控制线有4根:

RD:写使能
WR:读使能
DC(RS):数据/命令
CS:片选


LCD控制及传输数据所需要的管脚:



读写数据
读时序图

通用时序图如下:



读数据的过程:

CS拉低,选中
DC/RS为高(读数据)
WR为高,禁止写
在RD的上升沿,读线上的数据(D[7:0]),假设8位8

080并口
CS拉高,取消片选


伪代码

LCD_CS = 0; //开始片选 
LCD_DC = 1; //读数据 
LCD_WR = 1; //禁止写 
LCD_RD = 0; //开始读
data = DATAIN();//读取数据 
LCD_RD = 1; //结束读
LCD_CS = 1; //结束片选

写时序图



写数据的过程:

CS拉低,选中
RD为高,禁止写
DC/RS为高,(写数据,写命令拉低)
在WR的上升沿,是数据写入到驱动IC里面
CS为高,结束一组数据读取
伪代码

LCD_CS = 0; //开始片选 
LCD_RD = 1; //禁止读 
LCD_DC = 1; //写数据 
DATAOUT(Data); //输出数据 ,先准备好数据,然后上升沿一次性更新到lcd
LCD_WR = 0; //写入开始 
LCD_WR = 1; //写入结束 
LCD_CS = 0; //结束片选

这里顺便提一下RGB接口

RGB接口
大屏采用较多的接口, 屏幕不带显存,需要MCU准备充足的显存空间(因为RGB565,480_272分辨率的屏幕就需要显存480_272*2 = 255K,一般的MCU都没有这么大的RAM,所以要加外置的SRAM或SDRAM)

信号线

R[7:0]:红色数据

G[7:0]:绿色数据

B[7:0]:蓝色数据

CLK:像素同步时钟信号

HSYNC:水平同步信号

VSYNC:垂直同步信号

DE:数据使能信号

例子




优点是:屏幕便宜。4.3寸、7寸、10.1寸、10.4寸多是这种接口

缺点是:需要MCU带显存,一般需要外挂SRAM或SDRAM