RV1103与FPGA通过MIPI CSI-2实现视频传输,实现网络推流

RV1103与FPGA通过MIPI CSI-2实现视频传输,实现网络推流。

一:图像格式

支持图像格式如下:

[0]: 'NV16' (Y/CbCr 4:2:2)

Size: Stepwise 64x64 - 2304x1296 with step 8/8

[1]: 'NV61' (Y/CrCb 4:2:2)

Size: Stepwise 64x64 - 2304x1296 with step 8/8

[2]: 'NV12' (Y/CbCr 4:2:0)

Size: Stepwise 64x64 - 2304x1296 with step 8/8

[3]: 'NV21' (Y/CrCb 4:2:0)

Size: Stepwise 64x64 - 2304x1296 with step 8/8

[4]: 'YUYV' (YUYV 4:2:2)

Size: Stepwise 64x64 - 2304x1296 with step 8/8

[5]: 'YVYU' (YVYU 4:2:2)

Size: Stepwise 64x64 - 2304x1296 with step 8/8

[6]: 'UYVY' (UYVY 4:2:2)

Size: Stepwise 64x64 - 2304x1296 with step 8/8

[7]: 'VYUY' (VYUY 4:2:2)

Size: Stepwise 64x64 - 2304x1296 with step 8/8

[8]: 'RGB3' (24-bit RGB 8-8-8)

Size: Stepwise 64x64 - 2304x1296 with step 8/8

[9]: 'BGR3' (24-bit BGR 8-8-8)

Size: Stepwise 64x64 - 2304x1296 with step 8/8

[10]: 'RGBP' (16-bit RGB 5-6-5)

Size: Stepwise 64x64 - 2304x1296 with step 8/8

[11]: 'BGRH' (18-bit BGRX 6-6-6-14)

Size: Stepwise 64x64 - 2304x1296 with step 8/8

[12]: 'RGGB' (8-bit Bayer RGRG/GBGB)

Size: Stepwise 64x64 - 2304x1296 with step 8/8

[13]: 'GRBG' (8-bit Bayer GRGR/BGBG)

Size: Stepwise 64x64 - 2304x1296 with step 8/8

[14]: 'GBRG' (8-bit Bayer GBGB/RGRG)

Size: Stepwise 64x64 - 2304x1296 with step 8/8

[15]: 'BA81' (8-bit Bayer BGBG/GRGR)

Size: Stepwise 64x64 - 2304x1296 with step 8/8

[16]: 'RG10' (10-bit Bayer RGRG/GBGB)

Size: Stepwise 64x64 - 2304x1296 with step 8/8

[17]: 'BA10' (10-bit Bayer GRGR/BGBG)

Size: Stepwise 64x64 - 2304x1296 with step 8/8

[18]: 'GB10' (10-bit Bayer GBGB/RGRG)

Size: Stepwise 64x64 - 2304x1296 with step 8/8

[19]: 'BG10' (10-bit Bayer BGBG/GRGR)

Size: Stepwise 64x64 - 2304x1296 with step 8/8

[20]: 'RG12' (12-bit Bayer RGRG/GBGB)

Size: Stepwise 64x64 - 2304x1296 with step 8/8

[21]: 'BA12' (12-bit Bayer GRGR/BGBG)

Size: Stepwise 64x64 - 2304x1296 with step 8/8

[22]: 'GB12' (12-bit Bayer GBGB/RGRG)

Size: Stepwise 64x64 - 2304x1296 with step 8/8

[23]: 'BG12' (12-bit Bayer BGBG/GRGR)

Size: Stepwise 64x64 - 2304x1296 with step 8/8

[24]: 'BYR2' (16-bit Bayer BGBG/GRGR)

Size: Stepwise 64x64 - 2304x1296 with step 8/8

[25]: 'GB16' (16-bit Bayer GBGB/RGRG)

Size: Stepwise 64x64 - 2304x1296 with step 8/8

[26]: 'GR16' (16-bit Bayer GRGR/BGBG)

Size: Stepwise 64x64 - 2304x1296 with step 8/8

[27]: 'RG16' (16-bit Bayer RGRG/GBGB)

Size: Stepwise 64x64 - 2304x1296 with step 8/8

[28]: 'Y16 ' (16-bit Greyscale)

Size: Stepwise 64x64 - 2304x1296 with step 8/8

[29]: 'GREY' (8-bit Greyscale)

Size: Stepwise 64x64 - 2304x1296 with step 8/8

[30]: 'EBD8' (Embedded data 8-bit)

Size: Stepwise 64x64 - 2304x1296 with step 8/8

[31]: 'SPD6' (Shield pix data 16-bit)

Size: Stepwise 64x64 - 2304x1296 with step 8/8

[32]: 'Y12 ' (12-bit Greyscale)

Size: Stepwise 64x64 - 2304x1296 with step 8/8

[33]: 'Y10 ' (10-bit Greyscale)

Size: Stepwise 64x64 - 2304x1296 with step 8/8

二:DTS配置

配置DTS:

&csi2_dphy_hw {

status = "okay";

};

&csi2_dphy0 {

status = "okay";

ports {

#address-cells = <1>;

#size-cells = <0>;

port@0 {

reg = <0>;

#address-cells = <1>;

#size-cells = <0>;

csi_dphy_input0: endpoint@0 {

reg = <0>;

remote-endpoint = <&sc3336_out>;

data-lanes = <1 2>;

};

csi_dphy_input1: endpoint@1 {

reg = <1>;

remote-endpoint = <&sc4336_out>;

data-lanes = <1 2>;

};

csi_dphy_input2: endpoint@2 {

reg = <2>;

remote-endpoint = <&sc530ai_out>;

data-lanes = <1 2>;

};

};

port@1 {

reg = <1>;

#address-cells = <1>;

#size-cells = <0>;

csi_dphy_output: endpoint@0 {

reg = <0>;

remote-endpoint = <&mipi_csi2_input>;

};

};

};

};

&i2c4 {

status = "okay";

clock-frequency = <400000>;

pinctrl-names = "default";

pinctrl-0 = <&i2c4m2_xfer>;

sc3336: sc3336@30 {

compatible = "smartsens,sc3336";

status = "okay";

reg = <0x30>;

clocks = <&cru MCLK_REF_MIPI0>;

clock-names = "xvclk";

pwdn-gpios = <&gpio3 RK_PC5 GPIO_ACTIVE_HIGH>;

pinctrl-names = "default";

pinctrl-0 = <&mipi_refclk_out0>;

rockchip,camera-module-index = <0>;

rockchip,camera-module-facing = "back";

rockchip,camera-module-name = "CMK-OT2119-PC1";

rockchip,camera-module-lens-name = "30IRC-F16";

port {

sc3336_out: endpoint {

remote-endpoint = <&csi_dphy_input0>;

data-lanes = <1 2>;

};

};

};

sc4336: sc4336@30 {

compatible = "smartsens,sc4336";

status = "okay";

reg = <0x30>;

clocks = <&cru MCLK_REF_MIPI0>;

clock-names = "xvclk";

pwdn-gpios = <&gpio3 RK_PC5 GPIO_ACTIVE_HIGH>;

pinctrl-names = "default";

pinctrl-0 = <&mipi_refclk_out0>;

rockchip,camera-module-index = <0>;

rockchip,camera-module-facing = "back";

rockchip,camera-module-name = "OT01";

rockchip,camera-module-lens-name = "40IRC_F16";

port {

sc4336_out: endpoint {

remote-endpoint = <&csi_dphy_input1>;

data-lanes = <1 2>;

};

};

};

sc530ai: sc530ai@30 {

compatible = "smartsens,sc530ai";

status = "okay";

reg = <0x30>;

clocks = <&cru MCLK_REF_MIPI0>;

clock-names = "xvclk";

pwdn-gpios = <&gpio3 RK_PC5 GPIO_ACTIVE_HIGH>;

pinctrl-names = "default";

pinctrl-0 = <&mipi_refclk_out0>;

rockchip,camera-module-index = <0>;

rockchip,camera-module-facing = "back";

rockchip,camera-module-name = "CMK-OT2115-PC1";

rockchip,camera-module-lens-name = "30IRC-F16";

port {

sc530ai_out: endpoint {

remote-endpoint = <&csi_dphy_input2>;

data-lanes = <1 2>;

};

};

};

};

&i2s0_8ch {

#sound-dai-cells = <0>;

status = "okay";

};

&mipi0_csi2 {

status = "okay";

ports {

#address-cells = <1>;

#size-cells = <0>;

port@0 {

reg = <0>;

#address-cells = <1>;

#size-cells = <0>;

mipi_csi2_input: endpoint@1 {

reg = <1>;

remote-endpoint = <&csi_dphy_output>;

};

};

port@1 {

reg = <1>;

#address-cells = <1>;

#size-cells = <0>;

mipi_csi2_output: endpoint@0 {

reg = <0>;

remote-endpoint = <&cif_mipi_in>;

};

};

};

};

&pwm0 {

status = "okay";

};

&rkcif {

status = "okay";

};

&rkcif_mipi_lvds {

status = "okay";

pinctrl-names = "default";

pinctrl-0 = <&mipi_pins>;

port {

/* MIPI CSI-2 endpoint */

cif_mipi_in: endpoint {

remote-endpoint = <&mipi_csi2_output>;

};

};

};

&rkcif_mipi_lvds_sditf {

status = "okay";

port {

/* MIPI CSI-2 endpoint */

mipi_lvds_sditf: endpoint {

remote-endpoint = <&isp_in>;

};

};

};

&rkisp {

status = "okay";

};

&rkisp_vir0 {

status = "okay";

port@0 {

isp_in: endpoint {

remote-endpoint = <&mipi_lvds_sditf>;

};

};

};

&saradc {

status = "okay";

vref-supply = <&vcc_1v8>;

};

三:驱动配置

配置分辨率,数据类型。

static const struct sc3336_mode supported_modes[] = {

{

.width = 2304,

.height = 1296,

.max_fps = {

.numerator = 10000,

.denominator = 250000,

},

.exp_def = 0x0080,

.hts_def = 0x05dc,

.vts_def = 0x0654,

.bus_fmt = MEDIA_BUS_FMT_SBGGR8_1X8,

.reg_list = sc3336_linear_10_2304x1296_25fps_regs,

.hdr_mode = NO_HDR,

.xvclk_freq = 27000000,

.link_freq_idx = 0,

.vc[PAD0] = V4L2_MBUS_CSI2_CHANNEL_0,

},

{

.width = 2304,

.height = 1296,

.max_fps = {

.numerator = 10000,

.denominator = 300000,

},

.exp_def = 0x0080,

.hts_def = 0x0578 * 2,

.vts_def = 0x0550,

.bus_fmt = MEDIA_BUS_FMT_SBGGR8_1X8,

.reg_list = sc3336_linear_10_2304x1296_30fps_regs,

.hdr_mode = NO_HDR,

.xvclk_freq = 24000000,

.link_freq_idx = 1,

.vc[PAD0] = V4L2_MBUS_CSI2_CHANNEL_0,

}

};

四:注册查询

Media controller API version 5.10.110

Media device information


driver rkcif

model rkcif-mipi-lvds

serial

bus info

hw revision 0x0

driver version 5.10.110

Device topology

  • entity 1: stream_cif_mipi_id0 (1 pad, 11 links)

type Node subtype V4L flags 0

device node name /dev/video0

pad0: Sink

<- "rockchip-mipi-csi2":1 [ENABLED]

<- "rockchip-mipi-csi2":2 []

<- "rockchip-mipi-csi2":3 []

<- "rockchip-mipi-csi2":4 []

<- "rockchip-mipi-csi2":5 []

<- "rockchip-mipi-csi2":6 []

<- "rockchip-mipi-csi2":7 []

<- "rockchip-mipi-csi2":8 []

<- "rockchip-mipi-csi2":9 []

<- "rockchip-mipi-csi2":10 []

<- "rockchip-mipi-csi2":11 []

  • entity 5: stream_cif_mipi_id1 (1 pad, 11 links)

type Node subtype V4L flags 0

device node name /dev/video1

pad0: Sink

<- "rockchip-mipi-csi2":1 []

<- "rockchip-mipi-csi2":2 [ENABLED]

<- "rockchip-mipi-csi2":3 []

<- "rockchip-mipi-csi2":4 []

<- "rockchip-mipi-csi2":5 []

<- "rockchip-mipi-csi2":6 []

<- "rockchip-mipi-csi2":7 []

<- "rockchip-mipi-csi2":8 []

<- "rockchip-mipi-csi2":9 []

<- "rockchip-mipi-csi2":10 []

<- "rockchip-mipi-csi2":11 []

  • entity 9: stream_cif_mipi_id2 (1 pad, 11 links)

type Node subtype V4L flags 0

device node name /dev/video2

pad0: Sink

<- "rockchip-mipi-csi2":1 []

<- "rockchip-mipi-csi2":2 []

<- "rockchip-mipi-csi2":3 [ENABLED]

<- "rockchip-mipi-csi2":4 []

<- "rockchip-mipi-csi2":5 []

<- "rockchip-mipi-csi2":6 []

<- "rockchip-mipi-csi2":7 []

<- "rockchip-mipi-csi2":8 []

<- "rockchip-mipi-csi2":9 []

<- "rockchip-mipi-csi2":10 []

<- "rockchip-mipi-csi2":11 []

  • entity 13: stream_cif_mipi_id3 (1 pad, 11 links)

type Node subtype V4L flags 0

device node name /dev/video3

pad0: Sink

<- "rockchip-mipi-csi2":1 []

<- "rockchip-mipi-csi2":2 []

<- "rockchip-mipi-csi2":3 []

<- "rockchip-mipi-csi2":4 [ENABLED]

<- "rockchip-mipi-csi2":5 []

<- "rockchip-mipi-csi2":6 []

<- "rockchip-mipi-csi2":7 []

<- "rockchip-mipi-csi2":8 []

<- "rockchip-mipi-csi2":9 []

<- "rockchip-mipi-csi2":10 []

<- "rockchip-mipi-csi2":11 []

  • entity 17: rkcif_scale_ch0 (1 pad, 11 links)

type Node subtype V4L flags 0

device node name /dev/video4

pad0: Sink

<- "rockchip-mipi-csi2":1 []

<- "rockchip-mipi-csi2":2 []

<- "rockchip-mipi-csi2":3 []

<- "rockchip-mipi-csi2":4 []

<- "rockchip-mipi-csi2":5 [ENABLED]

<- "rockchip-mipi-csi2":6 []

<- "rockchip-mipi-csi2":7 []

<- "rockchip-mipi-csi2":8 []

<- "rockchip-mipi-csi2":9 []

<- "rockchip-mipi-csi2":10 []

<- "rockchip-mipi-csi2":11 []

  • entity 21: rkcif_scale_ch1 (1 pad, 11 links)

type Node subtype V4L flags 0

device node name /dev/video5

pad0: Sink

<- "rockchip-mipi-csi2":1 []

<- "rockchip-mipi-csi2":2 []

<- "rockchip-mipi-csi2":3 []

<- "rockchip-mipi-csi2":4 []

<- "rockchip-mipi-csi2":5 []

<- "rockchip-mipi-csi2":6 [ENABLED]

<- "rockchip-mipi-csi2":7 []

<- "rockchip-mipi-csi2":8 []

<- "rockchip-mipi-csi2":9 []

<- "rockchip-mipi-csi2":10 []

<- "rockchip-mipi-csi2":11 []

  • entity 25: rkcif_scale_ch2 (1 pad, 11 links)

type Node subtype V4L flags 0

device node name /dev/video6

pad0: Sink

<- "rockchip-mipi-csi2":1 []

<- "rockchip-mipi-csi2":2 []

<- "rockchip-mipi-csi2":3 []

<- "rockchip-mipi-csi2":4 []

<- "rockchip-mipi-csi2":5 []

<- "rockchip-mipi-csi2":6 []

<- "rockchip-mipi-csi2":7 [ENABLED]

<- "rockchip-mipi-csi2":8 []

<- "rockchip-mipi-csi2":9 []

<- "rockchip-mipi-csi2":10 []

<- "rockchip-mipi-csi2":11 []

  • entity 29: rkcif_scale_ch3 (1 pad, 11 links)

type Node subtype V4L flags 0

device node name /dev/video7

pad0: Sink

<- "rockchip-mipi-csi2":1 []

<- "rockchip-mipi-csi2":2 []

<- "rockchip-mipi-csi2":3 []

<- "rockchip-mipi-csi2":4 []

<- "rockchip-mipi-csi2":5 []

<- "rockchip-mipi-csi2":6 []

<- "rockchip-mipi-csi2":7 []

<- "rockchip-mipi-csi2":8 [ENABLED]

<- "rockchip-mipi-csi2":9 []

<- "rockchip-mipi-csi2":10 []

<- "rockchip-mipi-csi2":11 []

  • entity 33: rkcif_tools_id0 (1 pad, 11 links)

type Node subtype V4L flags 0

device node name /dev/video8

pad0: Sink

<- "rockchip-mipi-csi2":1 []

<- "rockchip-mipi-csi2":2 []

<- "rockchip-mipi-csi2":3 []

<- "rockchip-mipi-csi2":4 []

<- "rockchip-mipi-csi2":5 []

<- "rockchip-mipi-csi2":6 []

<- "rockchip-mipi-csi2":7 []

<- "rockchip-mipi-csi2":8 []

<- "rockchip-mipi-csi2":9 [ENABLED]

<- "rockchip-mipi-csi2":10 []

<- "rockchip-mipi-csi2":11 []

  • entity 37: rkcif_tools_id1 (1 pad, 11 links)

type Node subtype V4L flags 0

device node name /dev/video9

pad0: Sink

<- "rockchip-mipi-csi2":1 []

<- "rockchip-mipi-csi2":2 []

<- "rockchip-mipi-csi2":3 []

<- "rockchip-mipi-csi2":4 []

<- "rockchip-mipi-csi2":5 []

<- "rockchip-mipi-csi2":6 []

<- "rockchip-mipi-csi2":7 []

<- "rockchip-mipi-csi2":8 []

<- "rockchip-mipi-csi2":9 []

<- "rockchip-mipi-csi2":10 [ENABLED]

<- "rockchip-mipi-csi2":11 []

  • entity 41: rkcif_tools_id2 (1 pad, 11 links)

type Node subtype V4L flags 0

device node name /dev/video10

pad0: Sink

<- "rockchip-mipi-csi2":1 []

<- "rockchip-mipi-csi2":2 []

<- "rockchip-mipi-csi2":3 []

<- "rockchip-mipi-csi2":4 []

<- "rockchip-mipi-csi2":5 []

<- "rockchip-mipi-csi2":6 []

<- "rockchip-mipi-csi2":7 []

<- "rockchip-mipi-csi2":8 []

<- "rockchip-mipi-csi2":9 []

<- "rockchip-mipi-csi2":10 []

<- "rockchip-mipi-csi2":11 [ENABLED]

  • entity 45: rockchip-mipi-csi2 (12 pads, 122 links)

type V4L2 subdev subtype Unknown flags 0

device node name /dev/v4l-subdev0

pad0: Sink

[fmt:SBGGR8_1X8/2304x1296 field:none

crop.bounds:(0,0)/2304x1296

crop:(0,0)/2304x1296]

<- "rockchip-csi2-dphy0":1 [ENABLED]

pad1: Source

-> "stream_cif_mipi_id0":0 [ENABLED]

-> "stream_cif_mipi_id1":0 []

-> "stream_cif_mipi_id2":0 []

-> "stream_cif_mipi_id3":0 []

-> "rkcif_scale_ch0":0 []

-> "rkcif_scale_ch1":0 []

-> "rkcif_scale_ch2":0 []

-> "rkcif_scale_ch3":0 []

-> "rkcif_tools_id0":0 []

-> "rkcif_tools_id1":0 []

-> "rkcif_tools_id2":0 []

pad2: Source

-> "stream_cif_mipi_id0":0 []

-> "stream_cif_mipi_id1":0 [ENABLED]

-> "stream_cif_mipi_id2":0 []

-> "stream_cif_mipi_id3":0 []

-> "rkcif_scale_ch0":0 []

-> "rkcif_scale_ch1":0 []

-> "rkcif_scale_ch2":0 []

-> "rkcif_scale_ch3":0 []

-> "rkcif_tools_id0":0 []

-> "rkcif_tools_id1":0 []

-> "rkcif_tools_id2":0 []

pad3: Source

-> "stream_cif_mipi_id0":0 []

-> "stream_cif_mipi_id1":0 []

-> "stream_cif_mipi_id2":0 [ENABLED]

-> "stream_cif_mipi_id3":0 []

-> "rkcif_scale_ch0":0 []

-> "rkcif_scale_ch1":0 []

-> "rkcif_scale_ch2":0 []

-> "rkcif_scale_ch3":0 []

-> "rkcif_tools_id0":0 []

-> "rkcif_tools_id1":0 []

-> "rkcif_tools_id2":0 []

pad4: Source

-> "stream_cif_mipi_id0":0 []

-> "stream_cif_mipi_id1":0 []

-> "stream_cif_mipi_id2":0 []

-> "stream_cif_mipi_id3":0 [ENABLED]

-> "rkcif_scale_ch0":0 []

-> "rkcif_scale_ch1":0 []

-> "rkcif_scale_ch2":0 []

-> "rkcif_scale_ch3":0 []

-> "rkcif_tools_id0":0 []

-> "rkcif_tools_id1":0 []

-> "rkcif_tools_id2":0 []

pad5: Source

-> "stream_cif_mipi_id0":0 []

-> "stream_cif_mipi_id1":0 []

-> "stream_cif_mipi_id2":0 []

-> "stream_cif_mipi_id3":0 []

-> "rkcif_scale_ch0":0 [ENABLED]

-> "rkcif_scale_ch1":0 []

-> "rkcif_scale_ch2":0 []

-> "rkcif_scale_ch3":0 []

-> "rkcif_tools_id0":0 []

-> "rkcif_tools_id1":0 []

-> "rkcif_tools_id2":0 []

pad6: Source

-> "stream_cif_mipi_id0":0 []

-> "stream_cif_mipi_id1":0 []

-> "stream_cif_mipi_id2":0 []

-> "stream_cif_mipi_id3":0 []

-> "rkcif_scale_ch0":0 []

-> "rkcif_scale_ch1":0 [ENABLED]

-> "rkcif_scale_ch2":0 []

-> "rkcif_scale_ch3":0 []

-> "rkcif_tools_id0":0 []

-> "rkcif_tools_id1":0 []

-> "rkcif_tools_id2":0 []

pad7: Source

-> "stream_cif_mipi_id0":0 []

-> "stream_cif_mipi_id1":0 []

-> "stream_cif_mipi_id2":0 []

-> "stream_cif_mipi_id3":0 []

-> "rkcif_scale_ch0":0 []

-> "rkcif_scale_ch1":0 []

-> "rkcif_scale_ch2":0 [ENABLED]

-> "rkcif_scale_ch3":0 []

-> "rkcif_tools_id0":0 []

-> "rkcif_tools_id1":0 []

-> "rkcif_tools_id2":0 []

pad8: Source

-> "stream_cif_mipi_id0":0 []

-> "stream_cif_mipi_id1":0 []

-> "stream_cif_mipi_id2":0 []

-> "stream_cif_mipi_id3":0 []

-> "rkcif_scale_ch0":0 []

-> "rkcif_scale_ch1":0 []

-> "rkcif_scale_ch2":0 []

-> "rkcif_scale_ch3":0 [ENABLED]

-> "rkcif_tools_id0":0 []

-> "rkcif_tools_id1":0 []

-> "rkcif_tools_id2":0 []

pad9: Source

-> "stream_cif_mipi_id0":0 []

-> "stream_cif_mipi_id1":0 []

-> "stream_cif_mipi_id2":0 []

-> "stream_cif_mipi_id3":0 []

-> "rkcif_scale_ch0":0 []

-> "rkcif_scale_ch1":0 []

-> "rkcif_scale_ch2":0 []

-> "rkcif_scale_ch3":0 []

-> "rkcif_tools_id0":0 [ENABLED]

-> "rkcif_tools_id1":0 []

-> "rkcif_tools_id2":0 []

pad10: Source

-> "stream_cif_mipi_id0":0 []

-> "stream_cif_mipi_id1":0 []

-> "stream_cif_mipi_id2":0 []

-> "stream_cif_mipi_id3":0 []

-> "rkcif_scale_ch0":0 []

-> "rkcif_scale_ch1":0 []

-> "rkcif_scale_ch2":0 []

-> "rkcif_scale_ch3":0 []

-> "rkcif_tools_id0":0 []

-> "rkcif_tools_id1":0 [ENABLED]

-> "rkcif_tools_id2":0 []

pad11: Source

-> "stream_cif_mipi_id0":0 []

-> "stream_cif_mipi_id1":0 []

-> "stream_cif_mipi_id2":0 []

-> "stream_cif_mipi_id3":0 []

-> "rkcif_scale_ch0":0 []

-> "rkcif_scale_ch1":0 []

-> "rkcif_scale_ch2":0 []

-> "rkcif_scale_ch3":0 []

-> "rkcif_tools_id0":0 []

-> "rkcif_tools_id1":0 []

-> "rkcif_tools_id2":0 [ENABLED]

  • entity 58: rockchip-csi2-dphy0 (2 pads, 2 links)

type V4L2 subdev subtype Unknown flags 0

device node name /dev/v4l-subdev1

pad0: Sink

[fmt:SBGGR8_1X8/2304x1296@10000/250000 field:none]

<- "m00_b_sc3336 4-0030":0 [ENABLED]

pad1: Source

-> "rockchip-mipi-csi2":0 [ENABLED]

  • entity 63: m00_b_sc3336 4-0030 (1 pad, 1 link)

type V4L2 subdev subtype Sensor flags 0

device node name /dev/v4l-subdev2

pad0: Source

[fmt:SBGGR8_1X8/2304x1296@10000/250000 field:none]

-> "rockchip-csi2-dphy0":0 [ENABLED]

五:FPGA端MIPI CSI-2发送调试

确认FPGA端发送正常

六:图像VLC推流查看

FPGA发送动态图像模板显示效果

七:欢迎讨论交流

微:moning_hello

相关推荐
fei_sun6 小时前
【Verilog】第一章作业
fpga开发·verilog
深圳市雷龙发展有限公司longsto7 小时前
基于FPGA(现场可编程门阵列)的SD NAND图片显示系统是一个复杂的项目,它涉及硬件设计、FPGA编程、SD卡接口、NAND闪存控制以及图像显示等多个方面
fpga开发
9527华安11 小时前
FPGA实现PCIE3.0视频采集转10G万兆UDP网络输出,基于XDMA+GTH架构,提供工程源码和技术支持
网络·fpga开发·udp·音视频·xdma·pcie3.0·万兆网
able陈11 小时前
为什么verilog中递归函数需要定义为automatic?
fpga开发
fei_sun12 小时前
【Verilog】第二章作业
fpga开发·verilog
碎碎思13 小时前
如何使用 Vivado 从源码构建 Infinite-ISP FPGA 项目
fpga开发·接口隔离原则
江山如画,佳人北望15 小时前
fpga-状态机的设计及应用
fpga开发
晓晓暮雨潇潇16 小时前
Xilinx IP核(3)XADC IP核
fpga开发·vivado·xadc·ip核
CWNULT17 小时前
AMD(Xilinx) FPGA配置Flash大小选择
fpga开发
碎碎思1 天前
很能体现FPGA硬件思维的一道面试题
fpga开发