RK3568系列15——MIPI屏幕配置
RK提供的RK3568样板默认都是基于MIPI屏幕的,因此有很多DTS配置可以参考。唯一需要注意的是必须从屏幕厂商拿到一个启停屏幕的控制命令,才可以正常控制屏幕的开关。
预备知识
- MIPI是一种专为嵌入式设计的通用接口,目的就是使各个部件标准化
- MIPI分为MIPI DSI(用于显示屏)、MIPI CSI(用于摄像头)等
- MIPI DSI采用:4对差分数据线传输数据,1对差分信号传输时钟信号
原理图分析
- 一个用于控制屏幕供电开关的GPIO
- 一个用于控制屏幕背光升压电路的GPIO
- 一个屏幕RESET信号GPIO
配置要点
- 使能
dsi0的同时要使能video_phy0,同理使能dsi1的同时要使能video_phy1
命令序列配置
详细说明请参考《Rockchip_Developer_Guide_DRM_Panel_Porting_CN&EN》的3.3 Command章节。
命令格式
Data Type, Delay, Payload Length, [Payload]
- Data Type:占1个字节,表示这条命令的类型
- Delay:占1个字节,表示当前命令执行完
x毫秒后再执行下一条命令 - Payload Length:参数的长度
- Payload:可选,具体参数
命令示例
39 00 04 B8 FF 83 94
- Data Type:0x39 -> DCS Long Write
- Delay:0x00 -> 0ms(不延时)
- Payload Length:0x04 -> 参数长度为4个字节
- Payload:0xB8 0xFF 0x83 0x94 -> 具体参数
05 14 01 29
- Data Type:0x05 -> DCS Short Write, no parameters
- Delay:0x14 -> 20ms(上条命令执行完毕后,延时20ms开始执行)
- Payload Length:0x01 -> 参数长度为1个字节
- Payload:0x29 -> 具体参数
常用命令类型
- DCS Short Write(no parameters):0x05
- DCS Short Write(1 parameters):0x15
- DCS Long Write:0x39
- Generic Short Write(no parameters):0x03
- Generic Short Write(1 parameters):0x13
- Generic Short Write(2 parameters):0x23
- Generic Long Write:0x29
转换示例
项目采用的MIPI屏幕使用的芯片是ILI9881C,厂家给了一个基于C语言的命令序列,部分内容如下:
1 |
// initial-command |
我们只需要使用任意一个文本编辑器的查找替换功能,就可以轻松的转换为DTS中配置的命令序列,唯一需要手动修改的部分是Delay延时的设置。替换完成后的命令如下:
,0x->" ");->""Generic_Long_Write_3P(0x->29 00 04Generic_Short_Write_1P(0x->13 00 02DCS_Short_Write_NP(0x->05 00
1 |
panel-init-sequence = [ |
DTS配置
关于屏幕参数配置请参考前文《RK3568系列14——屏幕参数公共配置》。
1 |
&pinctrl { |
遇到的问题
- 给定的MIPI屏复位信号电压必须是1.8V,板子没有设计电压电平转换电路,临时从1.8V的VCCIO4的无用信号飞线出来后解决,等待改版
参考文档
- RKDocs/common/display/Rockchip_Developer_Guide_DRM_Panel_Porting_CN.pdf
- RKDocs/common/display/Rockchip_Developer_Guide_DRM_Panel_Porting_CN&EN.pdf