DSI
1. 简介
DSI(Display Serial Interface)是一种用于显示面板与显示控制器之间的高速串行通信接口,主要由移动设备、嵌入式系统、平板电脑和其他需要高性能显示的系统广泛使用。它由MIPI(移动行业处理器接口,Mobile Industry Processor Interface)联盟制定,是一种标准化的接口协议,旨在减少设备的引脚数量并优化功耗。
2. 硬件连接
Luckfox Omni3576 开发板默认支持的 DSI 屏幕型号为 10.1-DSI-TOUCH-A。如需使用其它的屏幕,用户需自行修改相关设备树配置,详见SDK 环境部署《设备树配置》,在 Omni3576 底板上,CSI(摄像头)和DSI(显示器)两个接口的封装是相似的。在接线时需要注意不要接错。 DSI 接口则位于 USB 接口旁。请注意,如果您使用的是其他底板,具体的布局可能会有所不同,请以您所使用底板的布局为准。
- 使用 22PIN 的 FPC 排线,将显示屏 DSI 接口连接到 Luckfox-Omni3576 底板的 DSI 接口。(注意:排线的蓝色端朝上)
- 将显示屏的电源接口连接到 Luckfox-Omni3576 底板的 40pin 引脚上的 5V 和 GND 上。如下图所示:

3. 查看屏幕信息
当前系统中可用的屏幕 ID 可通过以下命令查看:
sudo cat /sys/kernel/debug/dri/0/summaryVideo Port0: DISABLED
Video Port1: ACTIVE
Connector:DSI-1 Encoder: DSI-203
bus_format[100a]: RGB888_1X24
overlay_mode[0] output_mode[0] SDR[0] color-encoding[BT.709] color-range[Full]
Display mode: 800x1280p60
clk[70000] real_clk[69883] type[48] flag[a]
H: 800 840 860 880
V: 1280 1300 1304 1324
Fixed H: 800 840 860 880
Fixed V: 1280 1300 1304 1324
Esmart1-win0: ACTIVE
win_id: 1
format: XR24 little-endian (0x34325258) pixel_blend_mode[0] glb_alpha[0xff]
color: SDR[0] color-encoding[BT.601] color-range[Limited]
rotate: xmirror: 0 ymirror: 0 rotate_90: 0 rotate_270: 0
csc: y2r[0] r2y[0] csc mode[0]
zpos: 1
src: pos[0, 0] rect[800 x 1280]
dst: pos[0, 0] rect[800 x 1280]
buf[0]: addr: 0x00000000fe44e000 pitch: 3200 offset: 0
Video Port2: DISABLED
4. 旋转屏幕
旋转命令:
xrandr -o left
xrandr -o right
xrandr -o normal
xrandr -o inverted使用 xrandr 旋转的效果是一次性的,系统重启后屏幕显示方向会还原。 如果要开机自动旋转,则需要修改配置文件:
sudo vim /etc/X11/xorg.conf.d/10-monitor.conf
### Valid values for rotation are "normal", "left", "right"
Section "Monitor"
# Identifier "Default Monitor"
Identifier "DSI-1"
Option "Rotate" "right"
EndSection
5. 触摸校准
系统显示旋转后,触摸方向不一致,需要按下文操作进行触摸旋转:
sudo vim /etc/udev/rules.d/99-luckfox-touch.rules根据自己的旋转方向,加入对应的配置,保存后重启开发板。
90度:
ENV{ID_INPUT_TOUCHSCREEN}=="1", ENV{LIBINPUT_CALIBRATION_MATRIX}="0 -1 1 1 0 0"
180度:
ENV{ID_INPUT_TOUCHSCREEN}=="1", ENV{LIBINPUT_CALIBRATION_MATRIX}="-1 0 1 0 -1 1"
270度:
ENV{ID_INPUT_TOUCHSCREEN}=="1", ENV{LIBINPUT_CALIBRATION_MATRIX}="0 1 0 -1 0 1"