RK3568—基于GM8775C的MIPI转双通道LVDS屏幕调试

本文详细介绍了如何在RK3568平台上利用GM8775C芯片将MIPIDSI信号转换为驱动1920x1080双通道LVDS屏幕的过程,包括屏幕参数获取、硬件连接、内核配置和驱动调试,适用于嵌入式开发者和Linux系统工程师。
摘要由CSDN通过智能技术生成

 Rockchip RK3568 原生显示接口不支持双通道LVDS屏幕的数据输出,因此需要借助显示转换芯片才能实现双通道LVDS屏幕的驱动。本文介绍使用GM8775C芯片方案,在 RK3568 平台实现单路 MIPI DSI 信号输出来驱动双通道LVDS显示屏。

关于GM8775C

GM8775C 型 DSI 转双通道 LVDS 发送器产品主要实现将 MIPI DSI 转单/双通道 LVDS功能,MIPI 支持 1/2/3/4 通道可选,每通道最高支持 1Gbps 速率,最大支持 4Gbps 速率。LVDS时钟频率高达 154MHz,最大支持视频格式为 FULL HD(1920 x 1200)。系统应用图如下:

 

双通道LVDS显示屏

在软件调试驱动显示屏之前,我们需要阅读显示屏规格书,从规格书中获取屏幕的引脚定义、分辨率、时钟频率、显示参数和信号模式等信息。下面以一个双通道LVDS屏幕为例,说明如何从其规格书中获取点屏所需要的主要参数。

由表格中 Display format 栏可知,此屏幕分辨率为 1920x1080

从通道数据映射表可知,该屏幕信号格式为VESA标准,并结合屏幕线序定义来确认两个LVDS通道的奇偶分布。

从以上描述得知,该屏幕每个颜色有8位,由规格书中的颜色分布表可确认该屏幕颜色格式为RGB888。

以时序表格中间一列典型值作为参考,可以获取到显示屏的扫描窗口参数。在帧率为60Hz的情况下,时钟频率约为147MHz。其中垂直方向,有效显示时钟周期为1080,空白周期为45;水平方向,有效显示周期为 960x2,空白周期为280。

RK3568 MIPI TX 显示接口

RK3568 具有两路 MIPI DSI ,单 MIPI 模式下支持 1920x1080@60Hz 显示输出。EVB3568 开发板硬件上使用MIPI_DSI_TX0 通道与 GM8775C 芯片连接,实现最大支持 1080P 的双通道 LVDS 显示屏驱动能力。

硬件连接如下图所示:

内核设备树配置

MIPI_DSI_TX0 在软件上对应于设备树中的 dsi0 节点,我们需要在设备树中将 dsi0 相关的配置开启,并在该节点下填写屏幕的参数。主要参数说明如下:

rockchip,lane-rate -- MIPI单通道带宽(单位Mbps)
power-supply -- 供电regulator
backlight -- 屏幕背光控制节点
dsi,format -- 数据输格式
dsi,lanes -- 通道个数
panel-init-sequence -- 屏幕初始化命令
dsi0_timing0 -- 时序设置

将从屏幕规格书上查阅到的参数填写至dsi0 节点的对于参数位置。

时序及时钟

dis0_timing0 中填写时序前后肩和同步等参数如下:

disp_timings0: display-timings {
  native-mode = <&dsi0_timing0>;
  dsi0_timing0: timing0 {
  clock-frequency = <148500000>;
  hactive = <1920>;
  vactive = <1080>;
  
  hfront-porch = <140>;
  hsync-len = <10>;
  hback-porch = <130>;

  vfront-porch = <20>;
  vsync-len = <10>;
  vback-porch = <15>;
  
  hsync-active = <0>;
  vsync-active = <0>;
  de-active = <0>;
  pixelclk-active = <0>;
  };
};
  • 其中前后肩和同步参数的总和对应于规格书中的 blanking;

  • clock-frequency 的计算公式:

clock-frequency = (hactive + hfront + hsync + hback)* (vactive + vsync + vback) * fps
                = (1920 + 140 + 10 + 130)*(1080 + 20 + 10 + 15)* 60
                = 148500000

通道数

输出信号使用单MIPI 4通道,dsi,lanes设置为 4;

数据格式

数据为每个颜色8bit 24位色,所以dsi,format 设置为 MIPI_DSI_FMT_RGB888 ;

通道带宽

MIPI 单线通道带宽计算公式如下:

lane-rate = (clock-frequency * 1000 * bpp / lanes ) * 10 /9
          = ((148500 * 1000 * 24) / 9) * 10 / 9
          = 990 000 000

rockchip,lane-rate 参数在缺省的情况下,内核驱动会自动计算。

初始命令

panel-init-sequence 需要填写 MIPI 向 GM8775C 芯片下发的寄存器参数,根据屏幕时序参数和硬件连接情况,此处借助 GM8775C 配套的上位机软件,在软件界面中设置屏幕的参数,即可得到转换好的实际寄存器设置参数。

上图红色框为我们设置的内容,其中 MIPI时钟需要设置为 rockchip,lane-rate 的二分之一;绿色框内为转换得到的寄存器参数列表。最终将其转换为Rockchip 平台的 panel-init-sequence 代码如下:

panel-init-sequence = [
      29 00 02 27 AA
      29 00 02 48 02
      29 00 02 B6 20
      29 00 02 01 80
      29 00 02 02 38
      29 00 02 03 47
      29 00 02 04 8C
      29 00 02 05 0A
      29 00 02 06 82
      29 00 02 07 00
      29 00 02 08 14
      29 00 02 09 0A
      29 00 02 0A 0F
      29 00 02 0B 82
      29 00 02 0C 12
      29 00 02 0D 01
      29 00 02 0E 80
      29 00 02 0F 20
      29 00 02 10 20
      29 00 02 11 03
      29 00 02 12 1B
      29 00 02 13 63
      29 00 02 14 01
      29 00 02 15 23
      29 00 02 16 40
      29 00 02 17 00
      29 00 02 18 01
      29 00 02 19 23
      29 00 02 1A 40
      29 00 02 1B 00
      29 00 02 1E 46
      29 00 02 51 30
      29 00 02 1F 10
      29 00 02 2A 01

      05 78 01 11
      05 14 01 29
    ];

文章篇幅有限,完整的参数配置可查看IDO-EVB3568开发板Linux SDK 中的 kernel\arch\arm64\boot\dts\rockchip\ido-rk3568-evb3568-dual-lvds.dts 文件。

IDO-EVB3568开发板Linux SDK链接:

https://pan.baidu.com/s/1L3WECV_8q6B-a_PWr3bqvw提取码:yms6

屏幕驱动效果

  • 9
    点赞
  • 64
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Industio_触觉智能

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值