元器件分析 · 2023年8月1日

SPI接口的LCD

小分辨率的LCD,比如QQVGA,QCIF,QVGA等,广泛应用于功能手机和穿戴设备(比如手表)上。这类小分辨率的LCD,除了支持并行接口(比如i80),一般也会支持串行接口。在实际产品中广泛运用的串行接口就是SPI,由于其频率一般可以达到几十MHz,可以满足小分辨率LCD的性能要求。
SPI接口应用在LCD上,主要是以下两种模式:

  • wire 9-bit 模式
  • wire 8-bit 模式

比如G9306的 LCD datasheet 中有如下描述:

说明该 LCD 支持 3-wire 9-bit 和 4-wire 8-bit 模式,而两种模式下又分别有两种不同的接口,构成四种接口方式:

  • 3-wire 9-bit 接口 I,数据输入输出共用一根线(SDA)。
  • 4-wire 8-bit 接口 I,数据输入输出共用一根线(SDA)。
  • 3-wire 9-bit 接口 II,数据输入(SDI )和 输出(SDO) 是独立的线。
  • 4-wire 8-bit 接口 II,数据输入(SDI )和 输出(SDO) 是独立的线。

其中后两种接口,3-wire 用到了 SCL / SDI / SDO / CSX 四根线,4-wire 用到了 SCL / SDI / SDO / CSX / DCX 五根线,所以所谓的 3-wire,4-wire 并不是指信号线的总数目,而是指有没有 DCX 线。LCD 用 DCX 来区分传输的数据是 Data 还是 Command。
4-wire 模式下,用 DCX 信号线的电平高低来指示;
3-wire 模式下,用 SDA 信号线上的 D/C bit 来表示,传输实际数据前会先传输一个 D/C bit 数据位,比 8-bit 多了一个bit,所以称作 9-bit。

3-wire 9-bit 模式
3-wire 9-bit 模式下,D/C bit 包含在数据流中,如果 SPI 控制器直接支持3-wire 9-bit 模式,会自动产生 D/C bit。D/C bit 为0时,表示Command;D/C bit 为1时,表示 Data。

3-wire Serial Interface Protocol

4-wire Serial Interface Protocol

SPI LCD 性能预估
假定主控SPI clock最高为48MHz,驱动一款QQVGA、RGB565格式的屏幕,接口为3-wire 9-bit。

QQVGA,分辨率120×160,实际产品以128×160常见;RGB565格式,每个像素占用16 bit;3-wire 9-bit 每传输一个16 bit的像素数据,额外需要两次D/C bit;算起来每传输一个像素数据需要18 bit。

这样算下来 48000000 / (12816018) = 130 fps

理论刷屏可以达到130帧每秒,帧率很高了

但是还需要结合具体LCD的datasheet去确认该LCD所能支持的最大SPI clock。如下是某款LCD的 Timing Characteristics,表明它支持的SPI clock最小周期为10ns,换算成支持的最大频率大约为100MHz。

所以实际情况应该是:

100000000 / (12816018) = 270 fps

270帧每秒的刷屏效果也是不错的。计算出来的是理论值,实际数据会有一定偏差。

同样的clock指标下,对于QVGA屏来说,就有些吃力;再大的分辨率,就基本不能胜任了。

打赏作者