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.整个框架流程
基本概念如下:
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(二)基本概念和特性