1.linux系统中查看屏幕分辨率(通常是在设备树中进行配置的)

#2代设备,实际物理尺寸-1.9英寸
$cat /sys/class/graphics/fb0/virtual_size

170,320
#3代设备,实际物理尺寸-2.97英寸
$cat /sys/class/graphics/fb0/virtual_size
480,800

2.lcd外设选型参数

(1)物理尺寸
(2)硬件接口
外部接口种类:hdmi、vga,主要用于连接外部显示器
内部接口种类:mipi、LVDS、edp,主要用于连接移动端连接显示使用

mipi接口的lcd显示器(在配置dts文件时需要配置2部分内容:mipi接口相关内容和显示屏相关内容):
mipi引脚
lcd使能引脚(LCD_EN)
lcd复位引脚(LCD_RST)
背光使能引脚(BL_EN)

#用以下命令可以查看注册的gpio引脚(通常这些引脚是在dts文件中进行配置)
$cat sys/kernel/debug/gpio
GPIOs 96-127, platform/pinctrl, gpio3:
gpio-116 (                    |reset               ) out lo

mipi接口:
目的是把手机内部的接口如摄像头、显示屏接口、射频/基带接口等标准化,从而减少手机涉及的复杂程度,目前比较成熟的接口应用又DSI(显示接口)和CSI(摄像头接口)

lvds接口、mipi接口、edp接口区别
LVDS接口只用于传输视频数据,MIPI DSI(用于连接lcd,MIPI CSI用于连接摄像头,其中摄像头的接口还有DVP接口即cif接口)不仅能够传输视频数据,还能传输控制指令

(3)分辨率
(4)数据格式
lcd支持多种显示格式:例如32bit(4字节)、24bit(3字节)、16bit(2字节)等

#查看一个像素占据的的大小	
$cat /sys/class/graphics/fb0/bits_per_pixel

3.查看lcd显示屏驱动是否加载成功,出现以下信息表示驱动加载成功

#在调试阶段主要设置lcd的各个时序参数、时钟、mipi时钟等等
$demsg
[    0.893064] rockchip-drm display-subsystem: devfreq is not set
[    0.894892] rockchip-drm display-subsystem: bound ff460000.vop (ops 0xffffff8008871ec8)
[    0.896117] rockchip-drm display-subsystem: bound ff140000.syscon:rgb (ops 0xffffff8008869fb8)

4.整个框架流程

Linux内核DRM框架
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

基本概念如下:
1.Wayland:显示服务器,是一种协议
2.Weston:是Wayland协议的的实现
3.drm又包括:
drm framebuffer:
	它是一块内存区域,我把它理解为一块画布,驱动和应用层都能访问它
plane:
	图层
crtc:
	读取当前扫描缓冲区的像素数据,生成视频模式定时信号.它对内连接 Framebuffer 地址,对外连接 Encoder。它会扫描你画布(Framebuffer)上的内容,叠加上 Planes 的内容,传给 Encoder。
encoder:
	将内存的 pixel 像素 编码(转换)为显示器所需要的信号,比如 DVID、VGA、YPbPr、CVBS、Mipi、eDP 等
connector:
	直译为 连接器。Connector 常常对应于物理连接器 (VGA, DVI, FPD-Link, HDMI, DisplayPort, S-Video …) 他会连接将一个物理显示输出设备 (monitor, laptop panel, …)
	
基本流程:
app将画好的surface,通过wayland协议提供给compositor,compositor将来自各个应用的surface合成一帧,通过drm接口最终画在Framebuffer上。
#运行的compositor
weston --tty=2 -B=drm-backend.so --idle-time=0&

5.测试显示屏

$modetest -M rockchip
Encoders:
id      crtc    type    possible crtcs  possible clones
65      0       DPI     0x00000001      0x00000000

Connectors:
id      encoder status          name            size (mm)       modes   encoders
66      0       connected       DPI-1           23x43           1       65
  modes:
        name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot)
  170x320 1486 170 175 185 195 320 325 335 345 100000 flags: nhsync, nvsync; type: preferred

CRTCs:
id      fb      pos     size
60      0       (0,0)   (0x0)

Planes:
id      crtc    fb      CRTC x,y        x,y     gamma size      possible crtcs
58      60      0       0,0             0,0     0               0x00000001
  formats: XR24 AR24 XB24 AB24 RG24 BG24 RG16 BG16

$modetest -M rockchip -s 66@60:170x320

-M :用于指定访问rockchip drm driver
-s :<connector_id>@<crtc_id>:<mode>

6.参考文档

MIPI介绍(CSI DSI接口)
Mipi 接口 和 LVDS 接口区别
LVDS,MIPI,EDP
LCD支持的数据格式
Rockchip之RK3288解决MIPI屏花屏
从modetest 到 DRM driver
Linux 图形栈一览:基于 DRM 和 Wayland
Linux DRM(二)基本概念和特性

Logo

更多推荐