0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

英创信息技术ESM6802双屏显示(LVDS+HDMI)设置

英创信息技术 来源:英创信息技术 作者:英创信息技术 2020-02-05 10:32 次阅读

1、ESM6802显示简介

ESM6802根据显示接口的不同分为两种版本,一种支持RGB显示接口,主要用于低分辨率显示;另外一种同时支持LVDS和HDMI显示接口,可以单独使用任意接口或者搭建LVDS+HDMI的双屏显示系统。用户购买时可根据自己的需要选择支持RGB的单屏显示型号或者支持LVDS+HDMI的双屏显示型号。

双屏显示设置包括:

●双屏运行不同的程序(Qt5程序)

●双屏运行相同的程序,程序自身负责同步

●双屏播放不同的视频

●双屏同步播放相同的视频

●一个屏幕运行程序,一个屏幕播放视频

●一个屏幕分块显示多个视频(单屏/双屏通用)

下面先简单介绍一下显示接口的设置。

设置显示接口需要设置U-Boot,我们已有默认设置可以满足大部分用户需求,目前我们的出厂设置是将LCD或者LVDS屏幕作为主屏(mxcfb0),HDMI屏幕作为附屏(mxcfb1),且HDMI屏幕设置为1920x1080M@60,if=RGB24,由于HDMI屏幕显示协议中有一个协商的部分,HDMI显示输出会根据我们的设备以及显示屏幕支持的分辨率进行选择,使用双方都支持的最大分辨率,所以用户一般不需要修改此配置。而修改LCD或者LVDS的配置可以用过我们提供的修改开机画面的命令flash_opt烧写正确分辨率的bmp图片,我们的系统就会在下一次开机自动修改LCD/LVDS屏幕的分辨率设置了。如此设置可以方便用户进行快速修改屏幕设置。

对于需要自行修改设置的用户,下面对设置方法进行简单介绍。开机调试串口显示Hit any key to stop autoboot时按下任意键进入U-Boot环境,输入命令 printenv video 查看默认设置:

=> printenv video

video=video=mxcfb0:dev=ldb,800x600M@60,if=RGB666 video=mxcfb1:dev=hdmi,1920x1080M@60,if=RGB24

输入命令setenv video video=设置 来设置显示输出,如:

=> setenv video video=mxcfb0:dev=ldb,800x600M@60,if=RGB666 video=mxcfb1:dev=hdmi,800x600M@60,if=RGB24

设置的格式为($数字表示变量,需要根据实际情况配置):

video=mxcfb$1:dev=$2,$3x$4M@$5,if=RGB$6

●$1可以取值0或1,单屏显示只需要设置为0, 双屏显示时0为主屏,会输出开机画面,1屏默认开机没有开启,输出显示时会自动打开。

●$2表示输出设备,可选值为lcd—RGB屏,ldb--LVDS屏,hdmi--HDMI屏。

●$3和$4表示屏幕分辨率。

●$5为屏幕刷新频率。

●$6为屏幕输出接口,常用接口为RGB565、RGB666、RGB24。

用户根据自己的实际情况设置此参数后,运行命令saveenv保存,然后运行命令boot开机。开机之后可以运行命令ls /dev/fb* 查看设置是否成功,其中fb0、fb2表示屏幕,fb1是fb0代表屏幕的左上部分。默认fb2没有开启,可以输入下面命令打开:

echo 0 > /sys/class/graphics/fb2/blank

用户在使用中可以让双屏显示不同应用程序或者一个屏幕运行图形界面程序,另外一个屏幕进行视频播放等,具体设置方法将在下面两章节(QT 5支持 和 多媒体音视频 )中分别进行介绍。用户阅读完下面的内容之后可以进行随意组合使用双屏显示不同或相同内容。

2、Qt5支持

ESM6802 文件系统已经移植好了Qt 5.5.1 版本,支持qml等Qt5新特性,并且已经移植好了tslib库来支持工业上比较常见的电阻触摸屏,用户可以方便的使用Qt 5来开发图形界面应用程序。ESM6802 文件系统中的Qt 5 使用 eglfs 平台,我们默认已经设置了环境变量 QT_QPA_PLATFORM=eglfs, 如果用户发现Qt 5 程序无法运行,请首先检查此环境变量是否被改变。ESM6802文件系统里面也提供了qmlscene程序用于运行qml文件,qmlscene程序在/usr/bin/qt5/文件夹下面。关于eglfs 以及更多Qt 5程序开发的相关知识请参考Qt 官网或其他资料,关于Qt 5开发环境的搭建请参考《ESM6802开发工具安装》文档,我们在此只简单展示qml运行效果。示例用的qml文件可以从光盘中获取,运行命令:

/usr/bin/qt5/qmlscene example_billborad.qml

运行效果如下图:

双屏设置:

Qt5运行于eglfs平台,与屏幕设置有关的环境变量为QT_QPA_EGLFS_FB,用户在运行Qt程序之前设置此环境变量就可以实现控制Qt程序在哪个屏幕上进行显示了,如下例在LVDS和HDMI屏幕上运行两个不同的Qt程序:

export QT_QPA_EGLFS_FB=/dev/fb0//第一个程序显示在fb0(LVDS)上

/usr/bin/qt5/qmlscene example_billborad.qml &

export QT_QPA_EGLFS_FB=/dev/fb2 //第二个程序显示在fb2(HDMI)上

./smarthome

运行效果如下图:

目前无法支持将一个应用程序的界面同时显示在两个屏幕上,如果用户需要实现此功能,需要在两个屏幕上同时运行相同的程序(以不同的QT_QPA_EGLFS_FB设置运行两次程序),然后在程序中使用Linux提供的进程同步机制来控制两个程序,从而达到两个屏幕同步显示相同内容。

3、多媒体音视频

ESM6802支持多种格式的音视频多媒体文件的播放,提供的函数接口是基于gstreamer的,运行命令gst-inspect-1.0 就可以查看系统支持的所有gstreamer plugins。

关于gstreamer 编程请参考官网文档及其他相关资料:

https://gstreamer.freedesktop.org/documentation/

ESM6802文件系统中的gst-launch-1.0 可以进行简单的播放展示,如果用户不需要对音视频播放进行暂停快进等特殊操作,也可以在应用程序中调用gst-launch-1.0进行简单的多媒体播放。ESM6802支持AVI、MP4、FLV、MPG2、MKV、RMVB常见视频格式最大分辨率1920x1080(1080p)的播放,以及常见音频格式如MP3、WMA和图片格式JPEG、PNG、GIF、BMP。

简单的视频播放可以使用如下命令:

gst-launch-1.0 playbin uri=file:///mnt/cloudy720p.mkv

播放效果如下图:

控制视频在不同屏幕上播放或这同时在两个屏幕上播放需要用到overlaysink插件(系统已经安装),配置overlaysink的文件为/usr/share/imx_6q_display_config , 配置格式如下:

[Display NAME]

必须配置,指明显示名称

device=

必须配置,指明设备文件,如/dev/video17(默认为LVDS/RGB)或/dev/video18(默认为HDMI)

fmt=

可选配置,设置显示格式,如RGBP、RGB565等,默认为RGBP

width=

height=

可选配置,设置显示分辨率

alpha=

可选配置,设置alpha(透明)值,默认0

color_key=

可选配置,颜色配置,默认关闭

具体配置示例如下:

# LVDS display

[master]

device = /dev/video17

fmt = RGBP

width = 1024

height = 768

alpha = 0

# HDMI display

[slave]

device = /dev/video18

fmt = RGBP

width = 1920

height = 1080

根据以上配置在不同屏幕(LVDS+HDMI)上同时播放不同视频的可用命令:

gst-launch-1.0 playbin uri=file:///mnt/cloudy720p.mkv playbin uri=file:///mnt/xpg.mp4 video-sink=”overlaysink display-master=false display-slave=true”

播放效果如下图所示:

如需在不同屏幕上播放相同视频可以运行如下命令:

gst-launch-1.0 playbin uri=file:///mnt/cloudy720p.mkv video-sink=”overlaysink display-master=true display-slave=true”

结合上一章Qt的介绍,可以在一个屏幕上运行程序,在另外一个屏幕上播放视频:

./smarthome &

gst-launch-1.0 playbin uri=file:///mnt/cloudy720p.mkv video-sink=”overlaysink display-master=false display-slave=true”

运行效果如下图:

视频播放还支持一个屏幕播放多个视频,可以使用如下命令:

gst-launch-1.0 playbin uri=file://$FILE1 video-sink=”overlaysink overlay-width=960 overlay-height=540” playbin uri=file://$FILE2 flags=0x41 video-sink=”overlaysink overlay-left=960 overlay-width=960 overlay-height=540” playbin uri=file://$FILE3 flags=0x41 video-sink=”overlaysink overlay-top=540 overlay-width=960 overlay-height=540” playbin uri=file://$FILE4 flags=0x41 video-sink=”overlaysink overlay-left=960 overlay-top=540 overlay-width=960 overlay-height=540”

运行效果如下图:

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    10991

    浏览量

    206736
  • 嵌入式主板
    +关注

    关注

    7

    文章

    6064

    浏览量

    34614
收藏 人收藏

    评论

    相关推荐

    带你玩转AM62x开发板的显示接口

    白色端口分别接入两块飞凌嵌入式的10.1寸LVDS显示屏,右侧黑色端口同样是接到OK6254-C开发板的LVDS接口上,这样即可实现双屏同显。   (3)
    发表于 01-11 09:09

    【ElfBoard】LVDS顺口溜:单八单六六到底是啥?

    一、接口定义 LVDS是一种低压差分信号技术接口,低压差分信号传输:输出接口利用非常低的电压摆幅(约350mV)在两条PCB走线或一对平衡电缆上通过差分进行数据的传输,采用LVDS输出接口,可以
    发表于 12-11 13:21

    求助,关于i.MX8MQ中是否支持同显的问题

    疑问: 1 我们的方案理论上,能够lvdshdmi同显吗?即运行一个QT app,然后在上面2个屏幕上显示同样的内容 2 如果1不行,那i.mx8mq支持双屏同显吗? 3 如果2不行
    发表于 11-13 06:31

    【手册上新】迅为RK3588开发板多显示手册

    iTOP-RK3588开发板采用四核Cortex-A76处理器和Cortex-A55架构,芯片内置VOP控制器,最多可以支持7个屏幕显示,支持HDMILVDS、MIPI、EDP四种显示
    发表于 11-07 10:37

    怎样解决LVDS时钟的EMI问题呢?

    随着电子技术的发展,我们的生活中充满着形形色色的电子产品,LCD显示屏便是其中之一,被广泛应用在手机,电脑,仪表等产品上,目前主流的LCD显示接口为RGB,LVDS,mipi和
    的头像 发表于 10-17 16:11 436次阅读
    怎样解决<b class='flag-5'>LVDS</b>时钟的EMI问题呢?

    LT8912B寄存器配置说明

    配置 LT8912B MIPI 输入参数(如下图):下图设置的 Timing 值要跟 MIPI 信号 Timing 保持一致。3、如果需要LVDS 输出去点,需要设置
    发表于 10-16 14:59

    信息技术是干什么?

    广播电子技术信息技术
    橙群微电子
    发布于 :2023年09月22日 09:17:48

    2023年中海达星推官系列直播再度启航,与您一起探讨空间信息技术

    信息技术
    中海达
    发布于 :2023年06月21日 11:45:49

    使用LVDS的i.MX8QM中的集群显示不工作怎么解决?

    使用 LVDS-to-HDMI 适配器连接两个显示器。根据Android 用户指南,其中一个显示屏显示汽车发射器,另一个显示屏
    发表于 06-09 07:43

    FPGA | LVDS屏幕接口的应用

    的一种数字视频信号传输方式。 LVDS是利用低电压差(典型值为350 mV)进行编码信息的。 LVDS信号的分为单路6位LVDS路6位
    发表于 06-05 17:31

    显示应用的高性能HDMI1.4至MIPI DSI/CSI/LVDS芯片LT6911C介绍

    龙迅LT6911C 显示应用的高性能 HDMI1.4 至 MIPI DSI/CSI/LVDS
    发表于 06-01 11:02 1663次阅读
    <b class='flag-5'>显示</b>应用的高性能<b class='flag-5'>HDMI</b>1.4至MIPI DSI/CSI/<b class='flag-5'>LVDS</b>芯片LT6911C介绍

    了解国产工控主板各类显示接口,助您打造高效工业控制方案

    为例,为您讲解各种接口的特点和应用场景。 LVDS 接口是一种显示接口,支持 1920 x 1080 像素的最大分辨率,可以与 eDP 或 HDMI 搭配实现双屏同显或异显,适用于广
    的头像 发表于 05-26 14:28 428次阅读

    迅为RK3568开发板Android 双屏/三同显

    。默认打开对应的宏定义为双屏同显或三同显。 可选择的双屏方案有如下所示: 方案一:MIPI 屏幕+LVDS7 寸 方案二:MIPI 屏幕
    发表于 05-26 11:02

    方法|TQ3568开发板显示屏如何动态切换

    ’号选项。 5、选择完毕后按下[s]保存后回到上层界面可以发现LVDS分辨率设置成功,如下图所示: 6、接下来按照同样的方法设置MIPI屏幕的分辨率。笔者使用的是‘5’寸的720*1280
    发表于 05-24 17:35

    HDMILVDS Logo在Yocto3.0 imx8mp平台无法全面怎么解决?

    我们的客户尝试了显示器。LVDS + HDMI 主要是LVDSHDMI
    发表于 05-06 08:54