[RK3399][Android7.1] 移植笔记 OV13850 Camera


平台 内核版本 安卓版本
RK3399 Linux4.4 Android7.1

文章目录

    • 1、基本配置与编译
      • 1.1、DTS 配置
      • 1.2、代码结构
      • 1.3、管脚配置
      • 1.4 、配置 Android
        • 1.4.1、Sensor 名称
        • 1.4.2、Sensor 软件标识
        • 1.4.3、采集控制器名称
        • 1.4.4、I2C 通道
        • 1.4.5、Sensor 寄存器地址长度
        • 1.4.6、Sensor 的 I2C 频率
        • 1.4.7、Sensor 输入时钟频率
        • 1.4.8、Sensor AVDD 的 PMU LDO 名称
        • 1.4.9、Sensor DVDD 的 PMU LDO 名称
        • 1.4.10、Sensor DOVDD 的 PMU LDO 名称
        • 1.4.11、Sensor PowerDown 引脚
        • 1.4.12、Sensor Reset 引脚。
        • 1.4.13、Sensor Power 引脚
        • 1.4.14、选择 Sensor 作为前置还是后置
        • 1.4.15、Sensor 的接口方式
        • 1.4.16、Sensor 的镜像方式
        • 1.4.17、Sensor 的角度信息
        • 1.4.18、物理接口设置
      • 1.5、编译内核

开发板:
[RK3399][Android7.1] 移植笔记 OV13850 Camera_第1张图片

1、基本配置与编译

1.1、DTS 配置

打开对应 isp 即可。
我们 isp0 已经用于 HDMI IN 功能。
所以 Camera 使用的是 isp1 。

 isp0: isp@ff910000 {
	 …
	 status = "okay";
 }
 isp1: isp@ff920000 {
	 …
	 status = "okay";
 }

1.2、代码结构

目录:hardware/rochip/camera

文件名 内容
cam_board_rk3399.xml 摄像头的参数设置

目录:hardware/rochip/camera/CameraHal/SiliconImage

文件名 内容
isi/drv/OV13850 OV13850 模组的驱动源码
calib/OV13850.xml OV13850 模组的调校参数

1.3、管脚配置

需要设置 Camera 的 GPIO 及时钟。
由如下原理图可知,需要配置
[RK3399][Android7.1] 移植笔记 OV13850 Camera_第2张图片
[RK3399][Android7.1] 移植笔记 OV13850 Camera_第3张图片
对应接口

管脚 对应管脚
I2C通道 I2C1
MIPI_CSI0_RST GPIO2_D3
MIPI_CSI0_PWN GPIO2_D4

1.4 、配置 Android

修改 hardware/rockchip/camera/Config/cam_board_rk3399.xml 来注册摄像头:

1.4.1、Sensor 名称


该名字必须与 Sensor 驱动名字一致。驱动格式如下
libisp_isi_drv_OV13850.so
用户可在编译 Android 完成后在目录 out/target/product/rk3399_mid/system/lib/hw/ 找到该文件

1.4.2、Sensor 软件标识


保证驱动标识不一致即可,可选项有
CAMSYS_DEVID_SENSOR_1A //已经由 HDMI IN 使用
CAMSYS_DEVID_SENSOR_1B
CAMSYS_DEVID_SENSOR_2

1.4.3、采集控制器名称


目前可选的仅有
CAMSYS_DEVID_MARVIN

1.4.4、I2C 通道


参考原理图,我们所用的是 I2C1

1.4.5、Sensor 寄存器地址长度


1.4.6、Sensor 的 I2C 频率

单位:Hz,用于设置 I2C 的频率。


1.4.7、Sensor 输入时钟频率

单位:Hz,用于设置摄像头的时钟。


1.4.8、Sensor AVDD 的 PMU LDO 名称

如果不是连接到 PMU,那么只需填写 NC。


1.4.9、Sensor DVDD 的 PMU LDO 名称


1.4.10、Sensor DOVDD 的 PMU LDO 名称


如果不是连接到 PMU,那么只需填写 NC。
注意 min 以及 max 值必须填写,这决定了 Sensor 的 IO 电压。

1.4.11、Sensor PowerDown 引脚

  //mipi
 //dvp

直接填写名称即可,active 填写休眠的有效电平。

1.4.12、Sensor Reset 引脚。


直接填写名称即可,active 填写复位的有效电平。

1.4.13、Sensor Power 引脚


直接填写名称即可, active 填写电源有效电平。

1.4.14、选择 Sensor 作为前置还是后置


可填写 “front” 或 “back”。

1.4.15、Sensor 的接口方式


可填写如下值:
CCIR601
CCIR656
MIPI
SMIA

1.4.16、Sensor 的镜像方式


目前暂不支持。

1.4.17、Sensor 的角度信息


1.4.18、物理接口设置

MIPI

   

hyMode:Sensor 接口硬件连接方式,对 MIPI Sensor 来说,该值取 “CamSys_Phy_Mipi”
Lane:Sensor mipi 接口数据通道数
Phyindex:Sensor mipi 连接的主控 mipi phy 编号
sensorFmt:Sensor 输出数据格式,目前支持 CamSys_Fmt_Raw_10b

DVP


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

1.5、编译内核

需将 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-orangepi.img 

你可能感兴趣的:(子类__Camera)