全志平台对LCD屏幕的timing时序参数配置

一、概述

        全志平台在board.dts(或sys_config.fex)文件的lcd0节点中,对LCD屏幕的timing时序参数进行了配置。

        时序参数对于调屏非常关键,决定了发送端(SoC)发送数据时序。由于涉及到发送端和接收端的调试,除了分辨率和尺寸之外,其它几个数值都不是绝对不变的,两款一样分辨率,同种接口的屏,它们的数值也有可能不一样。

二、timing获取方式

        最好的获取方式是通过询问LCD屏厂获得确切的时序参考值。其次或是从屏手册或者Driver IC手册中查找(向屏厂索要这些文档)。

        至少需要从屏厂获得Width(屏宽),Height(屏高),HBP,HFP,HSW,VBP,VFP,VSW的数值。

三、全志board.dts中屏时序参数说明

lcd_x

含义:显示屏的水平像素数量,也就是屏分辨率中的宽。
数值:对应屏厂Width。

lcd_y

含义:显示屏的垂直行数,也就是屏分辨率中的高。
数值:对应屏厂Height。

lcd_hspw

含义:Horizontal Sync Pulse Width。指行同步信号的宽度。单位为1个dclk的时间(即是1个data cycle的时间)。
数值:对应屏厂HSW。

lcd_hbp

含义:Horizontal Back Porch。指有效行间,行同步信号(hsync)开始,到有效数据开始之间的 dclk 的 cycle 个数,包括同步信号区。
数值:是包含了hspw段,也就是lcd_hbp = 实际的hbp + 实际的hspw。对应屏厂HBP+HSW。

lcd_ht

含义:Horizontal Total time。指一行总的 dclk 的 cycle 个数。
数值:lcd_ht = lcd_x + lcd_hspw + lcd_hbp + lcd_hfp。对应屏厂Width+HSW+HBP+HFP。
由上面公式可知,我们不需要设置lcd_hfp参数,因为驱动会自动根据其它几个已知参数中算出lcd_hfp。

lcd_vspw

含义:Vertical Sync Pulse Width。指场同步信号的宽度。单位为行。
数值:对应屏厂VSW。

lcd_vbp

含义:Vertical Back Porch。指场同步信号(vsync)开始,到有效数据行开始之间的行数,包括场同步信号区。
数值:是包含了vspw段,也就是lcd_vbp = 实际的vbp + 实际的vspw。对应屏厂VBP+VSW。

lcd_vt

含义:Vertical Total time。指一场的总行数。
数值:lcd_vt = lcd_y + lcd_vspw + lcd_vbp + lcd_vfp。对应屏厂Height+VSW+VBP+VFP。
由上面公式可知,我们不需要设置lcd_vfp参数,因为驱动会自动根据其它几个已知参数中算出lcd_vfp。

lcd_dclk_freq

含义:Dot Clock Frequency。传输像素传送频率。单位为MHz。
数值:lcd_dclk_freq = lcd_ht * lcd_vt * fps,fps一般是60。注意lcd_dclk_freq数值取整数,单位是MHz。
如果是串行接口,发完一个像素需要2到3个周期的,那么,
lcd_dclk_freq * cycles = lcd_ht * lcd_vt * fps 或者 lcd_dclk_freq = lcd_ht * cycles * lcd_vt * fps。

实例演练

假如调试一款mipi屏,通过询问屏厂获得了屏的时序参数如下:
Width-200,Height-400,HBP-120,HFP-130,HSW-60,VBP-20,VFP-40,VSW-40。

Width-200,Height-400,HBP-120,HFP-130,HSW-60,VBP-20,VFP-40,VSW-40。

lcd_x 	      ---------------------> Width(200)
lcd_y		  ---------------------> Height(400)
lcd_hspw	  ---------------------> Hsw(60)
lcd_hbp		  ---------------------> HBP+HSW(120+60=180)
lcd_ht		  ---------------------> Width+HSW+HBP+HFP(200+60+120+130=510)
lcd_vspw 	  ---------------------> VSW(40)
lcd_vbp		  ---------------------> VBP+VSW(20+40=60)
lcd_vt		  ---------------------> Height+VSW+VBP+VFP(400+40+20+40=500)
lcd_sclk_freq ---------------------> lcd_ht * lcd_vt * fps,fps一般是60,结果取整,单位是MHz(510*500*60=15300000),即15M

那么,对board.dts文件中的屏时序相关参数配置如下:

        lcd_x               = <200>;
        lcd_y               = <400>;
        lcd_dclk_freq       = <15>;

        lcd_hbp             = <180>;
        lcd_ht              = <510>;
        lcd_hspw            = <60>;
        lcd_vbp             = <60>;
        lcd_vt              = <500>;
        lcd_vspw            = <40>;
  • 30
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

春风从不入睡、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值