X1300 软件

本教程主要基于工具v4l2-ctl工具,并提供了一个简单的示例来检查 x1300 在 Raspberry Pi 5 上是否正常工作。它不仅是教程,也是您检查 X1300 是否损坏的依据。当然,您也可以考虑使用其他视频工具(例如GStreamer)来获得类似的功能。


在开始以下教程之前,您还必须完成X1300 / X1301的物理连接,并确保有 HDMI 信号传输到X1300 / X1301


现在假设您已经设置了带有 Raspbian12( bookworm ) 的 Raspberry Pi 。如需在 Pi 上安装基于 Debian 的操作系统的帮助,请查看

https://www.raspberrypi.com/

检查内核版本,执行以下命令:(操作系统内核升级往往会带来一些不确定的问题)

uname -a

或许结果如下:

uname -a 
Linux raspberrypi 6.6.31+rpt-rpi-v8 #1 SMP PREEMPT Debian 1:6.6.31-1+rpt1 (2024-05-29) aarch64 GNU/Linux


1. 在/boot/firmware/config.txt 中启用设备树覆盖

须藤纳米 /boot/firmware/config.txt

在文件末尾添加两行内容如下:

dtoverlay=tc358743,4lane=1 
dtoverlay=tc358743-音频


按 Ctrl + O 和 Enter 保存

按 Ctrl + X 退出


2. 重启 Raspberry Pi 5 以使设置生效

sudo 重启


3. 查看视频设备列表

v4l2-ctl --列表设备



4. 创建 1920*1080P EDID txt 文件来设置 HDMI 转 CSI 适配器,然后才能将其连接到 HDMI 源。此 EDID 文件将启用支持的视频和音频模式。

sudo nano 1080P60EDID.txt

复制以下 EDID 数据并粘贴到 1080P60EDID.txt,或从https://github.com/6by9/CSI2_device_config/blob/master/1080P60EDID.txt

00ffffffffffff005262888800888888 
1c150103800000780aEE91A3544C9926 
0F505400000001010101010101010101 
010101010101011d007251d01e206e28 
5500c48e2100001e8c0ad08a20e02d10 
103e9600138e2100001e000000fc0054 
6f73686962612d4832430a20000000FD 
003b3d0f2e0f1e0a202020202020014f 
020322444f841303021211012021223c 
3d3e101f2309070766030c00300080E3 
007F8c0ad08a20e02d10103e9600c48e 
210000188c0ad08a20e02d10103e9600 
138e210000188c0aa01451f01600267c 
4300138e210000980000000000000000 
00000000000000000000000000000000 
00000000000000000000000000000015


5. 加载EDID数据

v4l2-ctl -d /dev/v4l-subdev2 --set-edid=file=/home/pi/1080P60EDID.txt --fix-edid-checksums

PS:注意你的edid文件的目录


6、查询当前HDMI输入信号源信息,若分辨率显示0,则表示没有检测到输入源信号,此时需要检查硬件连接情况,然后重复以上步骤排除故障。

v4l2-ctl -d /dev/v4l-subdev2 --query-dv-timings


PS:确保连接 HDMI 源设备以获取 HDMI 信号,如果您在此处无法获得正确的分辨率,请考虑调整源设备的分辨率以匹配 EDID。


7. 将屏幕计时应用于捕获设置

v4l2-ctl -d /dev/v4l-subdev2 --set-dv-bt-timings 查询



8. 初始化/重置媒体

媒体控制-d / dev / media2 -r

请注意,/dev/media 编号可能会发生变化。转到步骤 3 检查媒体编号。如果您的媒体编号为 1,请将/dev/media2更改为/dev/media1,依此类推


9.将CSI2的pad4连接到rp1-cfe-csi2_ch0的pad0。

media-ctl -d /dev/media2 -l ''\''csi2'\'':4 -> '\''rp1-cfe-csi2_ch0'\'':0 [1]'


10.配置媒体节点。

media-ctl -d /dev/media2 -V ''\''csi2'\'':0 [fmt:RGB888_1X24/1920x1080 字段:无色彩空间:srgb]' 
media-ctl -d /dev/media2 -V ''\''csi2'\'':4 [fmt:RGB888_1X24/1920x1080 字段:无色彩空间:srgb]' 
media-ctl -d /dev/media2 -V ''\''tc358743 4-000f'\'':0 [fmt:RGB888_1X24/1920x1080 字段:无色彩空间:srgb]'

请注意,/dev/media 编号可能会发生变化。转到步骤 3 检查媒体编号。如果您的媒体编号为 1,请将/dev/media2更改为/dev/media1,依此类推


11.设置输出格式

v4l2-ctl -v 宽度=1920,高度=1080,像素格式=RGB3


12.捕获帧并保存到/home/pi(文件名:csitest.yuv)

v4l2-ctl --verbose -d /dev/video0 --set-fmt-video=width=1920,height=1080,pixelformat='RGB3' --stream-mmap=4 --stream-skip=3 --stream-count=2 --stream-to=csitest.yuv --stream-poll

13.要在 Raspberry Pi OS 桌面上播放 YUV 文件,请使用 FFplay。(在本地终端窗口运行以下命令,如果从 SSH 执行命令则不起作用)。

ffplay -f rawvideo -video_size 1920x1080 -pixel_format bgr24 csitest.yuv