PL111 RGB LCD 时序说明
1)文档范围
本文从两个维度整理 PL111 时序:
- 通俗理解(面向调试与沟通)
- 硬件寄存器映射(面向实现与定位问题)
内容与 bsp/qemu-vexpress-a9/drivers/drv_clcd.c 的实现保持一致。
2)核心概念
2.1 水平方向时序(单行)
- HSW(Horizontal Sync Width,行同步宽度)
- HSYNC 脉冲持续的像素时钟个数
- 用于标记"换行",帮助屏端锁定采样相位
- HBP(Horizontal Back Porch,水平后肩)
- HSYNC 结束后到有效像素开始前的空白区
- HPP(有效像素宽度)
- 一行中真正显示的像素数量
- HFP(Horizontal Front Porch,水平前肩)
- 有效像素结束后到下一次 HSYNC 前的空白区
单行时序顺序:
HSW -> HBP -> HPP(有效像素) -> HFP
2.2 垂直方向时序(单帧)
- VSW(Vertical Sync Width,场同步宽度)
- VSYNC 脉冲持续的行数
- VBP(Vertical Back Porch,垂直后肩)
- VSYNC 后到有效显示区前的空白行
- LPP(有效显示高度)
- 一帧中真正显示的有效行数
- VFP(Vertical Front Porch,垂直前肩)
- 有效显示结束后到下一帧 VSYNC 前的空白行
单帧时序顺序:
VSW -> VBP -> LPP(有效行) -> VFP
3)PL111 寄存器位定义
3.1 LCDTiming0(水平时序)
PL111 常用位定义如下:
bits[7:2]:PPL = (pixels_per_line / 16) - 1bits[15:8]:HSW - 1bits[23:16]:HFP - 1bits[31:24]:HBP - 1
反解公式:
active_width = (PPL + 1) * 16HSW = ((tim0 >> 8) & 0xFF) + 1HFP = ((tim0 >> 16) & 0xFF) + 1HBP = ((tim0 >> 24) & 0xFF) + 1
3.2 LCDTiming1(垂直时序)
PL111 常用位定义如下:
bits[9:0]:LPP = lines_per_panel - 1bits[15:10]:VSW - 1bits[23:16]:VFP - 1bits[31:24]:VBP - 1
反解公式:
active_height = LPP + 1VSW = ((tim1 >> 10) & 0x3F) + 1VFP = ((tim1 >> 16) & 0xFF) + 1VBP = ((tim1 >> 24) & 0xFF) + 1
4)本 BSP 驱动中的实际赋值
在 drv_clcd.c 中:
c
plio->tim0 = 0x3F1F3C00 | ((CLCD_WIDTH / 16 - 1) << 2);
plio->tim1 = 0x080B6000 | (CLCD_HEIGHT - 1);
解释:
tim0的常量0x3F1F3C00固定了HBP/HFP/HSWtim0的低位字段用CLCD_WIDTH动态计算PPLtim1的常量0x080B6000固定了VBP/VFP/VSWtim1的低位字段用CLCD_HEIGHT动态计算LPP
以 480 行为例:
LPP = 480 - 1 = 479VSW = 25VFP = 12VBP = 9
5)HSW/VSW 为什么关键
5.1 通俗理解
- 屏幕按"从左到右、逐行、逐帧"方式刷新。
- 每一行/每一帧开始前,需要一个同步脉冲告诉屏端"边界到了"。
- HSW/VSW 就是这个同步脉冲的长度。
5.2 硬件原理
- 同步脉冲用于 LCD 驱动电路锁定像素采样时序。
- 宽度不合理会导致锁相不稳,常见表现:
- 闪屏
- 滚屏
- 画面抖动或撕裂感
- 无显示
6)水平与垂直的镜像关系
HSW<->VSW:同步脉冲宽度HBP<->VBP:同步后的稳定等待区HPP(有效宽)<->LPP(有效高):可见画面HFP<->VFP:周期结束前的尾部空白区
本质相同,只是作用轴不同:
- 水平参数控制"每一行"
- 垂直参数控制"每一帧"
7)工程调参建议流程
- 以屏厂 datasheet 为唯一时序基准。
- 先确认有效分辨率:
CLCD_WIDTH、CLCD_HEIGHT。 - 按位编码:
- 水平参数写入
tim0 - 垂直参数写入
tim1
- 水平参数写入
- 同步检查像素格式与时钟配置(
control、平台时钟树)。 - 若显示不稳定,按以下顺序排查:
- 同步极性与同步宽度
- 前后肩参数
- 像素时钟频率
- framebuffer 地址与对齐
8)常见故障与症状
- HSW 过小:行边界不稳,画面错位/抖动
- HSW 过大:行周期变长,帧率下降
- VSW 不匹配:滚屏、帧周期性不稳定
- Porch 不匹配:边缘裁切、偏移、部分面板无法锁定
9)一句话总结
HSW/VSW 定义了行/帧同步脉冲长度,用于告诉屏幕何时换行/换帧;HBP/HFP 与 VBP/VFP 提供消隐缓冲;HPP/LPP 定义有效显示区域。