首页 > 技术知识 > 正文

1. 前言

由于需要在V5平台接四路相机用于环视使用;

普遍是有模拟相机和数字相机两种选择。

2. 相机优缺点分析

模拟相机:

便宜、接线方便可以长距离传输、方便支持多路视频采集

数字相机:

贵,常规mipi不支持长距离传输,调试ISP复杂 【其实也有长距离传输的数字相机,例如fpdlink和gmsl,只是整体方案价格比较贵】

最终选择模拟方案,这里用的是nextchip的N3芯片

3. 接口分析

N3 支持4路 CVBS/AHD 1.0 /AHD2.0 模拟相机输入,一路BT656 或 BT1120 YUV422输出;

全志平台N3模块调试(1)方案分析&驱动配置

V5平台正好支持两路BT656和BT1120接口输入。

4. 底层环境配置

底层环境主要包括camera驱动移植和sysconfig配置

(1)N3驱动适配

按照NVP原厂提供的配置表,根据全志平台通用驱动修改相应驱动 有几个关键的地方需要修改,如下:

a. 通道设置

通用驱动中查找sensor_g_mbus_config接口; 这里设置了两个CH通路

cfg->type = V4L2_MBUS_BT656; cfg->flags = CLK_POL | CSI_CH_0 | CSI_CH_1;

b. 格式设置

这里YUV格式是根据N3的实际输出的图像格式来设置的

.desc = “BT656 4CH”, .mbus_code = MEDIA_BUS_FMT_YUYV8_2X8, .regs = NULL, .regs_size = 0, .bpp = 2,

c. 编译模块 添加驱动模块编译成驱动模块

obj-m += n3/ (2)sysconfig配置

pinmux配置如下: 低八位对齐

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>

I2C配置如下: 由于使用的是twi2,所以只需要开启twi2即可

[twi2] twi2_used = 1 twi2_scl = port:PI01<5><default><default><default> twi2_sda = port:PI02<5><default><default><default>

sensor配置如下:

[vind0/sensor1] sensor1_used = 1 sensor1_mname = “nvp6124” ;use twi 2 group sensor1_twi_cci_id = 0 sensor1_twi_addr = 0x60 ;use mclk 0 group sensor1_mclk_id = 2 sensor1_pos = “rear” sensor1_isp_used = 0 sensor1_fmt = 0 sensor1_vflip = 0 sensor1_hflip = 0 sensor1_iovdd = “iovdd-csi” sensor1_iovdd_vol = 3300000 sensor1_avdd = “” sensor1_avdd_vol = sensor1_dvdd = “dvdd-csi” sensor1_dvdd_vol = 1800000 ;AHD power sensor1_power_en = sensor1_reset = port:PB05<1><0><1><0> sensor1_pwdn = port:PB08<1><0><1><1>
<

两路video通路配置如下: 实际只需要接入两路AHD相机,所以这里只配置了两路video通路

[vind0/vinc0] vinc0_used = 1 vinc0_csi_sel = 0 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 = 0 vinc1_mipi_sel = 0xff vinc1_isp_sel = 0 vinc1_isp_tx_ch = 0 vinc1_rear_sensor_sel = 0 vinc1_front_sensor_sel = 0 vinc1_sensor_list = 0 (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/vin_v4l2.ko

按照上面搭建好底层调试环境后,加载上述驱动后,会出现四个video设备; 分别为video0/1/2/3

猜你喜欢