i.MX 8M Plus是NXP推出的一款具有高可靠性,适合用于机器学习和视觉、高级多媒体和工业物联网的处理器。为发挥其强大的多媒体性能,启扬在i.MX8M Plus配套底板上引出1 路 4 通道 MIPI-DSI 显示接口、1 路双通道 LVDS 显示接口、1 路 HDMI 显示接口(内含 eARC 功能),支持三屏同显和三屏异显。

今天小编将简单分享一下启扬IAC-IMX8MP-Kit开发板在连接LVDS屏幕的过程中所进行的一系列调试过程。

注意:本文不着重于硬件的适配过程,只从软件角度分析,默认LVDS屏幕连接正确,背光等连接正常。

工具:启扬IAC-IMX8MP-Kit开发板、1920x1080@60双通道LVDS屏幕

1、 分析屏幕手册

首先,我们需要查看LVDS屏幕的datasheet,然后从中找出屏幕引脚图说明,如图所示:

从上图我们可以看出该屏幕是一个双通道的LVDS屏幕,一般来说这种屏幕的颜色模式是3x8bit。

从数据手册中我们能看到LVDS接口类型和信号格式。一般来说LVDS显示屏有VESA和JEIDA两种接口标准,两种接口标准的区别在于每对低压差分信号上传输的R、G、B三色的位数和HS、VS、DE位置不同。8bit液晶屏需要4对差分对传输R、G、B三色和HS、VS、DE控制信号,如下图所示

根据下面数据手册中内容与上图接口标准的对照,我们可以看出本次调试使用的LVDS屏幕的接口标准属于VESA标准。

除了上述信息外,我们还需要timing参数,这个参数能够详细地表述屏幕的显示区域,在数据手册中显示如下图所示

一般来说,我们需要Vactive+vbp+vfp+vsync以及Hactive+hbp+hfp+hsync还有时钟等信息,这些参数有的屏幕手册会详细写出,而有的则给出如上图类似的信息。

这里笔者给大家简要说明一下参数的关系,具体参数的意义因篇幅原因大家可以搜专业的解说帖子。

图中V_active以及H_active就是我们屏幕实际的分辨率参数,也就是1920*1080。上图中H_active之所以显示为960,这是因为该屏幕是一个分割屏幕,由两块儿屏幕组装而成,所以Horizontal显示的参数都要乘以2。

图中TVB=bp+fp+sync,所以vbp+vfp+vsync=36、hbp+hfp+hsync=92x2=184,时钟这里直接给出是70.5Mhz,因此不需要进行计算。

以上就是数据手册中上我们需要在意的参数部分。

此外我们需要重点关注的还有电压电流以及上电时序等信息,只是这部分信息一般情况下都由硬件工程师通过硬件手段帮忙适配。如果需要参与软件控制也不属于LVDS适配层面,那么这里就不再过多的讲述,那么就期待我们下章关于代码部分的适配工作吧。

2、  软件代码适配

本次启扬i.MX8M Plus开发板需要适配一款1920*1080@60 的双通道LVDS屏幕,适配流程与以往i.MX系列的适配仅需要在相关设备节点写timing不同,本次屏幕适配采用DRM驱动框架适配,因此我们需要先从设备树开始入手。

不着重分析DRM驱动以及详细的适配过程,仅从修改适配方向入手,为如何快速的适配一组LVDS屏幕提供参考。

打开设备树文件(arch/arm64/boot/dts/freescale/imx8mp-qiyang-NV156FHM.dts)。

这里为适配多屏而单独新建了一个设备树文件,这样就可以加载不同的设备树点不同的屏幕,避免了在同一个设备树上持续更改的繁琐。

首先,#include一行直接带入主设备树,将开发板周边设备一同囊括进来。

其次,lvds0_panel_pwr节点是通过适配开发板上的电源管理芯片,将电源管理芯片的输出电压拉到lvds上使用,所以lvds供电由一个电源管理芯片来控制。

lvds0_panel节点主要是描述lvds的相关属性。例如compatible属性是为了匹配DRM相关驱动,因为此次适配的是一个双通道的屏幕,所以写“regulator-fixed”属性;backlight节点是背光节点;power节点引用上面lvds0_panel_pwr节点,描述电源的部分;重要的是port节点,该节点指明LVDS屏幕是接在哪个显示通道上,需要结合下面ldb节点的内容来看。

(这里只是简单描述一下这些节点的意思,具体包含的详细信息需要查看启扬开发板内核资料

Documentation/devicetree/bindings/media/video-interfaces.txt)

lvds-channel@0节点表示显示适配器开通了一个lvds的通道,然后该通道有mapping以及width两个属性,mapping表示颜色的模式,width表示数据宽度,这里我们根据屏幕数据手册的内容可以直接写spwg以及24。

port@1表示使用的是通道1。现在图形处理器日益强大,很多图形处理器可以开多通道,这里我们就开一个通道,然后将端点设置为我们上面描述的lvds,这样的话我们就把ldb部分给配通了。

(更加详细的解释可以到提供的开发板系列资料Documentation/devicetree/bindings/display/imx/ldb.txt查看。)

总结一下就是我们需要在显示适配器开通一个通道,然后这个通道是用来点lvds的,具体点哪个lvds需要endpoint节点的指引,然后再描述lvds,一般里面要写具体是哪个屏幕,电源,背光等一系列信息,还要跟ldb的内容互通,这样保证两者能够相互找到,启动之后驱动就会根据compatible节点去匹配屏幕。

启扬i.MX8M Plus开发板适配LVDS屏幕的调试思路相关推荐

  1. 基于stm32物联网开发板(2)--LCD屏幕

    基于stm32物联网开发板(2)–LCD屏幕 LCD应用展示: LCD屏幕应用 1.概述 屏幕尺寸为1.3寸,分辨率240*240,颜色格式RGB565,驱动IC:ST7789VW: 超大可视角度:大 ...

  2. I.MX8M mini物联网开发板框架及屏幕接口详解

    本文由用户robe.zhang发表于电路城论坛试用板块  主要内容: 1.imx8m mini 框架 2.核心板系统框架 3.开发板系统框架 4.屏幕接口详解 5.总结 1.imx8m mini 框架 ...

  3. 【安信可ESP32语音开发板专题②】ESP32-Audio-Kit 开发板适配百度dueros例程实现在线语音功能,与开发板对话聊天。

    文章目录 前言 一.准备工作 1.硬件准备 2.软件准备 二.验证ESP-ADF是否正常 1. 代码简单修改 2.播放MP3测试 三.dueros 例程适配 1.替换连接文件 2.内存卡准备 3. 代 ...

  4. 【HaaS Python适配】AliOS-Things HAAS-Python ESP32-C3开发板适配和编译

    AliOS-Things HAAS-Python ESP32-C3适配和编译 版本:v1.0 作者:乔楚.李志清 日期:2022-04-26 主要处理说明: 引用esp-idf v4.4 独立espr ...

  5. 海凌科7621开发板适配新版openwrt

    最近在海凌科买了一块7621的开发板,flash是32M的,ddram是256M的,性价比感觉不错,海凌科提供的openwrt是比较旧的版本,在openwrt最新的19.07版本里已有的硬件都有一定的 ...

  6. 迅为i.MX8M mini开发板Andaoid9系统测试4G

    可以看出来,我的系统上目前有一个网络设备,如下图所示: 关闭以太网.wifi(防止干扰,非必须) ifconfig wlan0 down ifconfig etho down 然后开发板连接屏幕,点击 ...

  7. imx8系列-迅为i.MX8M Mini开发板Android9如何编译驱动到内核

    迅为I.MX8MM 开发平台是基于恩智浦的 NXP i.MX 8M Mini 处理器设计开发的一款产品.NXP i.MX 8M Mini 处理器致力于提供出色的视频和音频体验,将媒体的特定功能与针对低 ...

  8. ESP32开发板连接TFT屏幕

    前言 esp32连接tft屏幕踩了很多坑,也查阅了很多资料,这里简单总结一下,希望能为像我一样的小白排一下坑. ESP32的引脚 关于esp32的引脚功能,官方给出的文档写的比较多,官方文档如下: E ...

  9. 基于VC709开发板的光纤收发的调试与实现,以及过程中遇到的问题与解决。

    VC709是xilinx旗下的一款开发板,搭载了强大的Virtex-7芯片.有着丰富存储资源,时钟资源与高速接口.具体可参考xilinx官网的ug887手册,本次主要是想记录一下自己的学习过程与遇到的 ...

最新文章

  1. 百度Q3财报里的“大生意”
  2. Object类的用法(三)
  3. UIBezierPath 的使用介绍
  4. 从一个数组中提取出第start位到第end位
  5. Django入门教程(二)
  6. 使用named_mutex实现读写锁,实现进程之间读共享写独占
  7. Lync Server 2010的部署系列_第六章 安装配置拓扑生成器、前端Server、前端池
  8. 浅谈js中的this
  9. 使用VS2008在windows平台上试用Kinect
  10. 网络安全实验四 防火墙技术的具体应用
  11. tomcat 的 catalina.out 日志文件,禁用
  12. BottomNavigationView的基本使用
  13. phP imageMagic抠图,使用 Lua + ImageMagick 轻松批量抠图
  14. idea用JAVA连接mysqlAccess denied for user ‘root‘@‘localhost‘ (using password: YES)错误
  15. 写在清明(2007年)
  16. 2017暑期实习招聘-产品经理-微软WDGAE(2)-第3轮面试
  17. matlab响应曲面设计,响应曲面法与设计
  18. VCN中文编程平台的优势(二)——产品的价格
  19. CUDA--延迟隐藏
  20. 火山视窗文件框基本操作介绍

热门文章

  1. python对word文档内容进行批量替换_python 使用win32com实现对word文档批量替换页眉页脚...
  2. 虚幻引擎_材质+后处理实现中国风水墨渲染
  3. int与Bigdemical的转换
  4. 京瓷2010复印a4内容不全_京瓷复印机问题集
  5. 观《科幻概论》有感(下)
  6. 你是如何成为 Lisp 程序员的(转)
  7. 苹果手机数据恢复软件|易我iOS恢复大师免费下载
  8. 彻底丢失的电子数据怎么恢复
  9. 在Web页上模拟(QQ)魔法表情
  10. 【Excel】复制的时候,只选择筛选的部分,不选择隐藏的部分