对国产板子有阴影?这些软硬件开源的ARM开发板可以学习Linux驱动开发
为了点亮一块MIPI屏幕,我们除了要了解MIPI DSI的工作原理之外,大前提要了解整个MIPI DSI图显系统的组成,更需要清楚点亮一块MIPI屏幕需要做哪些事情。
///插播一条:我自己在今年年初录制了一套还比较系统的入门单片机教程,想要的同学找我拿就行了免費的,私信我就可以哦~点我头像黑色字体加我地球呺也能领取哦。最近比较闲,带做毕设,带学生参加省级或以上比赛///
正文开始:
1. MIPI DSI图显系统组成
MIPI图显系统的硬件组成如下图表示:
MIPI DSI图显系统组成
图显处理器通过DPI接口将像素数据传输到MIPI DSI Host,MIPI D-PHY作为显示屏和DSI Host之间由物理媒介,将编码后的像素数据发送到MIPI显示屏。
对于MIPI DSI显示屏而言,无需MIPI信号转换的称之为panel,内部有数据信号转换桥片的称之为bridge。
整个MIPI图显系统除了基本的像素数据信号外,为了使整个显示系统能够正常工作,还包含其他与显示屏相关的控制信号,包括显示屏内部IC配置、显示屏背光配置、显示屏的复位和上电配置。
对于点亮一块MIPI屏幕而言,重中之重是要正确的配置显示屏参数,配置方式主要有如下3种:
·I2C或SPI等总线配置
·显示屏内部集成的MCU完成配置
·MIPI DSI DCS初始化序列
通过PWM来实现MIPI屏幕的背光控制,使用GPIO完成显示屏的复位、上电的控制。
在设备树中定义MIPI DSI图显系统的联结关系。
以RK3399为例,其提供了两路MIPI DSI通道,分别是dsi@ff960000和dsi1: dsi@ff968000,代表MIPI DSI host。
2050 dsi: dsi@ff960000 {
2051 compatible = "rockchip,rk3399-mipi-dsi";
2052 reg = ;
...
2083 dsi1: dsi@ff968000 {
2084 compatible = "rockchip,rk3399-mipi-dsi";
2085 reg = ;
...
RK3399芯片使用了Synopsy的DPHY。控制器与DPHY之间的关系如下图所示:
MIPI DSI设备树结点中有一个信息同MIPI显示密切相关,那就是时钟信息。可以看出MIPI DSI需要三路时钟,分别是ref、pclk、phy_cfg。
2050 dsi: dsi@ff960000 {
2051 compatible = "rockchip,rk3399-mipi-dsi";
...
2054 clocks = , ,
2055 ;
2056 clock-names = "ref", "pclk", "phy_cfg";
pclk是MIPI DSI host的APB时钟,用于配置MIPI DSI host寄存器以及中断等。ref和phy_cfg是MIPI DPHY所需时钟。这两路时钟由MIPI DSI host提供。其中ref时钟用于MIPI DPHY内部PLL产生主机侧的串行发送时钟。phy_cfg是在配置MIPI DPHY时使用。
4知识体系搭建
MIPI DSI同图显控制器vop之间在逻辑层面上的联结关系如下:
# MIPI DSI Host
dsi_in_vopb: endpoint@0 {
reg = ;
remote-endpoint = ;
};
dsi_in_vopl: endpoint@1 {
reg = ;
remote-endpoint = ;
};
# VOP
vopb_out_dsi: endpoint@1 {
reg = ;
remote-end