LCD timing设置

image.png

"porch"   沿,(大房子屋檐下的)走廊游廊
"margin"  边缘,(版心外的)空白
"HAdr"  Horizontal Address 水平地址(空间),实际值对应的就是xres,水平有效像素数
"VAdr"  Vertical Address   垂直地址(空间),实际值对应yres,垂直有效行数
"(VAdr + HAdr)"  有效显示数据从主控传输到显示模组上的时期
"blanking" 消隐
"Hblank" 行消隐  实际就是HFP+Hsync+HBP的时间,因为此期间并未有效显示,看做消隐状态 
"Vblank" 场消隐  实际就是VFP+Vsync+VBP的时间,因为此期间并未有效显示,看做消隐状态  
"HPW" Hsync Pulse Width 水平同步脉冲宽度 = HSYNC = HWH(Hsync Width)
"VPW" Vsync Pulse Width 垂直同步脉冲宽度 = VSYNC = VWH(Vsync Width)
"HS Blanking" Hsync Blanking 水平同步消隐 = HS Pulse Width + HS Back Porch
"Vs Blanking" Vsync Blanking 垂直同步消隐= Vs Pulse Width + VS Back Porch
"One Horizontal Line"= Hs Blanking (thb) + Horizontal Display Area (thd) + HS Front Porch (thfp)  
"th = (thb+thd+thfp)"   一行有多少个像素时钟(Pixel)周期
"One Vertical Frame "= Vs Blanking (tvb) + Vertical Dsiplay Area (tvd) + Vs Front Porch (tvfp)
"tv = (tvb+tvd+tvfp)"   一帧有多少个行(Line)周期
"bpp" bit per pixel 每个像素的位数,主控端设置bpp实际是<根据面板每像素位数>来设置<framebuffer的颜色深度>,也即每像素数据需

屏幕1

屏幕spec:

由于屏幕的奇偶屏,所以表中的clk都需要乘2,才是真正的屏幕clk,H的时间也得乘2

于spec中没有给出前后肩参数,在设备树中配置前后肩的总和需跟H Total Time V Total Time加起来一致。即
htotal = hactive+hfront-proch+hback-proch+hsync-len=1024*2
vtotal =vactive+vfront-porch+vblack-porch+vsync-len = 728
pclk = htotal * vtotal * fps ;8
pclk = 44.7M * 2 = 89.4M

2.屏幕2:

由图中可知
hactive = 1920
htotal = hactive + hbp + hfp + hsyn-len = 2028
hblanking = hbp + hfp + hsyn-len = 108 这里取hbp = 50 hfp = 50 hsyn-len = 8

vacive = 720
vtotal = vactive + vbp + vfp + vsync-len = 758
vbp+vfp+vsync-len = 38 这里取vbp = 17 vfp = 17 vsync-len = 8
pclk = 2024 * 758 * 60 = 92051520

### LCD屏幕 Timing时序原理 LCD屏幕的timing时序是指控制显示器上每个像素刷新和更新时间间隔的一系列参数。这些参数对于确保图像清晰、稳定至关重要,任何不准确都会导致图像模糊、闪烁或失真[^2]。 #### LinuxLCD的抽象图解析 Linux内核提供了一种高层次的抽象来描述LCD控制器如何与硬件交互。这种抽象模型有助于理解不同组件之间的关系以及它们是如何协同工作的。通过这种方式可以更直观地看到VSYNC(垂直同步)、HSYNC(水平同步)信号以及其他重要定时脉冲的作用[^1]。 #### 数据手册中的示意图说明 制造商通常会在其产品文档里给详细的时序图表,这包括但不限于: - **帧周期(Frame Period)**:完成一行扫描所需的时间; - **行周期(Line Period)**:每条线的数据传输持续期间; - **前/后肩(Porch Time)**:在有效视频数据之前或之后留有的空白时间段; 这些图形化表示帮助开发者更好地掌握具体设备的要求并据此调整驱动程序配置。 #### Timing时序波形图解释 实际应用中使用的波形图展示了各种电平变化情况下的理想状态曲线。例如,在一个完整的场周期内,可以看到VSYNC下降沿触发新的一轮画面渲染过程;而HSYNC则决定了每一行何时开始被写入新内容。此外还有DE(数据使能)等其他辅助信号共同作用于整个显示流程之中。 ### 设置方法概述 为了正确设定LCD屏的timing时序,一般需要遵循以下几点指导原则: ```c // 定义关键参数结构体 struct lcd_timing_params { uint32_t hsync_len; // HSync长度 uint32_t vsync_len; // VSync长度 uint32_t hor_back_porch; // 水平后肩宽度 uint32_t ver_back_porch; // 垂直后肩高度 }; void configure_lcd(const struct lcd_timing_params *params) { // 配置寄存器以匹配所需的timings... } ``` 开发人员应当参照目标面板的技术规格书所提供的推荐值来进行初始化操作,并可能还需要经过多次测试迭代才能达到最佳视觉效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值