Skip to content

Commit ebaa764

Browse files
committed
docs(accessories): add 4K HDMI IN to MIPI CSI-2 adapter guide
- add product introduction and ROCK 4D usage tutorial for the Radxa 4K HDMI IN to MIPI CSI-2 Adapter under accessories/display - extract the shared usage tutorial into a parameterized MDX partial (common/accessories/_hdmi-in-to-mipi-csi2-usage.mdx) so other boards can reuse it by passing board name, overlay names, audio cards and hardware connection images - rename the display category title from 高清显示屏 to 高清显示
1 parent 6fd6056 commit ebaa764

13 files changed

Lines changed: 722 additions & 2 deletions

File tree

‎docs/accessories/display/README.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@
22
sidebar_position: 1
33
---
44

5-
# 高清显示屏
5+
# 高清显示
66

77
<DocCardList />
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
---
2+
sidebar_position: 1
3+
---
4+
5+
# 瑞莎 4K HDMI IN 转 MIPI CSI-2 转接板
6+
7+
## 产品简介
8+
9+
**瑞莎 4K HDMI IN 转 MIPI CSI-2 转接板** 基于瑞芯微 RK628H 视频桥接芯片,可将 HDMI 视频信号转换为 MIPI CSI-2 信号,并从 HDMI 信号中提取 I2S 数字音频。
10+
11+
转接板提供 2-lane 和 4-lane 两种 MIPI CSI-2 接口,可帮助开发板快速接入 HDMI 摄像机、计算机及其他高清视频源,适用于视频采集、图像处理和嵌入式视觉应用。
12+
13+
<div style={{textAlign: 'center'}}>
14+
<img src="/img/accessories/display/hdmi-in-to-mipi-csi2/hdmi-in-to-mipi-csi2-view.webp" style={{width: '100%', maxWidth: '1200px'}} />
15+
</div>
16+
17+
## 主要特性
18+
19+
- **4K HDMI 输入**
20+
21+
最高支持 4K@30fps HDMI 视频输入,满足高清视频采集需求。
22+
23+
- **MIPI CSI-2 输出**
24+
25+
提供 2-lane 和 4-lane MIPI CSI-2 接口,其中 4-lane 接口最高支持 4K@30fps 视频输出。
26+
27+
- **RK628H 视频桥接**
28+
29+
基于瑞芯微 RK628H,实现 HDMI 至 MIPI CSI-2 视频信号转换。
30+
31+
- **HDMI 音频提取**
32+
33+
支持从 HDMI 输入信号中提取音频,并通过独立 I2S 接口输出数字音频信号。
34+
35+
- **EDID 管理**
36+
37+
支持通过 EDID 向 HDMI 信号源声明兼容的视频格式,提升不同 HDMI 信号源的接入兼容性。
38+
39+
- **兼容瑞莎 Z 版型**
40+
41+
可直接安装在瑞莎 Z 版型迷你主板上;用于其他版型时,可沿预留分板位置裁切扩展部分,灵活适配不同安装空间。
42+
43+
- **面向视觉开发**
44+
45+
适用于 HDMI 视频采集、图像处理、视频分析及嵌入式视觉应用。
46+
47+
## 产品规格
48+
49+
| 项目 | 规格 |
50+
| -------- | ---------------------------------------------------------------------------------------------------------- |
51+
| 处理器 | 瑞芯微 RK628H |
52+
| 视频输入 | HDMI 输入,最高支持 4K@30fps |
53+
| 视频输出 | 1x 2-lane MIPI CSI(15-Pin,1.0 mm 间距);1x 4-lane MIPI CSI(31-Pin,0.3 mm 间距),最高输出 4K@30fps |
54+
| 音频输出 | I2S 数字音频输出,引脚:DOUT、LRCK、SCLK、MCLK |
55+
| 辅助信号 | HDMI 检测、系统中断,信号:DET、INT |
56+
| 机械尺寸 | 30 x 65 mm |
57+
| 兼容产品 | ROCK 3C / ROCK 4D / ROCK 5A / ROCK 5B / ROCK 5B+ / ROCK 5C / ROCK 5T |
58+
59+
## 机械尺寸
60+
61+
<div style={{textAlign: 'center'}}>
62+
<img src="/img/accessories/display/hdmi-in-to-mipi-csi2/hdmi-in-to-mipi-csi2-dimension.webp" style={{width: '100%', maxWidth: '1200px'}} />
63+
</div>
64+
65+
## 配件清单
66+
67+
- 1x 瑞莎 4K HDMI IN 转 MIPI CSI-2 转接板
68+
- 1x AC006(31P 0.3 mm 转 31P 0.3 mm,异面 FPC 排线)
69+
- 1x AC014(15P 1.0 mm 转 15P 1.0 mm,异面 FPC 排线)
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
---
2+
sidebar_position: 2
3+
---
4+
5+
import HdmiInToMipiCsi2Usage from '../../../common/accessories/_hdmi-in-to-mipi-csi2-usage.mdx';
6+
7+
# 搭配 ROCK 4D 使用
8+
9+
<HdmiInToMipiCsi2Usage
10+
product="ROCK 4D"
11+
board="rock-4d"
12+
audio_bus="SAI2_M0"
13+
video_dev="/dev/video0"
14+
video_overlay="Enable Radxa 4K HDMI IN to MIPI CSI-2 Adapter on 4-lane CSI"
15+
audio_overlay="Enable SAI2-M0 capture-only dummy sound card"
16+
audio_capture_card="sai2capture"
17+
audio_playback_card="rockchipes8388"
18+
video_dtbo="rock-4d-radxa-hdmi-in-4k-rk628.dtbo"
19+
audio_dtbo="rk3576-sai2-2ch-m0-capture-only.dtbo"
20+
video_connection_img="/img/accessories/display/hdmi-in-to-mipi-csi2/hdmi-in-to-mipi-csi2-rock-4d-video.webp"
21+
audio_connection_img="/img/accessories/display/hdmi-in-to-mipi-csi2/hdmi-in-to-mipi-csi2-rock-4d-audio.webp"
22+
preview_img="/img/accessories/display/hdmi-in-to-mipi-csi2/hdmi-in-to-mipi-csi2-rock-4d-preview.webp"
23+
/>
Lines changed: 268 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,268 @@
1+
{props.product} 的 4-lane MIPI CSI 接口可以连接瑞莎 4K HDMI IN 转 MIPI CSI-2 转接板采集 HDMI 视频,转接板的 I2S 接口可以从 HDMI 信号中提取并输出数字音频。
2+
3+
- 视频:通过 {props.product} 的 4-lane MIPI CSI 采集
4+
- 音频:通过 {props.product} 的 {props.audio_bus}(I2S)采集
5+
6+
## 硬件连接
7+
8+
可以根据需要采集 HDMI 视频或音频。
9+
10+
### 采集 HDMI 视频
11+
12+
将 HDMI 输出设备(例如 PC 的 HDMI 输出口)连接到转接板的 HDMI IN 接口,再使用 FPC 排线(AC006,31P 0.3 mm 转 31P 0.3 mm,异面)把转接板的 4-lane MIPI CSI 接口连接到主板的 MIPI CSI 接口。
13+
14+
<div style={{textAlign: 'center'}}>
15+
<img src={props.video_connection_img} style={{width: '100%', maxWidth: '1200px'}} />
16+
</div>
17+
18+
### 采集 HDMI 音频
19+
20+
使用杜邦线连接主板和转接板的 I2S 接口。
21+
22+
:::info 说明
23+
24+
主板与转接板之间的排线已经共地,因此采集 HDMI 音频时不需要额外连接 GND。
25+
26+
:::
27+
28+
<div style={{textAlign: 'center'}}>
29+
<img src={props.audio_connection_img} style={{width: '100%', maxWidth: '1200px'}} />
30+
</div>
31+
32+
## 软件使能
33+
34+
更新 Radxa OS 自带的 `Rsetup` 工具,并启用转接板相关的 `Overlays`。
35+
36+
### 更新系统
37+
38+
进入 `System` → `System Update`,按提示完成更新。更新内容可能包含新的内核、RK628 驱动和 Overlay。
39+
40+
<NewCodeBlock tip={`radxa@${props.board}$`} type="device">
41+
42+
```bash
43+
sudo rsetup
44+
```
45+
46+
</NewCodeBlock>
47+
48+
### 启用设备
49+
50+
进入 `Overlays` → `Manage overlays`,勾选对应的选项:
51+
52+
- 采集 HDMI 视频:<code>{props.video_overlay}</code>
53+
- 采集 HDMI 音频:<code>{props.audio_overlay}</code>
54+
55+
:::note 说明
56+
57+
- 只采集视频时可以只启用视频项;需要音频时必须同时启用两项。
58+
- 不要同时启用其他占用同一个 MIPI CSI 接口或 {props.audio_bus} 引脚的 Overlay。
59+
60+
:::
61+
62+
保存设置后重启系统:
63+
64+
<NewCodeBlock tip={`radxa@${props.board}$`} type="device">
65+
66+
```bash
67+
sudo reboot
68+
```
69+
70+
</NewCodeBlock>
71+
72+
## 检查设备
73+
74+
使用以下命令确认 RK628 是否被正确识别:
75+
76+
<NewCodeBlock tip={`radxa@${props.board}$`} type="device">
77+
78+
```bash
79+
sudo dmesg | grep -i rk628
80+
```
81+
82+
</NewCodeBlock>
83+
84+
正确识别时会输出类似信息,出现 `rk628-csi-v4l2 found` 和 `New format` 后即可继续测试:
85+
86+
```text
87+
RK628 I2C driver version: 00.01.00
88+
rk628 version is: RK628F/H (20230321)
89+
rk628-csi-v4l2 found @ 0xa0 (rk3x-i2c)
90+
rk628_csi_format_change: New format: 1920x1080p60.00 (2200x1125)
91+
```
92+
93+
## 采集 HDMI 音视频
94+
95+
### 采集 HDMI 视频
96+
97+
在主板的图形桌面终端运行以下命令:
98+
99+
<pre style={{ whiteSpace: "pre-wrap", overflowX: "auto" }}>
100+
{`gst-launch-1.0 -e -v \\
101+
v4l2src device=${props.video_dev} do-timestamp=true ! \\
102+
video/x-raw,format=NV16,width=1920,height=1080,framerate=30/1 ! \\
103+
queue ! videoconvert ! glimagesink sync=true`}
104+
</pre>
105+
106+
正常情况下桌面会出现 HDMI 预览画面,按 `Ctrl+C` 停止运行。
107+
108+
如果画面出现花屏等现象,可以关闭主板电源,重新检查硬件连接后再次测试。
109+
110+
<div style={{textAlign: 'center'}}>
111+
<img src={props.preview_img} style={{width: '100%', maxWidth: '1200px'}} />
112+
</div>
113+
114+
### 录制 HDMI 音频
115+
116+
确认主板已连接耳机或音箱,并且 HDMI 输出设备的音频已经输出到 HDMI。
117+
118+
以下命令在后台保持约 8 秒视频取流,同时录制 5 秒 WAV 文件。由于 RK628 的音频输出需要视频采集链路保持运行,录制期间不能停止视频取流。
119+
120+
<pre style={{ whiteSpace: "pre-wrap", overflowX: "auto" }}>
121+
{`v4l2-ctl -d ${props.video_dev} \\
122+
--set-fmt-video=width=1920,height=1080,pixelformat=NV12 \\
123+
--stream-mmap=3 --stream-poll \\
124+
--stream-count=480 --stream-to=/dev/null \\
125+
>/dev/null 2>&1 &
126+
VIDEO_PID=$!
127+
128+
sleep 1
129+
130+
arecord \\
131+
-D hw:CARD=${props.audio_capture_card},DEV=0 \\
132+
-f S16_LE -r 48000 -c 2 \\
133+
-d 5 -t wav \\
134+
rk628-audio.wav
135+
136+
wait "$VIDEO_PID"`}
137+
</pre>
138+
139+
视频数据写入 `/dev/null`,不会生成视频文件。
140+
141+
### 播放录音
142+
143+
<pre style={{ whiteSpace: "pre-wrap", overflowX: "auto" }}>
144+
{`aplay -D plughw:CARD=${props.audio_playback_card},DEV=0 rk628-audio.wav`}
145+
</pre>
146+
147+
### 同时播放视频和声音
148+
149+
确认主板已连接耳机或音箱,并且 HDMI 输出设备的音频已经输出到 HDMI,然后在主板的图形桌面终端运行:
150+
151+
<pre style={{ whiteSpace: "pre-wrap", overflowX: "auto" }}>
152+
{`gst-launch-1.0 -e -v \\
153+
v4l2src device=${props.video_dev} do-timestamp=true ! \\
154+
video/x-raw,format=NV16,width=1920,height=1080,framerate=30/1 ! \\
155+
queue ! videoconvert ! glimagesink sync=true \\
156+
alsasrc device="hw:CARD=${props.audio_capture_card},DEV=0" do-timestamp=true ! \\
157+
audio/x-raw,format=S16LE,rate=48000,channels=2 ! \\
158+
queue ! audioconvert ! audioresample ! \\
159+
alsasink device="plughw:CARD=${props.audio_playback_card},DEV=0" sync=true`}
160+
</pre>
161+
162+
正常情况下,桌面会显示 HDMI 画面,主板音频输出口会播放 HDMI 声音。
163+
164+
## 常见问题
165+
166+
### 没有 RK628 日志?
167+
168+
检查 Overlay 是否已经保存:
169+
170+
<NewCodeBlock tip={`radxa@${props.board}$`} type="device">
171+
172+
```bash
173+
grep fdtoverlays /boot/extlinux/extlinux.conf
174+
```
175+
176+
</NewCodeBlock>
177+
178+
音视频采集应该包含:
179+
180+
<pre style={{ whiteSpace: "pre-wrap", overflowX: "auto" }}>
181+
{`${props.audio_dtbo}\n${props.video_dtbo}`}
182+
</pre>
183+
184+
如果没有 RK628 视频 Overlay,请返回 `rsetup` 重新启用,并检查硬件连接是否正确。
185+
186+
### 一直显示 no signal 或 lock failed?
187+
188+
开机早期短暂出现这些日志不一定是故障。如果后续始终没有 `New format`,请检查:
189+
190+
- HDMI 信号源是否已经开机并开始输出
191+
- HDMI 线是否可靠
192+
- FPC 排线是否正确连接
193+
194+
### 不确定 RK628 对应哪个视频节点?
195+
196+
不同系统或 Overlay 配置下,视频节点编号可能变化,可以按以下步骤查找。
197+
198+
查找 RK628 所在的媒体设备:
199+
200+
<NewCodeBlock tip={`radxa@${props.board}$`} type="device">
201+
202+
```bash
203+
for m in /dev/media*; do media-ctl -p -d "$m" 2>/dev/null | grep -qi rk628 && echo "RK628 位于 $m"; done
204+
```
205+
206+
</NewCodeBlock>
207+
208+
查询主视频采集节点:
209+
210+
<NewCodeBlock tip={`radxa@${props.board}$`} type="device">
211+
212+
```bash
213+
media-ctl -d /dev/media0 -e 'stream_cif_mipi_id0'
214+
```
215+
216+
</NewCodeBlock>
217+
218+
如果输出的节点不是 <code>{props.video_dev}</code>,请把教程命令中的视频节点替换为实际节点。
219+
220+
采集 30 帧验证节点:
221+
222+
<pre style={{ whiteSpace: "pre-wrap", overflowX: "auto" }}>
223+
{`v4l2-ctl --verbose -d ${props.video_dev} --set-fmt-video=width=1920,height=1080,pixelformat=NV12 --stream-mmap=3 --stream-poll --stream-count=30 --stream-to=/dev/null`}
224+
</pre>
225+
226+
如果终端连续输出 `cap dqbuf` 帧信息并正常结束,说明视频节点选择正确。
227+
228+
### 不确定 HDMI 音频对应哪个设备?
229+
230+
不同系统版本或硬件配置下,声卡编号可能不同,重启后也可能变化,可以按以下步骤查找。
231+
232+
查找 HDMI 音频采集设备:
233+
234+
<NewCodeBlock tip={`radxa@${props.board}$`} type="device">
235+
236+
```bash
237+
arecord -l
238+
```
239+
240+
</NewCodeBlock>
241+
242+
启用音频 Overlay 后,应该能找到包含 <code>{props.audio_capture_card}</code> 的设备:
243+
244+
- 声卡名称:<code>{props.audio_capture_card}</code>
245+
- 设备编号:<code>0</code>
246+
- 录音命令应使用 <code>hw:CARD={props.audio_capture_card},DEV=0</code>
247+
248+
:::info 说明
249+
250+
`arecord -l` 显示的 `card N` 编号由系统临时分配,重启后可能改变,因此不建议在命令中固定写成 `hw:N,0`。
251+
252+
:::
253+
254+
如果 `arecord -l` 中没有 <code>{props.audio_capture_card}</code>,请检查是否启用了音频 Overlay,并在保存后重启系统。
255+
256+
查找声音播放设备:
257+
258+
<NewCodeBlock tip={`radxa@${props.board}$`} type="device">
259+
260+
```bash
261+
aplay -l
262+
```
263+
264+
</NewCodeBlock>
265+
266+
应能找到包含 <code>{props.audio_playback_card}</code> 的设备,对应的播放设备为 <code>plughw:CARD={props.audio_playback_card},DEV=0</code>。
267+
268+
如果使用 USB 声卡或其他播放设备,请把教程命令中的播放设备替换为 `aplay -l` 显示的实际设备。只录制音频、不在主板上播放时,无需查找播放设备。

‎i18n/en/docusaurus-plugin-content-docs/current/accessories/display/README.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@
22
sidebar_position: 1
33
---
44

5-
# Display
5+
# HD Display
66

77
<DocCardList />

0 commit comments

Comments
 (0)