STM32——屏幕的8080接口

常见的屏幕接口有: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) 数据或者命令管脚(1:数据读写,0:命令读写) WR MCU向LCD写入数据控制线,上升沿有效,写数据时 RD拉高 RD MCU从LCD读数据控制线,上升沿有效,读数据时,WR拉高 DB[X:0] 8/9/16/18bits双向数据总线,一般8位的MCU接口用的比较多 RST 硬件复位LCD信号 BL LCD背光信号 IM2/1M1/1M0 接口控制,IM2=0,串行, IM2=1 IM1=0,IM0=0,6800/8080 8BIT并行接口; IM1=0,IM0=1,6800/808016bit并行接口;IM1=1,IM0=0,6800/8080 9bit并行接口; IM1=1,IM0=1,6800/8080 18bit并行接口 P68 6800/8080选择,0表示8080,1表示6800

读写数据

读时序图

通用时序图如下:

读数据的过程:

    CS拉低,选中 DC/RS为高(读数据) WR为高,禁止写 在RD的上升沿,读线上的数据(D[7:0]),假设8位8080并口 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

经验分享 程序员 微信小程序 职场和发展