展锐平台屏调试

概览

根据展锐LCD配置相关文档,Display模块包括3大块:DPU、DSI、DPHY。

  • 核心模块DPU(Display Processing Unit)与显示相关,主要负责图层合成、图像变换、刷新屏幕等。
  • DSI(Display Serial Interface)和 DPHY 与通讯有关,负责打包和传送数据。 上层程序将需要显示的图像绘制好并写到DDR的buffer中,然后DPU从buffer中取数据进行合成后送往DSI中进行打包,DPHY将打包好的数据通过mipi总线送往PANEL进行显示
    在这里插入图片描述
    所以数据传输分为三步:
  1. 上层程序将需要显示的图像绘制好并写到DDR的缓冲区中
  2. DPU从缓冲区中取数据进行合成后送往DSI中进行打包
  3. DPHY将打包好的数据通过MIPI(Mobile Industry Process Interface,移动产业处理器接口)总线送往PANEL进行显示。

屏的驱动调试就需要配置上面说到的2)和3)两步的速率,即pixel-clk(或bit-clock)和mipi phy clock

相关参数

如下uboot(或lk)中的初始化数据格式
在这里插入图片描述
在初始化话函数中,会将init_data强制转化为dsi_cmd_des结构体,然后以dcs或generic方式发送出去(相关概念可以参考链接
在这里插入图片描述
显示相关基础知识可以参考如下链接:

  1. LCD基本原理
  2. LCD常用接口原理篇
  3. LCD驱动调试篇
    在这里插入图片描述

相关clock的计算

展锐屏涉及到的clock有两个,pixel-clock和 phy_freq(其他平台可能叫mipi clock)

pixel-clock = (hsync + hfp + hbp + hactive)x (vsync + vfp +vbp + vactive) x fps

pixel clock是像素时钟,所以一秒钟传输的总的数据量为:
bit-clock = pixel-clock * 3 * 8
(一个像素包括R,G,B,这里假设为rgb888,每个分量占8bit)

mipi以4lan输出到屏所以
phy_freq = bit-clock *1.2 / 4
这里乘以1.2是考虑到mipi在组包的过程中加上SOF/EOF以及其他的一些额外信息,所以我们尽量稍微大于总的图像的数据量

计算示例:
在这里插入图片描述
使用展讯的clock计算工具
在这里插入图片描述
pixel_clk = W * H * fps = 1132 * 1948 * 60 = 132,308,160
由于展讯的pixel_clock的时钟源只有几个,可能有些时钟达不到
在这里插入图片描述
代码中pixel_clk是从dpi_clk_src分频出来的,所以必须要被dpi_clk_src整除,我们计算出的60帧的pixel-clk为132308160不能分频出来,所以稍微降低帧率,将pixel-clk设置为128M

总的的数据量为12800000038
所以phy_clk = 12800000038 * 1.2 / 4lane = 921,600,000

至此我们就已经算出pixel_clk和phy_clk

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

autho

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

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

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

打赏作者

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

抵扣说明:

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

余额充值