3.2. sample_vin 使用说明
3.2.1. 功能概述
get_vin_data 完成 Camera Sensor 、 MIPI CSI 和 SIF 模块的初始化,实现从 vin 模块获取视频帧数据的功能,支持从 VIN 模块获取 Raw 或者 YUV 格式的图像。
3.2.1.1. 软件架构说明

3.2.1.2. 代码位置及目录结构
代码位置
app/samples/platform_samples/sample_vin/get_vin_data目录结构
sample_vin/
└── get_vin_data
├── get_vin_data.c
└── Makefile
3.2.1.3. API 流程说明

3.2.2. 编译部署
3.2.2.1. 编译
进入 get_vin_data 目录,执行
make编译输出产物是 get_vin_data 源码目录下的
get_vin_data详细程序编译方式请查阅 编译方法 章节
3.2.2.2. 程序部署
刷写系统软件镜像后 , 本 sample 的可执行文件位于板端 : /app/platform_samples/sample_vin/get_vin_data。
3.2.3. 运行
3.2.3.1. 程序运行方法
直接执行程序
./get_vin_data -h可以获得帮助信息:
3.2.3.2. 程序参数选项说明
Usage: get_vin_data [OPTIONS]
Options:
-s <sensor_index> Specify sensor index
-t <settle_value> Specify settle time for debug
-m <sensor_mode> Specify sensor mode of camera_config_t
-h Show this help message
index: 0 sensor_name: sc1330t config_file:linear_1280x960_raw10_30fps_1lane.c
index: 1 sensor_name: irs2875-tof config_file:linear_208x1413_raw12_15fps_2lane.c
index: 2 sensor_name: sc230ai-10fps config_file:linear_1920x1080_raw10_10fps_1lane.c
index: 3 sensor_name: sc230ai-30fps config_file:linear_1920x1080_raw10_30fps_1lane.c
index: 4 sensor_name: sc132gs-1280p config_file:linear_1088x1280_raw10_30fps_1lane.c
index: 5 sensor_name: sc035hgs config_file:linear_640x480_raw10_30fps_1lane.c
index: 6 sensor_name: sc035hgs_mono config_file:linear_mono_640x480_raw10_30fps_1lane.c
index: 7 sensor_name: ov5640 config_file:linear_1920x1080_raw10_30fps_2lane.c
index: 8 sensor_name: f37 config_file:linear_1920x1080_raw10_30fps_1lane.c
index: 9 sensor_name: imx415-30fps-2lane config_file:linear_3840x2160_raw10_30fps_2lane.c
index: 10 sensor_name: imx415-30fps-4lane config_file:linear_3840x2160_raw10_30fps_4lane.c
index: 11 sensor_name: sc202cs-1600x1200 config_file:linear_1600x1200_raw10_30fps_1lane.c
index: 12 sensor_name: irs2381c-tof config_file:linear_224x1903_raw12_5fps_2lane.c
index: 13 sensor_name: sc035hgs-vc0 config_file:linear_640x480_raw10_30fps_2lane_vc0.c
index: 14 sensor_name: sc035hgs-vc1 config_file:linear_640x480_raw10_30fps_2lane_vc1.c
index: 15 sensor_name: sc231ai-30fps config_file:linear_1920x1080_raw10_30fps_2lane.c
index: 16 sensor_name: imx586-30fps-4lane config_file:linear_3840x2160_raw10_30fps_4lane.c
index: 17 sensor_name: os08c10-30fps-2lane config_file:linear_3840x2160_raw12_30fps_2lane.c
index: 18 sensor_name: ar0233-30fps config_file:linear_1920x1080_raw12_30fps_2lane.c
index: 19 sensor_name: ar0820std-30fps config_file:linear_3840x2160_yuv422_30fps_4lane.c
index: 20 sensor_name: sc1336 config_file:linear_1280x720_raw10_15fps_2lane.c
index: 21 sensor_name: dummy config_file:dummy_sensor.c
index: 22 sensor_name: ar0233-30fps config_file:ar0233_linear_1920x1080_raw12_30fps_2lane_vc0.c
index: 23 sensor_name: ar0233-30fps config_file:ar0233_linear_1920x1080_raw12_30fps_2lane_vc1.c
index: 24 sensor_name: ov9782-200fps-2lane config_file:linear_640x360_raw10_200fps_2lane.c
index: 25 sensor_name: ov9782-120fps-2lane config_file:linear_1280x720_raw10_120fps_2lane.c
index: 26 sensor_name: imx219-640x480-30fps config_file:linear_640x480_raw10_30fps_2lane.c
index: 27 sensor_name: imx219-1632x1232-30fps config_file:linear_1632x1232_raw10_30fps_2lane.c
index: 28 sensor_name: imx219-1920x1080-30fps config_file:linear_1920x1080_raw10_30fps_2lane.c
index: 29 sensor_name: imx219-3264x2464-15fps config_file:linear_3264x2464_raw10_15fps_2lane.c
index: 30 sensor_name: imx219-3264x2464-21fps config_file:linear_3264x2464_raw10_21fps_2lane.c
index: 31 sensor_name: ov5647-640x480-60fps config_file:linear_640x480_raw10_60fps_2lane.c
index: 32 sensor_name: ov5647-1280x960-30fps config_file:linear_1280x960_raw10_30fps_2lane.c
index: 33 sensor_name: ov5647-1920x1080-30fps config_file:linear_1920x1080_raw10_30fps_2lane.c
index: 34 sensor_name: ov5647-2592x1944-15fps config_file:linear_2592x1944_raw10_15fps_2lane.c
index: 35 sensor_name: imx477-1280x960-120fps config_file:linear_1280x960_raw10_120fps_2lane.c
index: 36 sensor_name: imx477-1920x1080-50fps config_file:linear_1920x1080_raw12_50fps_2lane.c
index: 37 sensor_name: imx477-2016x1520-40fps config_file:linear_2016x1520_raw12_40fps_2lane.c
index: 38 sensor_name: imx477-4000x3000-10fps config_file:linear_4000x3000_raw12_10fps_2lane.c
选项:
s <sensor_index>: 指定要使用的 camera sensor 索引。t <settle_value>: MIPI dphy 的 settle 时间配置,报 phy 错时可调整,该选项用于指定调试时的稳定时间( settle time)。m <sensor_mode>: 指定 camera sensor 配置中的传感器模式。h: 显示帮助信息。
当前支持的传感器以及对应的配置文件列表:
| Index | Sensor Name | Configuration File |
|---|---|---|
| 0 | sc1330t | linear_1280x960_raw10_30fps_1lane.c |
| 1 | irs2875-tof | linear_208x1413_raw12_15fps_2lane.c |
| 2 | sc230ai-10fps | linear_1920x1080_raw10_10fps_1lane.c |
| 3 | sc230ai-30fps | linear_1920x1080_raw10_30fps_1lane.c |
| 4 | sc132gs-1280p | linear_1088x1280_raw10_30fps_1lane.c |
| 5 | sc035hgs | linear_640x480_raw10_30fps_1lane.c |
| 6 | sc035hgs_mono | linear_mono_640x480_raw10_30fps_1lane.c |
| 7 | ov5640 | linear_1920x1080_raw10_30fps_2lane.c |
| 8 | f37 | linear_1920x1080_raw10_30fps_1lane.c |
| 9 | imx415-30fps-2lane | linear_3840x2160_raw10_30fps_2lane.c |
| 10 | imx415-30fps-4lane | linear_3840x2160_raw10_30fps_4lane.c |
| 11 | sc202cs-1600x1200 | linear_1600x1200_raw10_30fps_1lane.c |
| 12 | irs2381c-tof | linear_224x1903_raw12_5fps_2lane.c |
| 13 | sc035hgs-vc0 | linear_640x480_raw10_30fps_2lane_vc0.c |
| 14 | sc035hgs-vc1 | linear_640x480_raw10_30fps_2lane_vc1.c |
| 15 | sc231ai-30fps | linear_1920x1080_raw10_30fps_2lane.c |
| 16 | imx586-30fps-4lane | linear_3840x2160_raw10_30fps_4lane.c |
| 17 | os08c10-30fps-2lane | linear_3840x2160_raw12_30fps_2lane.c |
| 18 | ar0233-30fps | linear_1920x1080_raw12_30fps_2lane.c |
| 19 | ar0820std-30fps | linear_3840x2160_yuv422_30fps_4lane.c |
| 20 | sc1336 | linear_1280x720_raw10_15fps_2lane.c |
| 21 | dummy | dummy_sensor.c |
| 22 | ar0233-30fps | ar0233_linear_1920x1080_raw12_30fps_2lane_vc0.c |
| 23 | ar0233-30fps | ar0233_linear_1920x1080_raw12_30fps_2lane_vc1.c |
| 24 | ov9782-200fps-2lane | linear_640x360_raw10_200fps_2lane.c |
| 25 | ov9782-120fps-2lane | linear_1280x720_raw10_120fps_2lane.c |
| 26 | imx219-640x480-30fps | linear_640x480_raw10_30fps_2lane.c |
| 27 | imx219-1632x1232-30fps | linear_1632x1232_raw10_30fps_2lane.c |
| 28 | imx219-1920x1080-30fps | linear_1920x1080_raw10_30fps_2lane.c |
| 29 | imx219-3264x2464-15fps | linear_3264x2464_raw10_15fps_2lane.c |
| 30 | imx219-3264x2464-21fps | linear_3264x2464_raw10_21fps_2lane.c |
| 31 | ov5647-640x480-60fps | linear_640x480_raw10_60fps_2lane.c |
| 32 | ov5647-1280x960-30fps | linear_1280x960_raw10_30fps_2lane.c |
| 33 | ov5647-1920x1080-30fps | linear_1920x1080_raw10_30fps_2lane.c |
| 34 | ov5647-2592x1944-15fps | linear_2592x1944_raw10_15fps_2lane.c |
| 35 | imx477-1280x960-120fps | linear_1280x960_raw10_120fps_2lane.c |
| 36 | imx477-1920x1080-50fps | linear_1920x1080_raw12_50fps_2lane.c |
| 37 | imx477-2016x1520-40fps | linear_2016x1520_raw12_40fps_2lane.c |
| 38 | imx477-4000x3000-10fps | linear_4000x3000_raw12_10fps_2lane.c |
3.2.3.3. 运行效果
根据提示选择当前连接在开发板上的 Sensor 名,以 f37 为例,执行
./get_vin_data -s 7。执行命令后会自动加 f37 载配置文件
linear_1920x1080_raw10_30fps_1lane.c对 Camera Sensor、MIPI CSI 和 SIF 模块完成初始化。初始化完成后,系统进入用户交互模式。
执行命令:
cd sample_vin/get_vin_data
chmod +x get_vin_data
./get_vin_data -s 7
运行日志:
g: 获取一帧图像,支持输入多个 g 来连续获取图像,例如:输入 gggg 会获取4张图像。
Using index:7 sensor_name:f37 config_file:linear_1920x1080_raw10_30fps_1lane.c
[INFO] board_id is 0x0202, not need skip sci1.
mipi mclk is configed.
Searching camera sensor on device: /proc/device-tree/soc/cam/vcon@0 i2c bus: 4 mipi rx phy: 0
INFO: Found sensor_name:f37 on mipi rx csi 0, i2c addr 0x40, config_file:linear_1920x1080_raw10_30fps_1lane.c
*************** Command Lists ***************
g -- get single frame
l -- get a set frames
q -- quit
h -- print help message
Command: g
handle 34661 vin dump raw 1920x1080(stride:3840), buffer size: 4147200 frame id: 0, timestamp: 46024411807696
Dump image to file(handle_34661_vin_chn0_1920x1080_stride_3840_frameid_0_ts_46024411807696.raw), size(4147200) succeeded
l: 连续获取 12 帧图像,相当于输入 12 个 g
Command: l
handle 34661 vin dump raw 1920x1080(stride:3840), buffer size: 4147200 frame id: 1, timestamp: 46024435294737
Dump image to file(handle_34661_vin_chn0_1920x1080_stride_3840_frameid_1_ts_46024435294737.raw), size(4147200) succeeded
... ( 省略,总共 Dump 12 帧 ) ...
handle 34661 vin dump raw 1920x1080(stride:3840), buffer size: 4147200 frame id: 424, timestamp: 46038535296244
Dump image to file(handle_34661_vin_chn0_1920x1080_stride_3840_frameid_424_ts_46038535296244.raw), size(4147200) succeeded
q: 退出程序
Command: q
quit
效果说明:
3.2.3.4. 运行效果说明
执行程序后会获取到如 handle_34661_vin_chn0_1920x1080_stride_3840_frameid_424_ts_46038535296244.raw 命名格式的 Raw 图像。
请参考 Hobot player 静态图片章节浏览图像,图像的参数配置说明如下:
浏览 RAW 图
按照如下图所示步骤配置选项,其中 file config 里面关注 pic_type 、 raw_type 、 pix_length 、 width 和 height 的配置, sc1330t 配置为( PIC_RAW、 UNPACKET_RAW、 RAW_MIPI_BIT_10 , 1920 , 1080 )

3.2.4. 常见问题
3.2.4.1. 1. 显示 No Camera Sensor found
原因分析:
开发板实际连接 camera 型号和
./get_vin_data -s时指定的 camera 不匹配。FPC 线缆接触不良、接口松动导致测试异常。
解决方法:
确保实际连接的 camera 和
./get_vin_data -s时指定的 camera 匹配。检查 FPC 线缆连接,确保接口稳定连接。