首页
  • GM-3568JHF
  • M4-R1
  • M5-R1
  • SC-3568HA
  • M-K1HSE
  • CF-NRS1
  • CF-CRA2
  • 1684XB-32T
  • 1684X-416T
  • C-3568BQ
  • C-3588LQ
  • GC-3568JBAF
  • C-K1BA
商城
  • English
  • 简体中文
首页
  • GM-3568JHF
  • M4-R1
  • M5-R1
  • SC-3568HA
  • M-K1HSE
  • CF-NRS1
  • CF-CRA2
  • 1684XB-32T
  • 1684X-416T
  • C-3568BQ
  • C-3588LQ
  • GC-3568JBAF
  • C-K1BA
商城
  • English
  • 简体中文
  • M4-R1

    • 一、简介

      • M4-R1简介
    • 二、快速上手

      • 01 OpenHarmony概述
      • 02 镜像烧录
      • 03 应用开发快速上手
      • 04 设备开发快速上手
    • 三、应用开发

      • 01 ArkUI

        • 1 ArkTS语言简介
        • 2 UI 组件-Row 容器介绍
        • 3 UI 组件-Column 容器介绍
        • 4 UI 组件-Text 组件
        • 5 UI 组件-Toggle 组件
        • 6 UI 组件-Slider 组件
        • 7 UI 组件-Animation 组件&Transition 组件
      • 02 资料获取

        • 1 OpenHarmony 官方资料
      • 03 开发须知

        • 1 Full-SDK替换教程
        • 2 引入和使用三方库
        • 3 HDC调试
        • 4 命令行恢复出厂模式
        • 5 升级App为system权限
      • 04 构建第一个应用

        • 1 构建第一个ArkTs应用-HelloWorld
      • 05 案例

        • 01 串口调试助手应用案例
        • 02 手写板应用案例
        • 03 数字时钟应用案例
        • 04 WIFI 信息获取应用案例
    • 四、设备开发

      • 1 Ubuntu环境开发

        • 01 环境搭建
        • 02 下载源码
        • 03 编译源码
      • 2 使用DevEco Device Tool 工具

        • 01 工具简介
        • 02 开发环境的搭建
        • 03 导入SDK
        • 04 HUAWEI DevEco Tool 功能介绍
    • 五、内核外设与接口

      • 01 指南
      • 02 设备树介绍
      • 03 GPIO介绍
      • 04 I2C通讯
      • 05 SPI通信
      • 06 PWM 控制
      • 07 串口通讯
      • 08 TF卡
      • 09 屏幕
      • 10 触摸
      • 11 Ethernet(以太网)
      • 12 M.2 硬盘
      • 13 音频
      • 13 WIFI & BT
      • 14 摄像头
    • 六、资料下载

      • 资料下载
  • M5-R1

    • 一、简介

      • M5-R1简介
    • 二、快速上手

      • 镜像烧录
      • 环境搭建
      • 下载源码
    • 三、外设与接口

      • 树莓派接口
      • GPIO 接口
      • I2C 接口
      • SPI通信
      • PWM控制
      • 串口通讯
      • TF Card
      • 屏幕
      • 触摸
      • 音频
      • RTC
      • Ethernet
      • M.2
      • MINI-PCIE
      • Camera
      • WIFI&BT
    • 四、资料下载

      • 资料下载

09 屏幕

1 主流显示接口介绍

嵌入式设备和消费电子产品中。MIPI DSI、eDP 和 HDMI 是三种主流的显示接口,用于在主机(如 SoC、电脑、手机主板)和显示器(屏幕)之间传输视频数据和指令。 它们各有侧重,应用于不同的领域。下面我将为您详细介绍这三种显示方式。

1.1 MIPI屏幕

MIPI(Mobile Industry Processor Interface,移动产业处理器接口)是一个由 MIPI 联盟 制定的、专为移动设备(如智能手机、平板电脑、笔记本电脑、物联网设备、汽车等)设计的一系列开放标准,具备低功耗,高集成度和抗干扰能力强的特点。

MIPI接口不是单一接口,MIPI 联盟主要是为移动处理器定制标准接口和规范,开发的接口广泛应用于处理器、相机、显示屏、基带调制解调器等设备。常见的接口是MIPI DSI(显示屏接口) 和 MIPI CSI(摄像头接口),本文只介绍MIPI DSI

MIPI接口 MIPI DSI 接口分为数据线和时钟线,均为差分信号。数据线可选择 1/2/3/4 lanes,时钟线有一对,最多 10 根线,RK3568 默认使用 4 lanes 来驱动 MIPI 屏幕,当然了,对于小尺寸的屏幕,也可以使用 2 lanes 来驱动。对于 MIPI DSI 接口而言,最常用的就是 2 lanes 和 4 lanes。

RK3568 有一个 MIPI DSI 接口,所以也有一个 MIPI DSI 主控外设,用于完成 MIPI DSI 屏幕的驱动。此 MIPI DSI HOST 内核符合 MIPI 协议, MIPI DSI HOST 用于连接内核和 D-PHY, RK3568 的 MIPI DSI HOST 接口支持 1~4Lane。

RK3568 的 MIPI DSI HOST 控制器支持的特性如下:

  • 兼容 MIPI 联盟标准
  • 支持 DPI 接口颜色映射,支持 16/18/24bit 色深
  • 所有 DPI 接口信号极性可编程
  • 最高支持 4Lane 的 D-PHY 数据 Lane
  • Data0 支持双线通信和 Escape 模式
  • 可以传输所有的 Generic 命令
  • 支持 EOTP 包

RK3568 的 MIPI DSI HOST 控制器框图如下图所示:

MIPI控制器框图 (关于更详细的介绍或对以上内容存疑问,请以官网数据为准:https://www.mipi.org/)

1.2 HDMI屏幕

HDMI 全称为 High Definition Multimedia Interface,也就是高清多媒体接口,是一个纯数字的音视频传输接口,通过一根线同时发送音视频数据。目前在电视、显示器、电脑、机顶盒等领域得到了广泛的使用。

瑞芯微的 RK3568 芯片原生自带了 HDMI外设接口,可以用来连接 HDMI 显示器,本章我们就来学习一下如何使用 RK3568 的 HDMI 接口。

HDMI的结构框图如下所示:

HDMI结构框图

图中的几个通道实现的功能是:

  • TMDS:传输音视频数据
  • CEC:实现遥控器功能
  • DDC:实现屏幕分辨率自适应,通过 DDC 获取不同屏幕的参数信息
  • HPD:实现热插拔 HDMI一共有五种接口如下:
HDMI接口类型

最常用的接口类型是Type A 口,我们的M4-R1开发板搭载的也是Type A 口

下面介绍一下Type A 接口,其对应的引脚图和引脚定义如下图所示:

HDMI引脚定义 RK3568 自带一个 HDMI TX 外设,可以用来连接 HDMI 显示器。 RK3568 的 HDMI 接口支持 1.4a 和 2.0a 版本,为消费类电子提供了一个方便的屏幕连接方式,比如 DVD、播放器、摄像机等。 RK3568 的 HDMI 外设包括一个 HDMI 传输控制器和一个 PHY, RK3568 HDMI 支持的特性如下:

①、视频格式:

  • CEA-861-E 标准所支持视频格式, 1080p@60Hz 或者 720p/1080i@120Hz
  • HDMI 1.4b 支持的视频格式有:
    • CEA-861-E 视频格式最高到 1080p@120Hz
    • 支持 4K× 2K
    • 支持 3D 视频(TMDS 时钟最高 340MHz)
  • 支持 HDMI 2.0 视频格式

②、色彩支持: RGB 4:4:4

③、像素时钟: 13.5MHz-600MHz

④、最高支持 IEC60958 标准的 192KHz 音频采样率

⑤、支持 I2C DDC、 EDID 块读取模式

⑥、最高支持 2160p@60Hz, RGB 4:4:4

(关于更详细的介绍或对以上内容存疑问,请以官网数据为准:https://www.hdmi.org/)

1.3 eDP屏幕

eDP(Embedded DisplayPort,嵌入式 DisplayPort)是一种专为内部连接设计的数字显示接口标准。它由视频电子标准协会(VESA)制定,旨在作为笔记本电脑、平板电脑、一体机等设备中主板与内置显示屏之间的主要互联标准。eDP接口通常使用FPC 接口,连接在主板上面,笔记本电脑通常采用eDP屏幕,并且屏幕上面还有数字麦克风和摄像头,屏幕也可以选择触摸功能。

eDP接口

简单来说,eDP 就是 DisplayPort 标准在嵌入式领域的优化和延伸版本。它继承了 DisplayPort 的高性能特性,并针对嵌入式设备的空间、功耗和成本要求进行了增强。

eDP结构图

eDP接口组成:

  • Main-Link(主通道):用于传输 视频/音频 数据,高速差分对构成(TX0~TX3),最多 4 通道(Lane),但有些屏只用 2 Lane
  • AUX CH(辅助通道):低速单对差分线(AUX+/-),用于传输配置命令和参数
  • HPD(Hot Plug Detect):表示热插拔检测通道,用于检测HPD信号由Sink端(屏幕)驱动,通知 Source 端是否有设备接入(选配)

RK3568 eDP 支持的特性如下:

特性规格
支持版本eDP 1.3
最大分辨率2560x1600 @ 60Hz
数据通道(Lane)最多4条物理通道
色彩深度最高支持 10bit RGB 输出
辅助通道(AUX)支持 AUX CH 通信
热插拔检测(HPD)支持 Hot Plug Detect
面板自刷新(PSR)支持 Panel Self Refresh

(关于更详细的介绍或对以上内容存疑问,请以官网数据为准:https://www.edp.com/zh-hans/node)

1.4 总结

以上三种显示接口就是目前最主流的高性能屏幕接口,如果要从三者中进行选择的话,最大的区别可能就是接口大小了:

  • MIPI DSI 接口:如果你的设备是手机屏幕这类小型设备,那么毫无疑问推荐小巧的MIPI DSI 接口
  • eDP接口:如果是笔记本电脑这类稍大的移动设备,那就选择接口大小适中的eDP接口屏幕
  • HDMI接口:如果是台式电脑显示器、电视等个人使用的固定大屏设备,就推荐使用HDMI、DP 这类体积较大但速度不俗的接口

2 三种屏幕的板卡接口

2.1 MIPI DSI接口

板卡MIPI接口

2.2 HDMI接口

板卡HDMI接口

2.3 eDP接口

板卡eDP接口

3 屏幕DTS配置与切换方式介绍

3.1 原理介绍

由于rk3568的三款屏幕接口(MIPI DSI、HDMI、eDP)的设备树过于复杂,往往一个外设涉及好几个设备树文件,受限于篇幅以及考虑到各位朋友大部分是入门选手,所以本章以及后续部分章节我们将只对部分板级配置文件进行分析,总结出一些核心内容给大家进行讲解,致力于让大家能够了解这些相对复杂的外设模块,未能为大家提供文件地址。

在此之前,先给大家介绍2个基础概念:

1 VOP(Video Output Processor) 是RK3568的视频输出处理器,负责管理所有显示输出,一共有三个视频端口vp0、vp1、vp2。 VOP路由决定哪个视频管道连接到哪个显示接口,具体内容如下表所示:

视频端口路由配置目标接口
vp0vp0_out_dsi0MIPI DSI0
vp0vp0_out_dsi1MIPI DSI1
vp0vp0_out_edpeDP
vp0vp0_out_hdmiHDMI
vp1vp1_out_dsi0MIPI DSI0
vp1vp1_out_dsi1MIPI DSI1
vp1vp1_out_edpeDP
vp1vp1_out_hdmiHDMI
vp1vp1_out_lvdsLVDS
vp2vp2_out_lvdsLVDS
vp2vp2_out_rgbRGB

2 PHY(Physical Layer) 是物理层接口,负责数字信号与物理传输介质之间的转换,不同的屏幕接口需要不同的PHY,具体内容如下表所示。

PHY类型节点名称基地址功能描述
Video PHYvideo_phy00xfe850000用于MIPI DSI接口的物理层信号处理
Video PHYvideo_phy10xfe860000用于MIPI DSI接口的物理层信号处理
eDP PHYedp_phy0xfdcb0000专门用于eDP接口的物理层处理
HDMI PHY内置PHY-HDMI控制器内置PHY功能,通过rockchip,phy-table配置不同频率下的PHY参数

3.2 MIPI DTS 配置

&dsi0 {
    status = "okay";

    dsi0_panel: panel@0 {
        compatible = "simple-panel-dsi";
        reg = <0>;
        backlight = <&backlight>;
        prepare-delay-ms = <2>;
        reset-delay-ms = <100>;
        init-delay-ms = <20>;
        enable-delay-ms = <120>;
        disable-delay-ms = <50>;
        unprepare-delay-ms = <20>;
        width-mm = <68>;
        height-mm = <121>;

        dsi,flags = <(MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST |
                      MIPI_DSI_MODE_LPM | MIPI_DSI_MODE_EOT_PACKET)>;
        dsi,format = <MIPI_DSI_FMT_RGB888>;
        dsi,lanes = <4>;

        pinctrl-names = "default";
        pinctrl-0 = <&mipi_power_en>;
        enable-gpios = <&gpio3 RK_PB6 GPIO_ACTIVE_HIGH>;

        panel-init-sequence = [
            05 64 01 11
            39 00 04 FF 98 81 03
            /* ... 更多初始化命令 ... */
        ];
    };
};

&dsi0_in_vp1 {
    status = "okay";
};

&route_dsi0 {
    status = "okay";
    connect = <&vp1_out_dsi0>;
};
  • compatible = "simple-panel-dsi" : 通用DSI面板驱动
  • dsi,lanes = <4> : 4通道数据传输
  • dsi,format = <MIPI_DSI_FMT_RGB888> : RGB888颜色格式
  • dsi,flags : DSI工作模式(视频模式、突发模式等)
  • enable-gpios : 面板使能GPIO控制
  • panel-init-sequence : 面板初始化命令序列
  • connect = <&vp1_out_dsi0> : 连接到VOP的VP1端口

3.3 EDP DTS 配置

&edp {
	status = "okay";
	force-hpd;

	ports {
		port@1 {
			reg = <1>;

			edp_out: endpoint {
				remote-endpoint = <&panel_in>;
			};
		};
	};
};

&route_edp {
	status = "okay";
	connect = <&vp1_out_edp>;
};

&edp_phy {
	status = "okay";
};

&edp_in_vp0 {
	status = "disabled";
};

&edp_in_vp1 {
	status = "okay";
};

&edp_panel {
	power-supply = <&vcc3v3_lcd0_n>;
};

&backlight {
	status = "okay";
	enable-gpios = <&gpio3 RK_PB5 GPIO_ACTIVE_HIGH>;
	pinctrl-names = "default";
	pinctrl-0 = <&backlight_en>;
};
  • 控制器启用 : status = "okay" 启用eDP控制器
  • 热插拔检测 : force-hpd 强制热插拔检测
  • 端口连接 :通过 ports 节点定义输出端点,连接到面板输入
  • VOP路由 : route_edp 配置连接到VOP1输出( vp1_out_edp )
  • 物理层 :启用eDP PHY( edp_phy )
  • 输入端点 :禁用VOP0输入( edp_in_vp0 ),启用VOP1输入( edp_in_vp1 )
  • 电源管理 :面板电源供应配置为 vcc3v3_lcd0_n
  • 背光控制 :通过GPIO3_PB5控制背光使能

3.4 HDMI DTS 配置

&hdmi {
	status = "okay";
	rockchip,phy-table =
		<92812500  0x8009 0x0000 0x0270>,
		<165000000 0x800b 0x0000 0x026d>,
		<185625000 0x800b 0x0000 0x01ed>,
		<297000000 0x800b 0x0000 0x01ad>,
		<594000000 0x8029 0x0000 0x0088>,
		<000000000 0x0000 0x0000 0x0000>;
};

&hdmi_in_vp0 {
	status = "okay";
};

&hdmi_in_vp1 {
	status = "disabled";
};

&hdmi_sound {
	status = "okay";
};

&route_hdmi {
	status = "okay";
	connect = <&vp0_out_hdmi>;
};
  • 控制器启用 : status = "okay" 启用HDMI控制器
  • PHY参数表 : rockchip,phy-table 定义了不同频率下的PHY配置参数
    • 支持92.8MHz到594MHz的频率范围
    • 每行包含:频率、配置寄存器1、配置寄存器2、配置寄存器3
  • VOP路由 :启用VOP0输入( hdmi_in_vp0 ),禁用VOP1输入( hdmi_in_vp1 )
  • 音频支持 :启用HDMI音频( hdmi_sound )
  • 路由配置 : route_hdmi 连接到VOP0输出( vp0_out_hdmi )

3.5 切换屏幕显示方式

目前M4-R1支持MIPI0,EDP,HDMI,3种显示方式,默认显示为MIPI0+HDMI同显。

需要切换屏幕使用时,修改文件 out/kernel/src_tmp/linux-5.10/arch/arm64/boot/dts/rockchip/rk3568-toybrick-x0-linux.dts:

使用MIPI0:

/dts-v1/;
#include "rk3568.dtsi"
#include "rk3568-linux.dtsi"
#include "rk3568-toybrick-x0.dtsi"
#include "rk3568-toybrick-mipi-tx0-beiqicloud.dtsi"
//#include "rk3568-toybrick-mipi-tx1.dtsi"
//#include "rk3568-toybrick-edp.dtsi"

使用EDP:

/dts-v1/;
#include "rk3568.dtsi"
#include "rk3568-linux.dtsi"
#include "rk3568-toybrick-x0.dtsi"
//#include "rk3568-toybrick-mipi-tx0-beiqicloud.dtsi"
//#include "rk3568-toybrick-mipi-tx1.dtsi"
#include "rk3568-toybrick-edp.dtsi"
在 GitHub 上编辑此页
上次更新:
贡献者: fxx, hjf
Prev
08 TF卡
Next
10 触摸