测试指南
2 Dec 2024
Read time: 3 minute(s)
测试环境
- 硬件
-
开发板,或者 D211 的 FPGA 板
-
可转接摄像头的子板
-
摄像头,如 OV5640
-
- 软件
-
PC 端的串口终端软件,用于 PC 和开发板进行串口通信
-
DVP 模块的测试 demo:test_dvp
-
软件配置
- 配置 OV5640 摄像头测试中需要用到摄像头,以 OV5640 为例,在 Luban 的根目录下通过 make kernel-menuconfig,按如下选择:
Linux Device Drivers Multimedia support Media ancillary drivers Camera sensor devices <*> OmniVision OV5640 sensor support
在 board.dts 中,也需要增加 OV5640 的配置,假设 OV5640 是接在 I2C3 通道:&i2c3 { pinctrl-names = "default"; pinctrl-0 = <&i2c3_pins_a>, <&clk_out1_pins>; /* i2c3 引脚及 clock 引脚 */ status = "okay"; ov5640: camera@3C { compatible = "ovti,ov5640"; reg = <0x3C>; clocks = <&cmu CLK_APB1>; clock-names = "xclk"; reset-gpios = <&gpio_p 5 GPIO_ACTIVE_LOW>; powerdown-gpios = <&gpio_p 6 GPIO_ACTIVE_HIGH>; port { ov5640_out: endpoint { remote-endpoint = <&dvp0_in>; /* V4L2_FWNODE_BUS_TYPE_BT656 bus-type = <6>; */ bus-width = <8>; data-shift = <2>; hsync-active = <0>; vsync-active = <1>; pclk-sample = <1>; }; }; }; };
注:-
如果要使用 BT656 模式,请打开 bus-type 参数。
-
如果是 YUV422,不需要配置 bus-type,代码中默认采用 YUV422(即 V4L2_FWNODE_BUS_TYPE_PARALLEL,定义在 drivers/media/v4l2-core/v4l2-fwnode.c)。
-
- test_dvp 配置
在 Luban 根目录,运行make linux-menuconfig,按如下选择:
ArtInChip packages Sample code [*] test-dvp
test_dvp 测试
test_dvp 的主要功能是将摄像头的数据采集后,传给 DE 模块的 Video 图层去显示。
在打开 test_dvp 的编译后,板子上的 test_dvp 位于
/usr/local/bin/,无需进入该目录,直接运行 test_dvp
即可:
[aic@] # test_dvp -u
Usage: test_dvp [options]:
-f, --format format of input video, NV12/NV16 etc
-c, --count the number of capture frame
-w, --width the width of sensor
-h, --height the height of sensor
-r, --framerate the framerate of sensor
-u, --usage
-v, --verbose
Example: test_dvp -f nv16 -c 1
# 使用示例:
# 设置摄像头的分辨率为 720*576,帧率为 15 帧/s,
# 使用 NV12 格式(默认)输出到 Video Layer 显示,共采集并显示 100 帧数据
[aic@] # test_dvp -w 720 -h 576 -r 15 -c 100