1. 引言
绝大多数 STM32 MCU 都可应用于图形界面,而且很多系列还内置图形硬件 LTDC,支持驱动 RGB 接口的 LCD。但是存在少数类型的 LCD,如 JDI 屏,除了 STM32L4P5 支持外,其它 MCU 只能根据屏的接口时序要求,用 GPIO 来驱动。本文会介绍 JDI 屏的接口时序与驱动过程。
2. LCD 介绍
LCD 显示屏由一系列像素组成,通常以“行像素值 x 列像素值”表示屏幕分辨率。比如320x240 表示此显示屏每行有 320 个像素点,每列有 240 个像素点。
色深是指显示屏每个像素能表示多少种颜色,通常用位来表示。比如 16 位色深对应RGB565,每个像素颜色用 2 个字节来表示,其中 RGB565 称作色彩格式。
RGB 接口屏通常支持 RGB565,RGB666,RGB888 等色彩格式,这些格式能显示的颜色种数较多,色彩丰富;而 JDI 接口支持的格式为 RGB222,总共支持 64 种颜色。
2.1. 接口时序
2.1.1. RGB 接口时序
RGB 显示屏包含以下信号:
图1.RGB 接口信号
在使用 RGB 接口时,RGB565 或 RGB888 格式,接口时序如下:
图2.RGB 接口时序图
像素数据在像素时钟 CLK 同步下顺序发送,其中 VSYNC 信号用于同步一整帧像素数据,HSYNC 信号用于同步一整行的像素数据,DE 信号表示像素数据有效。在 DE 有效时,每个 CLK 时钟周期会在 R[7 :0], G[7 :0], B[7 :0]信号上传输一个像素的颜色数据,用于指定此像素颜色。这样逐行扫描完所有像素后,就完成了一帧像素数据的传输,LCD 面板就会有对应的图像显示。
2.1.2. JDI 屏接口时序
JDI 屏的只包含 R[2 :1], G[2 :1], B[2 :1]信号,每个颜色 2Bit 数据,其它信号与前面 RGB接口类似,以下是 JDI 屏的信号列表:
图3.JDI 接口信号
以 240x240 分辨率的 JDI 圆形屏为例,驱动时序如下,其中 LPB 为颜色分量高 bit 位,SPB 为颜色分量低 bit 位:
图4.列信号时序
图5.行信号时序
JDI 屏的时序看起来与前面介绍的 RGB 时序非常相似,但是在传输像素数据上有很大差别,比如 RGB565 或 RGB888 在传输像素数据时,每个 CLK 传输一个像素数据,代表同一个像素的颜色值;而 JDI 屏则不同,主要有下面几点差异:
- VCK 的高低电平期间都要传输数据
- HCK 上升沿和下降沿都传输一次数据
- R1,R2…分别代表奇、偶像素点的一 bit 数据,即同一次 HCK 边沿传输的是两个像素点的一 bit 数据
- LPB, SPB 区分,在一个 VCK 周期,低电平传输 LPB,高电平传输 SPB,也就是传输每一行时,先传输此行所有像素的高 bit 数据,再传输此行所有像素的低 bit 数据,这样就刷新了一行像素数据
图6.240x240 屏驱扫描过程
从上图可以看出,在刷新 240x240 分辨率的 JDI 屏时,驱动扫描方式为从上到下,从左到右:
- 总共 240 行像素,但分别包含 240 行 LPB、SPB,总共 480 行刷新,对应列信号时序中 VCK 的 480 个高低电平
- R1,R2,G1,G2,B1,B2 为一组,分别对应奇偶两个像素 RGB 分量的各一 bit 数据
- 每行 240 个像素,在 HCK 双边沿传输,每边沿传输 2 个像素,因此总共 120 个边沿,60 个 HCK 周期即可传输完成一个 LPB 行或 SPB 行
另外,JDI 屏还包括 VCOM, FRP, XFRP 信号如下图,用 PWM 来输出 60Hz,50%占空比波形来驱动即可:
图7.VCOM/FRP/XFRP 信号时序
3. 测试与小结
结合以上时序,在 STM32U575 Nucleo 板上,使用 GPIO 驱动 JDI 屏能正常显示。在实际使用 JDI 屏时需要仔细查看时序,并结合时序参数来优化显示驱动。
文档中所用到的工具及版本
IAR 9.30.1
LAT 中的附件
test_U575_Nucleo_JDI.7z
本文档参考ST官方的《【应用笔记】LAT1313+JDI+LCD+驱动时序介绍》文档。
参考下载地址:https://download.csdn.net/download/u014319604/89083017