RGB屏参配置方法

Creative Commons
本作品采用知识共享署名

本文介绍如何计算和配置RGB屏参。

Zephyr上添加RGB接口屏和调试方法一文中已经详细介绍过RGB接口的驱动信号,要正确的将一片RGB屏驱动起来,主要就是对VSYNC,HSYNC,DCLK进行正确配置,本文将详细说明如何根据spec,计算这三个信号的参数。

基本参数

RGB屏的驱动信号参数如下图(图片来源NXP,见后文参考)
screen
RGB接口信号刷新一帧内容并不是只刷新要显示的内容,上图中Active Width和Active Heigh才是可视的显示
一帧以VSYNC开始,VSYNC的单位为H(行)为单位,经过VSW+VBP行后才真正的开始刷出显示数据,一帧数据刷新完后经过VFP行后再进行下一个帧周期。
一行以HSYNC开始,HSYNC的单位为DCLK(数据时钟),经过HSW+HBP后才真正的刷出显示数据,一行数据刷新完后记过HFP后再进行下一个行周期。
因此要确定刷新的屏参,需要配置好下面的参数:
HSW,HBP,HFP,Active Height, VSW,VBP,VHP,Active Width, DCLK

屏规格参数

当拿到一片屏的spec后,在屏的spec内去找Timing的说明,通常会给出这些参数如下
spec
表中的参数和前面的驱动信号图对应关系如下
VSD period time – Total Heigh
VSD display area – Active Height
VSD back porch – VBP
VSD front porch – VFP
VSD pulse width – VSW
HSD period time – Total Width
HSD display area – Active Width
HSD back porch – HBP
HSD front porch – HFP

计算屏驱动参数

通过上面的对应关系我们已这份spec来计算实际的驱动屏参

1. 实际显示区域

实际显示区域每片屏都是固定的,直接按屏规格参数填写:
Active Height = 480
Total Width = 800

2. 计算VSYNC

按照spec选择Total Hight使用典型值525
按照公式: Total Hight = VSW + VBP + Active Hight + VFP 将选定的值带入得到
VSW + VBP + VFP = 525-480 = 45
根据规格VBP只能选择32,因此
VSW+VFP = 45 - 32 = 13
根据规格选择VSW使用典型值3,因此
VFP = 13 -3 = 10
10落在VFP的区间范围1~255直接,因此符合规格,最后得出参数
VSW = 3,VBP=32,VFP=10, Active Hight=480

3. 计算HSYNC

按照spec选择Total Width使用典型值928
按照公式: Total Width = HSW + HBP + Active Width + HFP 将选定的值带入得到
HSW + HBP + HFP = 928-800 = 128
根据规格HBP选择典型值40,因此
HSW+HFP = 128 - 40 = 88
由于规格没有给出HSW范围,根据规格选择HFP使用典型值48,因此
HSW = 88 - 48 = 40
HSW = 40,HBP=40,VFP=48, Active Hight=800

4. 计算DCLK

DCLK是数据时钟,一个DCLK送出一个像素的数据,因此一帧数据将会送出Total Width * Total Hight个像素,也就需要对应数量的DCLK,如果帧率为fps,那么1秒钟就需要Total Width * Total Hight * fps个DCLK,这就是DCLK的频率:
DCLK Freq = Total Width * Total Hight * fps
我们一开始已经选定Total Hight使用典型值525,Total Width使用典型值928, 我们想要配置为每秒60帧那么
DCLK Freq = 525*928*60 = 29.2M
规格里面显示DCLK Freq低于50M都可接受,因此可以按此配置

LCD控制器配置

不同的SOC其LCD硬件寄存器实现方式不一样,配置方式都略有不同,但基本都是下面参数的组合
VSW = 3,VBP=32,VFP=10, Active Hight=480
HSW = 40,HBP=40,VFP=48, Active Hight=800
Total Hight = 525
Total Width = 928
DCLK Freq = 29.2M

参考

https://www.nxp.com/docs/en/application-note/AN12302.pdf