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设备树修改笔记(熟悉新平台从点灯大法开始)


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

目录
相关文章
|
Ubuntu Linux 网络安全
Linux服务器之Ubuntu的安装与配置
Ubuntu Desktop是目前最成功、最流行的图形界面的Linux发行版;而Ubuntu Server也在服务器端市场占据了较大的份额。今天为大家详细介绍了Ubuntu Server的安装与配置,希望对你能有所帮助。关于VMware、VirtualBox等虚拟化软件的使用,朱哥还会在后续的文章中为大家详细介绍,敬请关注!
|
11月前
|
存储 Linux 开发工具
Linux环境下使用Buildroot配置软件包
使用Buildroot可以大大简化嵌入式Linux系统的开发和维护工作,但它需要对Linux系统和交叉编译有深入的理解。通过上述步骤,可以有效地配置和定制软件包,为特定的嵌入式应用构建高效、稳定的系统。
1104 11
|
关系型数据库 MySQL Java
安装和配置JDK、Tomcat、MySQL环境,以及如何在Linux下更改后端端口。
遵循这些步骤,你可以顺利完成JDK、Tomcat、MySQL环境的安装和配置,并在Linux下更改后端端口。祝你顺利!
794 11
|
Kubernetes Linux 网络安全
Rocky Linux 8.9配置Kubernetes集群详解,适用于CentOS环境
初始化成功后,记录下显示的 `kubeadm join`命令。
905 0
|
监控 Linux 开发者
理解Linux操作系统内核中物理设备驱动(phy driver)的功能。
综合来看,物理设备驱动在Linux系统中的作用是至关重要的,它通过与硬件设备的紧密配合,为上层应用提供稳定可靠的通信基础设施。开发一款优秀的物理设备驱动需要开发者具备深厚的硬件知识、熟练的编程技能以及对Linux内核架构的深入理解,以确保驱动程序能在不同的硬件平台和网络条件下都能提供最优的性能。
659 0
|
运维 监控 中间件
Linux运维笔记 - 如何使用WGCLOUD监控交换机的流量
WGCLOUD是一款开源免费的通用主机监控工具,安装使用都非常简单,它可以监控主机、服务器的cpu、内存、磁盘、流量等数据,也可以监控数据库、中间件、网络设备
|
安全 Linux 网络安全
在Linux(CentOS和AWS)上安装更新的git2的方法并配置github-ssh
经过以上这些步骤,你现在就能在GitHub上顺利往返,如同海洋中的航海者自由驰骋。欢迎你加入码农的世界,享受这编程的乐趣吧!
669 10
|
Linux 网络安全 开发工具
在Linux下配置gitee与Github的远程仓库
注意,git push后,是输入你的账号与密码。这个步骤可以通过特殊设置省去,但是一开始还是不要太省。
779 0
|
人工智能 Kubernetes Ubuntu
linux配置IP
linux配置IP
6060 1
|
监控 Shell Linux
Android调试终极指南:ADB安装+多设备连接+ANR日志抓取全流程解析,覆盖环境变量配置/多设备调试/ANR日志分析全流程,附Win/Mac/Linux三平台解决方案
ADB(Android Debug Bridge)是安卓开发中的重要工具,用于连接电脑与安卓设备,实现文件传输、应用管理、日志抓取等功能。本文介绍了 ADB 的基本概念、安装配置及常用命令。包括:1) 基本命令如 `adb version` 和 `adb devices`;2) 权限操作如 `adb root` 和 `adb shell`;3) APK 操作如安装、卸载应用;4) 文件传输如 `adb push` 和 `adb pull`;5) 日志记录如 `adb logcat`;6) 系统信息获取如屏幕截图和录屏。通过这些功能,用户可高效调试和管理安卓设备。
10987 2

热门文章

最新文章