Linux MIPI DSI驱动调试笔记-LCD时序参数配置(三)

简介: Linux MIPI DSI驱动调试笔记-LCD时序参数配置(三)

前面我们介绍了一些MIPI LCD的基础知识以及LCD初始化序列的配置:


Linux MIPI DSI LCD设备驱动开发调试细节学习笔记(一)


Linux MIPI DSI驱动调试笔记-设备树DCS格式序列之配置LCD初始化代码(二)


要点亮MIPI DSI接口的LCD,我们还有一个非常重要的配置,那就是屏幕的时序,时序就是点屏的基础,大部分LCD提供的数据手册都大同小异;由于没搞过这块驱动的调试,我还很担心怕这个月都搞不定;但是我确实太低估自己的能力了,没想到居然就只用了不到一天时间不到就把一个完全没用过的屏给点起来了!所以我告诉自己,以后要自信点,不要怕,上来就是肝才是正道!

1、LCD屏幕显示原理

与纯 RGB 显示屏同理, MIPI DSI 显示参考下图:

640.png

之前有一篇文章也写得很好,结合学习会很有收获:


图解LCD硬件原理 && 调色板与Framebuffer原理

1.1、垂直方向

直接干Datasheet,关于垂直方向,我们只需要关心以下几个参数就可以了:

640.png

640.png

垂直方向:


  • tvd :垂直方向的分辨率
  • tv :整个垂直方向的周期
  • tvpw :vysnc 脉冲宽度
  • tvb :上边黑框 ===> vbp ===> Vertical Back porch ===> 垂直后肩
  • tvfp :下边黑框 ===> vfp ===> Vertical Front porch ===> 垂直前肩
1.2、水平方向

直接干Datasheet,关于水平方向,我们只需要关心以下几个参数就可以了:

640.png

640.png

水平方向:


  • thd :水平方向的分辨率
  • th : 整个水平方向的周期
  • thpw :hsync 脉冲宽度
  • thb :左边黑框 ===> hbp ===> Horizontal Back porch ===> 水平后肩
  • thfp :右边黑框 ===> hfp ===> Horizontal Front porch===> 水平前肩

2、MIPI DSI 设备树时序配置

接下来我们照着以上的几个参数,结合数据手册里提供的典型参数往设备树里的时序列表里填,最终时序部分如下:

display-timings {
  native-mode = <&timing0>;
  timing0: timing0 {
    clock-frequency = <51200000>; //DCLK
    hactive = <1024>;             //hactive
    vactive = <600>;              //vactive
    hfront-porch = <160>;         //hfp
    hsync-len = <70>;             //hsa
    hback-porch = <160>;          //hbp
    vfront-porch = <12>;          //vfp
    vsync-len = <10>;             //vsa
    vback-porch = <23>;           //vbp
    hsync-active = <0>;           //hync 极性控制 置 1 反转极性
    vsync-active = <0>;           //vsync 极性控制 置 1 反转极性
    de-active = <0>;              //DEN 极性控制
    pixelclk-active = <0>;        //dclk 极性控制
  };
};

其中 clock-frequencyDCLK 频率,查看以下规格书:

640.png

可知, DCLK 频率为 51.2Mhz ,所以这个参数就是51200000。


其中clock-frequency的计算公式是这样的:

clock-frequency = (h_active + hfp + hbp + h_sync) * (v_active + vfp + vbp + v_sync) * fps

根据以上公式我们还可以计算出fps

fps = 51200000 / (1024+160+160+70) * (600+23+12+10) = 51200000 / 912030 = 56Hz

这里的 56Hz 也就是屏幕的刷新率(fps)。


时序一搞定了,那离点屏就差10%了,今天就学习总结到这了,下期会继续分享怎么通过Linux终端确认MIPI DSI是否已经匹配到系统上。

往期精彩

一个强大的音视频编解码库-rkmedia的应用


瑞芯微RV1109配置7寸电容触摸屏的方向修改笔记


如何添加APP到Buildroot里(以瑞芯微rv1126为例)


瑞芯微RV1109配置GPIO设备树修改笔记(熟悉新平台从点灯大法开始)


新产品立项了,作为嵌入式软件工程师该如何来开展设计工作?(个人经验分享)

目录
相关文章
|
3月前
|
Ubuntu Linux 网络安全
Linux服务器之Ubuntu的安装与配置
Ubuntu Desktop是目前最成功、最流行的图形界面的Linux发行版;而Ubuntu Server也在服务器端市场占据了较大的份额。今天为大家详细介绍了Ubuntu Server的安装与配置,希望对你能有所帮助。关于VMware、VirtualBox等虚拟化软件的使用,朱哥还会在后续的文章中为大家详细介绍,敬请关注!
|
1月前
|
存储 Linux 开发工具
Linux环境下使用Buildroot配置软件包
使用Buildroot可以大大简化嵌入式Linux系统的开发和维护工作,但它需要对Linux系统和交叉编译有深入的理解。通过上述步骤,可以有效地配置和定制软件包,为特定的嵌入式应用构建高效、稳定的系统。
170 11
|
8月前
|
安全 Linux 开发工具
【Linux】vim使用与配置教程
Vim是一款功能强大的文本编辑器,广泛应用于Linux环境,是开发者和系统管理员的必备工具。本文介绍了Vim的基本操作与简单配置,涵盖命令模式、插入模式和底行模式的使用方法,以及光标定位、复制粘贴、搜索替换等常用技巧。同时,文章还提供了实用的分屏操作和代码注释方法,并分享了通过`.vimrc`文件进行个性化配置(如显示行号、语法高亮、自动缩进等)的技巧,帮助用户提升文本编辑效率。掌握这些内容,能让Vim更好地服务于日常工作与开发需求。
557 3
|
4月前
|
Kubernetes Linux 网络安全
Rocky Linux 8.9配置Kubernetes集群详解,适用于CentOS环境
初始化成功后,记录下显示的 `kubeadm join`命令。
259 0
|
4月前
|
监控 Linux 开发者
理解Linux操作系统内核中物理设备驱动(phy driver)的功能。
综合来看,物理设备驱动在Linux系统中的作用是至关重要的,它通过与硬件设备的紧密配合,为上层应用提供稳定可靠的通信基础设施。开发一款优秀的物理设备驱动需要开发者具备深厚的硬件知识、熟练的编程技能以及对Linux内核架构的深入理解,以确保驱动程序能在不同的硬件平台和网络条件下都能提供最优的性能。
270 0
|
6月前
|
安全 Linux
Slax Linux如何获取增强的会话管理与启动参数选项
以上就是关于在Slax Linux中获取增强的会话管理与启动参数选项的全过程。虽然在这个过程中可能会遇到暗礁和风浪,但只要我们用心驾驶,总能找到前行的道路。在旅程中,记得享受这中间的点点滴滴,因为这些都是你成长的痕迹。祝你在这片“数码海洋”中一帆风顺!
136 26
|
6月前
|
关系型数据库 MySQL Java
安装和配置JDK、Tomcat、MySQL环境,以及如何在Linux下更改后端端口。
遵循这些步骤,你可以顺利完成JDK、Tomcat、MySQL环境的安装和配置,并在Linux下更改后端端口。祝你顺利!
457 11
|
7月前
|
Linux Shell
shell_42:Linux参数移动
总的来说,参数移动是Linux shell脚本中的一个重要概念,掌握它可以帮助我们更好地处理和管理脚本中的参数。希望这个解释能帮助你理解和使用参数移动。
157 18
|
6月前
|
运维 监控 中间件
Linux运维笔记 - 如何使用WGCLOUD监控交换机的流量
WGCLOUD是一款开源免费的通用主机监控工具,安装使用都非常简单,它可以监控主机、服务器的cpu、内存、磁盘、流量等数据,也可以监控数据库、中间件、网络设备
|
5月前
|
Linux 网络安全 开发工具
在Linux下配置gitee与Github的远程仓库
注意,git push后,是输入你的账号与密码。这个步骤可以通过特殊设置省去,但是一开始还是不要太省。
313 0