Loading...
首页专栏正文

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

 
1人已赏
free-jdx 发布于 2020-11-26 18:26:44 浏览 4584 点赞 241 收藏 33

1. 前言

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

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

2. 相机优缺点分析

模拟相机:

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

数字相机:

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

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

3. 接口分析

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

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

*本文仅代表作者观点,不代表易百纳技术社区立场。系作者授权易百纳技术社区发表,未经许可不得转载。

精彩评论

内容存在敏感词
打赏
打赏作者
free-jdx
您的支持将鼓励我继续创作!
金额:
¥1 ¥5 ¥10 ¥50 ¥100
支付方式:
微信支付
支付宝支付
微信支付
打赏成功!

感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

易百纳技术社区
确定要删除此文章、专栏、评论吗?
确定
取消
易百纳技术社区