前言
1. 调试平台: 全志V5/T7等有BT656或BT1120的并行接口,理论有DVP接口的一般都支持
2. NVP6134可使用多路视频同时输入
硬件连接
模拟camera1
模拟camera2 NVP6134 ------>NVCSI0
V5/T7
模拟camera3
模拟camera4 NVP6134 ------>NVCSI1
配置调试环境
1. 配置CSI 2/3 GPIO 配置
不管使用BT656还是BT1120输入,都是这套GPIO配置
[vind0/csi2]
csi2_used = 1
csi2_pck = port:PE00<2><default><default><default>
csi2_hsync = port:PE02<2><default><default><default>
csi2_vsync = port:PE03<2><default><default><default>
csi2_d0 = port:PE04<2><default><default><default>
csi2_d1 = port:PE05<2><default><default><default>
csi2_d2 = port:PE06<2><default><default><default>
csi2_d3 = port:PE07<2><default><default><default>
csi2_d4 = port:PE08<2><default><default><default>
csi2_d5 = port:PE09<2><default><default><default>
csi2_d6 = port:PE10<2><default><default><default>
csi2_d7 = port:PE11<2><default><default><default>
csi2_d8 = port:PE12<2><default><default><default>
csi2_d9 = port:PE13<2><default><default><default>
csi2_d10 = port:PE14<2><default><default><default>
csi2_d11 = port:PE15<2><default><default><default>
csi2_d12 = port:PI07<2><default><default><default>
csi2_d13 = port:PI08<2><default><default><default>
csi2_d14 = port:PI09<2><default><default><default>
csi2_d15 = port:PI10<2><default><default><default>
[vind0/csi3]
csi3_used = 1
csi3_pck = port:PJ00<2><default><default><default>
csi3_hsync = port:PJ02<2><default><default><default>
csi3_vsync = port:PJ03<2><default><default><default>
csi3_d0 = port:PJ04<2><default><default><default>
csi3_d1 = port:PJ05<2><default><default><default>
csi3_d2 = port:PJ06<2><default><default><default>
csi3_d3 = port:PJ07<2><default><default><default>
csi3_d4 = port:PJ08<2><default><default><default>
csi3_d5 = port:PJ09<2><default><default><default>
csi3_d6 = port:PJ10<2><default><default><default>
csi3_d7 = port:PJ11<2><default><default><default>
csi3_d8 = port:PJ12<2><default><default><default>
csi3_d9 = port:PJ13<2><default><default><default>
csi3_d10 = port:PJ14<2><default><default><default>
csi3_d11 = port:PJ15<2><default><default><default>
csi3_d12 = port:PI13<2><default><default><default>
csi3_d13 = port:PI14<2><default><default><default>
csi3_d14 = port:PI15<2><default><default><default>
csi3_d15 = port:PI16<2><default><default><default>
2.添加驱动
obj-m += nvp6134/
obj-m += nvp6134_2/
一个nvp6134驱动可以支持一个PARSER四通道
3. 加载驱动
insmod /lib/modules/4.4.55/videobuf2-dma-contig.ko
insmod /lib/modules/4.4.55/vin_io.ko
insmod /lib/modules/4.4.55/nvp6134.ko
insmod /lib/modules/4.4.55/nvp6134_2.ko
insmod /lib/modules/4.4.55/vin_v4l2.ko
BT656输入+两通道+4路video input
BT656,即实际为8位数据输入,行场同步信号嵌入在data 信号里;
两通道,即每个NVP6134配置成两路模拟信号输入,内部交织成一路B656信号;
4路video input, 即 两路NVP6134,每个6134带两路模拟,这样需要占用两个全志平台的NVCSI端口
1. 通道设置
(1)配置6134内部两通道mode
(2)配置mbus
static int sensor_g_mbus_config(struct v4l2_subdev *sd,
struct v4l2_mbus_config *cfg)
{
cfg->type = V4L2_MBUS_BT656;
cfg->flags = CLK_POL | CSI_CH_0 | CSI_CH_1;
return 0;
}
2. 格式设置
YUV的格式顺序并不影响图像采集,只是影响图像色彩;
所以不太确定YUV顺序的话,可以先把图像通路调通后,再根据图像色彩校准YUV顺序
static struct sensor_format_struct sensor_formats[] = {
{
.desc = "BT656 4CH",
.mbus_code = MEDIA_BUS_FMT_VYUY8_2X8,
.regs = NULL,
.regs_size = 0,
.bpp = 2,
},
};
3. sysconfig配置
(1)配置sensor
主要是id、I2C ID、isp配置、pmu供电配置、reset管脚;
注意: 由于是ISP 需要bypss,所以需要将isp_used关闭
[vind0/sensor0]
sensor0_used = 1
sensor0_mname = "nvp6134"
sensor0_twi_cci_id = 2
sensor0_twi_addr = 0x60
sensor0_mclk_id = 0
sensor0_pos = "front"
sensor0_isp_used = 0
sensor0_fmt = 0
sensor0_stby_mode = 0
sensor0_vflip = 0
sensor0_hflip = 0
sensor0_iovdd = "iovdd-csi"
sensor0_iovdd_vol = 2800000
sensor0_avdd = ""
sensor0_avdd_vol = 2800000
sensor0_dvdd = ""
sensor0_dvdd_vol = 1800000
sensor0_power_en =
sensor0_reset = port:PI1<1><0><1><0>
sensor0_pwdn = port:PI3<1><0><1><0>
[vind0/sensor1]
sensor1_used = 1
sensor1_mname = "nvp6134_2"
sensor1_twi_cci_id = 3
sensor1_twi_addr = 0x60
sensor1_mclk_id = 1
sensor1_pos = "rear"
sensor1_isp_used = 0
sensor1_fmt = 0
sensor1_stby_mode = 0
sensor1_vflip = 0
sensor1_hflip = 0
sensor1_iovdd = "iovdd-csi"
sensor1_iovdd_vol = 2800000
sensor1_avdd = ""
sensor1_avdd_vol = 2800000
sensor1_dvdd = ""
sensor1_dvdd_vol = 1800000
sensor1_power_en =
sensor1_reset = port:PI2<1><0><1><0>
sensor1_pwdn = port:PI4<1><0><1><0>
(2)配置pipeline
这里只列举了两组pipeline;
csi_sel 需要和实际使用的NVCSI id匹配上;
isp_sel 需要和实际使用的ISP id匹配上 (V5和T7平台都有两个ISP);
isp_tx_ch 这个是ISP的子通道,因为NVP6134的交织图像需要ISP做解交织;
[vind0/vinc0]
vinc0_used = 1
vinc0_csi_sel = 2
vinc0_mipi_sel = 0xff
vinc0_isp_sel = 0
vinc0_isp_tx_ch = 0
vinc0_rear_sensor_sel = 0
vinc0_front_sensor_sel = 0
vinc0_sensor_list = 0
[vind0/vinc1]
vinc1_used = 1
vinc1_csi_sel = 2
vinc1_mipi_sel = 0xff
vinc1_isp_sel = 0
vinc1_isp_tx_ch = 1
vinc1_rear_sensor_sel = 0
vinc1_front_sensor_sel = 0
vinc1_sensor_list = 0