zoukankan      html  css  js  c++  java
  • 迅为 RK3399开发板Android8系统-ov13850摄像头移植分析

    迅为 RK3399开发板Android8系统-ov13850摄像头移植分析

    本文将讲解 OV13850 摄像头在开发板上的配置过程。接口效果图如下所示:

     

    21.18.1 设备树配置

    1 打开设备树 itop-3399_8.1/kernel/arch/arm64/boot/dts/rockchip/rk3399-android.dtsi 文件,如下图所示。

    camera 我们使用 ISP1

     

     

    21.18.2 驱动说明

    Android 部分:

    itop-3399_8.1/hardware/rockchip/camera/CameraHal 是摄像头的 HAL 源码

    itop-3399_8.1/hardware/rockchip/camera/SiliconImage ISP 库,包括所有支持模组的驱动源码

    itop-3399_8.1/hardware/rockchip/camera/SiliconImage/isi/drv/OV13850 OV13850 模组的驱动源码

    itop-3399_8.1/hardware/rockchip/camera/SiliconImage/isi/drv/OV13850/calib/OV13850.xml OV13850 模组的

    调校参数

    itop-3399_8.1/hardware/rockchip/camera/Config/cam_board_rk3399.xml 文件可以设置摄像头的参数

    Kernel 部分:

    itop-3399_8.1/kernel/drivers/media/video/rk_camsys CamSys 驱动源码

    21.18.3 原理图分析

    配置摄像头需要配置摄像头的 GPIO 和时钟,即可完成配置。我们打开摄像头的原理图,如下图所示:

     

     

    然后在开发板的底板原理图找到这俩个引脚,再在找到核心板原理图中找到对应的引脚,如下图所示:

     

     

    对应的接口

     

     

    21.18.4 配置 Android

    1 修改 itop-3399_8.1/itop-3399_8.1/hardware/rockchip/camera/Config/cam_board_rk3399.xml 文件用来

    注册摄像头,如下图所示:

     

     

    接下来我们来分析一下分别代表什么含义。

    1 Sensor 名称

    <SensorName name="OV13850" ></SensorName>

    2 Sensor 软件标识

    <SensorDevID IDname="CAMSYS_DEVID_SENSOR_1A"></SensorDevID>

    保证驱动标识不一致即可,可选项有

    CAMSYS_DEVID_SENSOR_1A

    CAMSYS_DEVID_SENSOR_1B

    CAMSYS_DEVID_SENSOR_2

    3 Sensor 采集控制器的名称

    <SensorHostDevID busnum="CAMSYS_DEVID_MARVIN" ></SensorHostDevID>

    4 i2c 通道 i2c1,具体通道号请参考摄像头原理图连接主控的 I2C 通道号。原理图查看了是 i2c1

    <SensorI2cBusNum busnum="1"></SensorI2cBusNum>

    5 sensor 寄存器地址长度,单位是字节

    <SensorI2cAddrByte byte="2"></SensorI2cAddrByte>

    6 sensor i2c 频率,单位是 Hz,用于设置 I2C 的频率。

    <SensorI2cRate rate="100000"></SensorI2cRate>

    7 sensor 输入时钟频率,用于设置摄像头的时钟

    <SensorMclk mclk="24000000" delay="1000"></SensorMclk>

    8 Sensor AVDD PMU LDO 名称 如果不是连接到 PMU,那么只需填写 NC

    <SensorAvdd name="NC" min="28000000" max="28000000" delay="0"></SensorAvdd>

    9 Sensor DVDD PMU LDO 名称

    <SensorDvdd name="NC" min="12000000" max="12000000" delay="0"></SensorDvdd>

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

    10 Sensor DOVDD PMU LDO 名称

    <SensorDovdd name="NC" min="18000000" max="18000000" delay="5000"></SensorDovdd>

    11 Sensor PowerDown 引脚

    <SensorGpioPwdn0 ioname="RK30_PIN2_PD4" active="0"></SensorGpioPwdn0> //mipi

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

    12 Sensor Reset 引脚

    <SensorGpioRst ioname="RK30_PIN2_PD3" active="0"></SensorGpioRst>

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

    13 Sensor Power 引脚

    <SensorGpioPwen ioname="NC" active="1" delay="1000"></SensorGpioPwen>

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

    14 选择 Sensor 作为前置还是后置

    <SensorFacing facing="back"></SensorFacing>

    可填写

    front”或“back”

    15 Sensor 的接口方式

    <SensorInterface mode="MIPI"></SensorInterface>

    16 Sensor 的镜像方式

    <SensorMirrorFlip mirror="0"></SensorMirrorFlip>

    17 Sensor 的角度信息

    <SensorOrientation orientation="0"></SensorOrientation>

    18 物理接口设置

    <SensorPhy phyMode="CamSys_Phy_Mipi" lane="2" phyIndex="1" sensorFmt="CamSys_Fmt_Raw_10b">

    </SensorPhy>

    hyMode: Sensor 接口硬件连接方式,对 MIPI Sensor 来说,该值取"CamSys_ Phy_ Mipir"

    Lane: Sensor mipi 接口数据通道数

    Phyindex: Sensor mipi 连接的主控 mipi phy 编号

    sensorFmt: Sensor 输出数据格式,目前前支持 CamSys_ Fmt. Raw_ 10b

    21.18.5 编译内核

    我们需要将驱动源码 itop-3399_8.1/kernel/drivers/media/video/rk_camsys 编译进内核,配置方法如下:

    (1) itop-3399_8.1/kernel/arch/arm64/configs/rockchip_linux_defconfig 是内核默认配置文件,我们在修改之

    前要将其备份。

    (2) 然后用 itop-3399_8.1/kernel/arch/arm64/configs/rockchip_linux_defconfig 文件覆盖

    itop-3399_8.1/kernel/.config 文件,然后输入 make menuconfig 进行配置,输入以下命令:

    cp -r arch/arm64/configs/rockchip_linux_defconfig .config

    make menuconfig

     

     

    (3) 将以下配置打开,如下图所示:

    -> Device Drivers

    -> Multimedia support (MEDIA_SUPPORT [=y])

    -> camsys driver (CAMSYS_DRV [=y])

    (1)

    -> RockChip camera system driver

     

     

     

     

     

     

    (4)配置完之后生成新的.config 文件,我们将其覆盖默认配置文件,然后重新编译内核。

    cp -r .config arch/arm64/configs/rockchip_linux_defconfig

    编译完成烧写镜像,终端下可以直接修改 /system/etc/cam_board.xml 调试各参数并重启生效。Android8

    源码里面 itop-3399_8.1/RKDocs 可以查看详细的资料。

  • 相关阅读:
    ISTQB测试人员认证 初级(基础级)大纲
    5.2 测试计划和估算
    4. 测试设计技术
    V模型与测试级别
    1.3 Seven Testing Principles
    什么是DNS?
    总结SQL查询慢的50个原因
    CPU分几核几核的是什么意思?
    监控查询慢sql
    关于并发用户数的思考-通过PV量换算并发
  • 原文地址:https://www.cnblogs.com/topeet/p/15428870.html
Copyright © 2011-2022 走看看