FPGA模拟SENSOR,MIPI CSI-2发送图像到RV1126
1:FPGA模拟Sensor, 使用MIPI CSI-2 Transmit,发送图像到RV1126。
2:MIPI CSI-2信号LANE,共5对。图像分辨率1920*1080,格式YUV422 8Bit,RGB565等。
3:调试
3.1:命令:v4l2-ctl -d /dev/video0 --set-fmt-video=width=1920,height=1080,pixelformat=UYVY --stream-mmap=3 --stream-skip=5 --stream-to=/tmp/cif2.out --stream-count=50 --stream-poll
3.2:log
[ 7261.297491] RKMODULE_GET_HDR_CFG
[ 7261.377809] RKMODULE_GET_HDR_CFG
[ 7261.382117] RKMODULE_GET_HDR_CFG
[ 7261.383509] rkcif_mipi_lvds: Allocate dummy buffer, size: 0x003f4800
[ 7261.383650] rockchip-mipi-csi2 ffb10000.mipi-csi2: stream on, src_sd: ea4d31e8, sd_name:rockchip-mipi-dphy-rx
[ 7261.383690] rockchip-mipi-csi2 ffb10000.mipi-csi2: stream ON
[ 7261.383713] rockchip-mipi-dphy-rx ff4b0000.csi-dphy: stream on:1
[ 7261.383730] rockchip-mipi-dphy-rx: data_rate_mbps 594
[ 7261.384777] rockchip-mipi-dphy-rx ff4b0000.csi-dphy: stream on:1
[ 7261.422317] rockchip-mipi-csi2: ERR1: error matching frame start with frame end, reg: 0x10,cnt:1
<<<<<[ 7261.700472] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7261.740246] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7261.780055] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
<[ 7261.859881] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7261.899405] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7261.939158] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
<[ 7262.018714] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7262.058624] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7262.098284] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
<[ 7262.177837] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7262.217593] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7262.257527] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
<[ 7262.336922] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7262.376697] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7262.416506] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
<[ 7262.496060] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7262.535763] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7262.575542] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
<[ 7262.655150] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7262.694906] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
<[ 7262.774418] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7262.814195] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7262.853977] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
< 25.14 fps, dropped buffers: 15
[ 7262.933526] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7262.973303] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7263.013078] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
<[ 7263.092634] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7263.132408] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7263.172184] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
<[ 7263.251737] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7263.291627] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7263.331325] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
<[ 7263.410900] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7263.450653] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7263.490459] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
<[ 7263.570059] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7263.609788] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
<[ 7263.689346] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7263.729117] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7263.768900] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
<[ 7263.848436] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7263.888211] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7263.927967] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
< 25.14 fps, dropped buffers: 20
[ 7264.007540] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7264.047264] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7264.087143] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
<[ 7264.166656] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7264.206428] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7264.246181] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
<[ 7264.325765] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7264.365542] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7264.405284] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
<[ 7264.484855] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7264.524649] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
<[ 7264.604198] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7264.643910] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7264.683685] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
<[ 7264.763230] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7264.803101] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7264.842834] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
< 25.14 fps, dropped buffers: 17
[ 7264.922393] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7264.962227] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7265.002021] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
<[ 7265.081499] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7265.121289] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7265.161048] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
<[ 7265.240611] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7265.280327] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7265.320103] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
<[ 7265.399648] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7265.439445] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7265.479205] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
<[ 7265.558755] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7265.598546] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
<[ 7265.678083] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7265.717932] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7265.757693] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
<[ 7265.837245] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7265.877036] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7265.916805] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
< 25.14 fps, dropped buffers: 20
[ 7265.996395] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7266.036137] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7266.075901] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
<[ 7266.155397] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7266.195173] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7266.234948] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
<[ 7266.314575] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7266.354313] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7266.394114] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
<[ 7266.473679] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7266.513418] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
<[ 7266.592939] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7266.632711] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7266.672522] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
<[ 7266.752075] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7266.791885] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7266.831594] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
< 25.14 fps, dropped buffers: 17
[ 7266.911217] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7266.950994] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7266.990859] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
<[ 7267.070303] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7267.110090] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7267.149838] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
<[ 7267.229425] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7267.269203] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7267.308977] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
<[ 7267.388496] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7267.428307] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7267.468069] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
<[ 7267.547567] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7267.587489] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
<[ 7267.666926] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7267.706740] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7267.746480] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
<[ 7267.826070] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7267.865815] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7267.905607] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
< 25.14 fps, dropped buffers: 20
[ 7267.985173] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7268.024949] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7268.064712] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
<[ 7268.144282] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7268.184037] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7268.223830] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
<[ 7268.303346] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7268.343086] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7268.382861] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
<[ 7268.462422] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7268.502264] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
<[ 7268.581800] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7268.621576] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7268.661368] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
<[ 7268.740964] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7268.780679] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7268.820405] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
< 25.14 fps, dropped buffers: 17
[ 7268.900025] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7268.939782] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7268.979505] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
<[ 7269.059130] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7269.098905] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7269.138646] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
<[ 7269.218197] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7269.257995] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
[ 7269.297781] rkcif_mipi_lvds: frame drop to dummy buf, stream id 0
<[ 7269.310578] rkcif_mipi_lvds: stream[0] start stopping
[ 7269.337715] rockchip-mipi-csi2 ffb10000.mipi-csi2: stream off, src_sd: ea4d31e8, sd_name:rockchip-mipi-dphy-rx
[ 7269.337778] rockchip-mipi-csi2 ffb10000.mipi-csi2: stream OFF
[ 7269.337807] rockchip-mipi-dphy
-rx ff4b0000.csi-dphy: stream on:0
[ 7269.338881] rockchip-mipi-dphy-rx ff4b0000.csi-dphy: stream on:0
[ 7269.339169] rkcif_mipi_lvds: stream[0] stopping finishe
3.3:文件生成:
[root@RV1126_RV1109:/tmp]# ls -l[J
total 214964
drwxr-xr-x 2 avahi avahi 40 Aug 4 17:00 avahi-autoipd
-rw-r--r-- 1 root root 0 Aug 4 18:42 cif.out
-rw-r--r-- 1 root root 12441600 Aug 4 17:05 cif12.out
-rw-r--r-- 1 root root 207360000 Aug 4 18:48 cif2.out
-rw-r--r-- 1 root root 66024 Aug 4 17:00 cl_viv_vx_ext.h
drwxr-xr-x 2 root root 60 Aug 4 17:00 dbus
-rw-r--r-- 1 root root 0 Aug 4 17:00 dnsmasq.leases
---------- 1 root root 6 Aug 4 17:00 loglevel
-rw-r--r-- 1 root root 25939 Aug 4 18:48 messages
-rw-r--r-- 1 root root 204809 Aug 4 18:41 messages.0
-rw-r--r-- 1 root root 1351 Aug 4 17:00 mountall.log
drwxr-xr-x 7 root root 180 Aug 4 17:00 nginx
-rw-r--r-- 1 root root 55 Aug 4 17:00 resolv.conf
drwxr-xr-x 2 root root 60 Aug 4 17:00 subsys
4:图像读取:
adb pull /tmp/cif.out
5 结论
1:调试过程较为波折,最终实现该功能。
2:FPGA实现MIPI CSI-2发送,扩展了RV1126的视频输入接口。FPGA可实现LVDS,Cameralink,HDMI,SDI,自定义通信接口等向MIPI CSI的转换。
3:FPGA器件厂家,可选择安陆,高云,易灵思,紫光同创,LATTICE,XILINX等。
4:欢迎讨论交流。