camera 使用
简介
firefly-rk3399 开发板分别带有两个mipi,一个dvp摄像头接口,mipi支持最高4k拍照,并支持 1080p 30fps以上视频录制。此外,开发板还支持 usb 摄像头。
本文以 ov13850/ov5640 摄像头为例,讲解在该开发板上的配置过程。
接口效果图
dts配置
isp0: isp@ff910000 { … status = okay; } isp1: isp@ff920000 { … status = okay; }
驱动说明
与摄像头相关的代码目录如下:
android: `- hardware/rockchip/camera/ |- camerahal // 摄像头的 hal 源码 `- siliconimage // isp 库,包括所有支持模组的驱动源码 `- isi/drv/ov13850 // ov13850 模组的驱动源码 `- calib/ov13850.xml // ov13850 模组的调校参数 `- device/rockchip/rk3399/ |- rk3399_firefly_aio_box | `- cam_board.xml // 摄像头的参数设置 kernel: |- kernel/drivers/media/video/rk_camsys // camsys 驱动源码 `- kernel/include/media/camsys_head.h
配置原理
设置摄像头相关的引脚和时钟,即可完成配置过程。
从以下摄像头接口原理图可知,需要配置的引脚有:af_vdd28、dovdd18、avdd28、dvdd12、pwdn1、rst 和 mclk。
mipi接口
dvp接口
af_vdd28 可不做配置。
dovdd18、avdd28 由 dvp_pwr 控制,dvp_pwr 对应 rk3399 的 gpio1_c7:
dvdd12 由 cif_power 引脚控制,cif_power 对应 rk3399 上的 gpio1_c6 引脚:
mipi cif:pwdn0(共用)、pwdn1、rst 对应 gpio2_b4、gpio2_d4、gpio0_b0 引脚:
在开发板中,除了 dvdd12 (cif_power) 要在 dts中设置以外,其它引脚都是在 cam_board.xml 中设置。
配置步骤
配置 android
修改device/rockchip/rk3399/$(target_product)/cam_board.xml 来注册摄像头:
boardxmlversion> sensor> vcm> flash> hardwareinfo> awb> sence> effect> focusmode> flashmode> antibanding> dv> softwareinfo> camdevie> boardfile>
主要修改的内容如下:
sensor 名称
sensorname>
该名字必须与 sensor 驱动的名字一致,目前提供的 sensor 驱动格式如下:
libisp_isi_drv_ov13850.so
sensor 软件标识
sensordevid>
注册标识不一致即可,可填写以下值:
camsys_devid_sensor_1a camsys_devid_sensor_1b camsys_devid_sensor_2
采集控制器名称
sensorhostdevid>
目前只支持:
camsys_devid_marvin
sensor 所连接的主控 i2c 通道号
sensori2cbusnum>
具体通道号请参考摄像头原理图连接主控的 i2c 通道号。
sensor 寄存器地址长度,单位:字节
sensori2caddrbyte>
sensor 的 i2c 频率,单位:hz,用于设置 i2c 的频率。
sensori2crate>
sensor 输入时钟频率, 单位:hz,用于设置摄像头的时钟。
sensormclk>
sensor avdd 的 pmu ldo 名称。如果不是连接到 pmu,那么只需填写 nc。
sensoravdd>
sensor dovdd 的 pmu ldo 名称。
sensordovdd>
如果不是连接到 pmu,那么只需填写 nc。注意 min 以及 max 值必须填写,这决定了 sensor 的 io 电压。
sensor dvdd 的 pmu ldo 名称。
sensordvdd>
如果不是连接到 pmu,那么只需填写 nc。
sensor powerdown 引脚。
sensorgpiopwdn>
直接填写名称即可,active 填写休眠的有效电平。
sensor reset 引脚。
sensorgpiorst>
直接填写名称即可,active 填写复位的有效电平。
sensor power 引脚。
sensorgpiopwen>
直接填写名称即可, active 填写电源有效电平。
选择 sensor 作为前置还是后置。
sensorfacing>
可填写 “front” 或 “back”。
sensor 的接口方式
sensorinterface>
可填写如下值:
ccir601 ccir656 mipi smia
sensor 的镜像方式
sensormirrorflip>
目前暂不支持。
sensor 的角度信息
sensororientation>
物理接口设置
mipi
sensorphy>
hymode:sensor 接口硬件连接方式,对 mipi sensor 来说,该值取 “camsys_phy_mipi” lane:sensor mipi 接口数据通道数 phyindex:sensor mipi 连接的主控 mipi phy 编号 sensorfmt:sensor 输出数据格式,目前仅支持 camsys_fmt_raw_10b
dvp
sensorphy>
phymode: sensor 接口硬件连接方式,dvp sensor 接口则为:camsys_phy_cif sensor_d0_to_cif_d:sensor dvp 输出数据位 d0 对应连接的主控 dvp 接口的数据位号码 cif_num:sensor dvp 连接到主控 dvp 接口编号 sensorfmt:sensor 输出的数据格式,目前版本支持填写 camsys_fmt_yuv422_8b
编译内核需将 drivers/media/video/rk_camsys 驱动源码编进内核,其配置方法如下:
在内核源码目录下执行命令:
make menuconfig
然后将以下配置项打开:
device drivers ---> multimedia support ---> camsys driver rockchip camera system driver ---> camsys driver for marvin isp camsys driver for cif
最后执行:
make arch=arm64 rk3399-firefly.img
即可完成内核的编译。
调试方法
终端下可以直接修改/system/etc/cam_board.xml调试各参数并重启生效
faqs
1.无法打开摄像头,首先确定sensor i2c是否通信。若不通则可检查mclk以及供电是否正常(power/powerdown/reset/mclk/i2cbus)分别排查 2.支持列表ː 13mː ov13850/imx214-0aqh5 8mː ov8825/ov8820/ov8858-z(r1a)/ov8858-r2a 5mː ov5648/ov5640 2mː ov2680 详细资料可查询sdk/rkdocs
风电高电压穿越测试方案详解
怎样的架构图是好的架构图
反馈放大电路的类型判定方法
加速我国无人驾驶汽车健康发展,应做到正向看待无人驾驶
基于无桥Boost的单级PFC半桥DC/DC变换器
Firefly-RK3399开发板
可燃气体报警器的检定
盈鹏飞科技EP9315嵌入式主板介绍
手持机充电底座的设计特点是什么
泰克P6139A和P6139B示波器无源探头有什么区别?
单晶硅和多晶硅的区别
5G网络建设加快,机器人即将迎来新转机
你一定没见过:这款LED灯曾获米兰设计奖 还能和人打招呼?
汽车引擎的空转时间如何利用rfid技术减少
我国云安全行业市场规模将实现爆发式扩大,预计2021年将达115亿元
Vishay推可抵御200W高浪涌的新款SMD ESD保护二极管
富士康半导体版图成形 12吋晶圆厂走IDM模式
全国林草系统预警监测暨防火信息化培训班学员现场观摩英卡电子林下火情监测预警演示
UPS不间断电源广泛应用于各个行业
漆包线焊锡选激光,一种高效的焊接方法