RK3399主板上GM8775C MIPI转LVDS调试

1 简介

XPC-3399 LVDS显示,使用GM8775C MIPI DSI 转LVDS发送器实现,该收发器特性如下:

GM8775C介绍

1、产品概述

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

该芯片主要应用于手持设备、双屏显示,大屏幕显示等应用需求。

2、产品特征

a) I/0 电源电压: 1.8V /3.3V;

b) core 电源电压: 1.8V;

c) 支持 MIPI® D-PHY 1.00.00 和 MIPI® DSI 1.02.00。

d) MIPI 支持 1/2/3/4 通道可选的传输方式, 最高速率 1Gbps/通道。

e) MIPI 接收 18bpp RGB666 、 24bpp RGB888 、 16bpp RGB565 的打包格式。

f) MIPI 支持 LPDT 传输(Low-Power Data Transmission)和反向 LPDT 传输。

g) LVDS 的时钟范围为 25MHz 到 154MHz。

h) LVDS 输出支持单/双通道模式。选择双通道模式时,可配置输出为 18/24bit,JEIDA/VESA 模式;选择单通道时,每通道可同时输出,且可单独配置输出模式(18/24bit, JEIDA/VESA 模式)。

i) LVDS 的输出数据通道可灵活调整顺序以方便 PCB 布线。

j) 可选择采用 MIPI 时钟或外部参考时钟做 LVDS 输出的参考频率,且支持自动校准功能。

k) 支持 MIPI command mode 配置和外部 I2C 配置两种芯片配置方式;

l) GPO 可以输出 PWM 信号,控制屏幕背光。

m) 封装: QFN48-pins with e-pad.

n) 工作温度: -40℃~85℃;

o) ESD 能力:≥2KV。

3、产品功能框图

1、MIPI支持1/2/3/4通道可选,最大支持4Gbps速率;

2、LVDS时钟范围25~154MHz,输出最大分辨可达FULL HD(1920 * 1200);

3、支持单/双通道LVDS:

① 选择双通道时,数据带宽可配输出18/24 bit,JEIDA/VESA模式;

② 选择单通道时,每通道可同时输出,且单独配置输出模式(18/24 bit,JEIDA/VESA 模式)。

2 硬件连接

2.1 XPC-3399 及LVDS接口实现介绍

XPC-3399 LVDS接口包括LVDS信号接口与背光(PWM亮度调节)接口,此外LCM通过GPIO上电、LCM电源兼容3.3V/5V/12V设计(通过跳线选择),如图2-1、图2-2、图2-3所示:

图2-1:LVDS数据信号接口

图2-2:PWM背光接口(CN16)

                                                   图2-3:GPIO4_D6控制LCM上电 

图2-4:LCM电源供给

MIPI输入为4 LANE,如图2-5所示:

图2-5: GM8775C 输入LANE

XPC-3399 支持8 bit 单/双通道的LVDS 的LCM,当驱动6bit LCM时,Y3(第三对差分信

号)悬空。

2.2 如何选择LCM

   从简介当中得知(或查看GM8775C 手册),GM8775C只支持18或24 bit的JEIDA或VESA模式单或双通道的LCD,且分辨率不能大于 1920 * 1200 像素。

以G156XW01 V0为例,确认前述LVDS数据带宽与标准、LVDS通道,在LCM手册中查看:

1、LVDS数据带宽与标准

找到输入数据格式图,从中确认RGB数量与组成,再行比对附录1 data mapping ,从而确认LVDS标准。

                                              图2-6 :G156XW01 V0输入数据格式 

图2-6中,RGB三基色均为8,即:R0~7、G0~7、B0~7。再看组合方式,与中VESA_8BIT排序一致,所以传输模式为VESA标准。

2.3 LVDS信号线连接

LVDS 信号线线序并没有统一标准,不同厂家的LCM其线序可能不同,因此在选定LCM后需要定制信号线。

XPC-3399支持单/双通道的LVDS显示器,单通道以G156XW01V0为例、双通道以M215HGEL21为例,介绍LCD面板与XPC-3399 LVDS接口(CN15)之间的信号连接。

1、单通道LVDS

单通道8位LVDS连接XPC-3399 的LVDS1_xxx 这一组信号,LVDS2_xxx这一组悬空。LCD面板G156XW01V0与XPC-3999的接线如图2-7所示:

                                                              图2-7

2、双通道LVDS

双通道8位LVDS,奇通道连接LVDS1_xxx这一组信号、偶通道连接LVDS2_xxx 这一组信号。LCD面板M215HGEL21与XPC-3999的接线如图2-8所示:

                                                                图2-8

3 时序适配

XPC-3399 LVDS(Linux) 驱动工作在于适配LCM时序,GM8775C提供了计算时序的工具,填入LCM对应的参数即可生成I2C/MIPI 控制指令,在此采用mipi指令。

以G156XW01 V0,使用“GM8775C_A1.1__IIC20190819”工具计算mipi指令,过程如下:

1、打开GM8775C_A1.1__IIC20190819程序

在Windows 系统中运行GM8775C_A1.1__IIC20190819,其界面如下:

                                                      图3-1:GM8775C 工具 

2、生成指令

查阅G156XW01 V0数据手册,完成工具的LVDS、MIPI功能区块与测试模式等的有关参数填写/选择,继而生成寄存器操作参数。

LVDS功能区块:

① 视频格式

找到LCM的时序特性表与时序图(非必须,视情况而定),将参数GM8775C工具的“视频格式”区域中。

行有效像素:对应图3-2中的 H-section -- Display Area,取典型值 1366

场有效像素:对应图3-2中的 V-section -- Display Area,取典型值 768

行前肩、行同步、行后肩:对应 DE mode的LCM,三者值之和等于图3-2中的 H-section -- Blanking的值,取典型值 200。对于sync mode的LCM,一般会给出各自的值或根据时序图计算。

场前肩、场同步、场后肩:对应 DE mode的LCM,三者值之和等于图3-2中的 V-section -- Blanking的值,取典型值 38。对于sync mode的LCM,一般会给出各自的值或根据时序图计算。

LVDS时钟(HMz):使用行、场周期与帧率计算,对图3-2中的Th、Tv、F,

clk  = Th * Tv * F = 1560 * 806 * 60 = 75441600 Hz

                                                              图3-2:G156XW01 V0 时序表 

② LVDS输出通道选择

从图2-5 输入数据格式可知只有一个数据通道,因此选择“单通道”。

③ LINK

据GM8775C手册,单通道模式是,每通道可同时输出,且可单独配置输出模式。因此,配置物理连接的通道即可。第二章已经确认G156XW01 V0为VESA、8 bit。

④ LINK0 与LINK1 P/交换

无交换,不需要配置。

⑤ LINK0与LINK1 LINE交换

无交换,不需要配置。

测试模式:

打开测试模式后,可现实ColorBar、White等效果,但不能正常logo、Android界面。我们旨在现实Android,因此关闭测试模式。

MIPI功能区块

① MIPI 配置

LAN数量:选择4

MIPI时钟(MHz):计算公式为:

Mipiclock = [ (width+hsync+hfp+hbp) *  (height+vsync+vfp+vbp) ]  * (bus_width) *  fps/ (lane_num)/2

= Th * Tv * 24 * 60 / 4 / 2

= 1560 * 806 * 24 * 60 / 4 / 2

= 226044000 Hz

② MIPI P/N交换

无交换,不需要配置。

③ 参考时钟选择

选择MIPI时钟

④ 控制方式

选择MIPI命令

填入/配置数据完成后,点击“创建寄存器表”,然后在点击“创建文件”,即可在工具的同一目录生成时序文件,文件名如:GM8775C_RegList20210625_181813.txt ,当中记录了寄存器与写入的值。寄存器表的值如图3-3所示:

                                                           图3-3:生成寄存器表 

3、写入dts

生成寄存器表适用于I2C操作,最终写入dts是mipi指令,simple display panel 驱动中,初始化LCD的时序写在panel-init-sequence属性中,其分为四个字节:

字节 0: DSC(Display Command Set)数据类型

字节 1:发送DSC指令后延时多少ms

字节 2:命令净荷长度

字节 3:从第三字节开始表示命令的有效payload。

GM8775C MIPI CMD需要使用短指令格式,指令格式为:

DATA ID(0x23)+REG(8bit)+DATA(8bit)

对应panel-init-sequence属性,其格式为:

注:payload的字节数等于命令净荷长度。

panel-init-sequence的数据类型、延时与命令净荷长度不变,将寄存器表中值替换payload两列,共34行。此处为数值为16进制,不需要加前缀0x。此外,还需要配置display-timings等,具体参考rk3399-xpc3399-rev00.dts。

4、烧写调试

重新编译Linux kernel,然后烧写resource.img。若参数配置正常,则能显示Android桌面。

  • 20
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值