Camera_User_Manual

 

3288android_5.1

《RK3288_Camera_User_Manual_v1.4》

版本获取方式

[sys_graphic.OV13850.ver]: [0.9.0]         sensor 驱动版本号
[sys_graphic.OV5640.ver]: [0.8.0]          sensor 驱动版本号
[sys_graphic.cam_camboard.ver]: [0.13.0]    支持 cam_board.xml 的版本
[sys_graphic.cam_dri_v4l2.ver]: [3.10.0]    camsys 驱动版本
[sys_graphic.cam_drv_camsys.ver]: [0.32.0]  camsys 驱动版本
[sys_graphic.cam_hal.ver]: [1.55.1]         CameraHal 版本
[sys_graphic.cam_isi.ver]: [0.10.0]         ISI 接口版本
[sys_graphic.cam_libisp.ver]: [1.39.0]      ISP 库版本
[sys_graphic.cam_trace]: [0]

我是接了一个OV5640(YUV)、OV13850(MIPI)、USB摄像头

由于各个源码以及库之间版本需要匹配使用,所以在代码中已经做了版本校验规则,
如果出现 panic 等信息,麻烦先关注是否是版本之间的不匹配导致! !

 

例如:
D/CameraHal( 1739): CamSys_Head.h Version Check:
D/CameraHal( 1739): Kernel camsys_head.h: v0.6.0
D/CameraHal( 1739): Kernel camsys_drv : v0.8.0
D/CameraHal( 1739): CameraHal camsys_head.h : v0.7.0
D/CameraHal( 1739):
D/CameraHal( 1739):
D/CameraHal( 1739):
F/CameraHal( 1739): static int
camera_board_profiles::RegisterSensorDevice(rk_cam_total_info*):
F/CameraHal( 1739): VERSION-WARNING: camsys_head.h version isn't match in Kernel and CameraHal
 

如何注册 DVP/MIPI Sensor

注册 DVP/MIPI Sensor 方式通过填写 cam_board.xml 来实现,该文件使用简要说明
如下:
注:如果机器中没有 DVP/MIPI Sensor,删除 cam_board.xml 文件即可;
<BoardXmlVersion version="v0.2.0">
以上标识的为当前 xml 文件的版本号, 如果与 sys_graphic.cam_camboard.ver 不一致,
可能导致错误,麻烦更新 cam_board.xml。

 

Sensor 注册信息

<SensorName name="OV2659" ></SensorName>
    填写 Sensor 名字,该名字必须与 Sensor 驱动的名字一致,目前提供的 Sensor 驱动如下:

<SensorDevID IDname="CAMSYS_DEVID_SENSOR_1A"></SensorDevID>
    填写 Sensor 软件 ID,注册的 ID 只需要不一致即可,可填写以下值:
        CAMSYS_DEVID_SENSOR_1A
        CAMSYS_DEVID_SENSOR_1B
        CAMSYS_DEVID_SENSOR_2
从这里猜测最多可以接三个摄像头,待取证

<SensorHostDevID busnum="CAMSYS_DEVID_MARVIN" ></SensorHostDevID>
    填写采集控制器名称,目前只支持填写:
        CAMSYS_DEVID_MARVIN
 

<SensorI2cBusNum busnum="3"></SensorI2cBusNum>
    填写 Sensor 所连接的主控 I2C 通道号
<SensorI2cAddrByte byte="2"></SensorI2cAddrByte>
    填写 Sensor 寄存器地址长度,单位:Byte
<SensorI2cRate rate="100000"></SensorI2cRate>
    填写 Sensor 的 I2C 频率,单位:Hz
<SensorMclk mclk="24000000"></SensorMclk>
    填写 Sensor 输入时钟频率, 单位:Hz
<SensorAvdd name="NC" min="0" max="0"></SensorAvdd>
    填写 Sensor AVDD 的 PMU LDO 名称,如果不是连接到 PMU,那么只需填写 NC
<SensorDovdd name="NC" min="18000000" max="18000000"></SensorDovdd>
    填写 Sensor DOVDD 的 PMU LDO 名称,如果不是连接到 PMU,那么只需填写 NC,注意 min
    以及 max 值必须填写,这决定了 Sensor 的 IO 电压;
<SensorDvdd name="NC" min="0" max="0"></SensorDvdd>
    填写 Sensor DVDD 的 PMU LDO 名称,如果不是连接到 PMU,那么只需填写 NC
<SensorGpioPwdn ioname="RK30_PIN2_PB4" active="1"></SensorGpioPwdn>
    填写 Sensor PowerDown 引脚,直接填写名称即可, active 填写休眠的有效电平
<SensorGpioRst ioname="RK30_PIN2_PB6" active="0"></SensorGpioRst>
    填写 Sensor Reset 引脚,直接填写名称即可, active 填写复位的有效电平
<SensorGpioPwen ioname="RK30_PIN0_PC1" active="1"></SensorGpioPwen>
    填写 Sensor Power 引脚,直接填写名称即可, active 填写电源有效电平
<SensorFacing facing="front"></SensorFacing>
    填写 Sensor 作为前置还是后置,可填写如下值:
        front
        back
<SensorInterface mode="CCIR601"></SensorInterface>
   这是文档中的

<SensorInterface interface="MIPI"></SensorInterface>

   这是实际的

填写 Sensor 的接口方式,可填写如下值:
        CCIR601
        CCIR656,
        MIPI,
        SMIA
<SensorMirrorFlip mirror="0"></SensorMirrorFlip>
     暂不支持
<SensorOrientation orientation="0"></SensorOrientation>
    填写 Sensor 的角度信息
<SensorPowerupSequence seq="1234"></SensorPowerupSequence>
    暂不支持
<SensorFovParemeter h="60.0" v="60.0"></SensorFovParemeter>
    FOV 配置选项, h 代表水平视角度数,v 代表垂直视角度数
    理论上,FOV 值可以由模组规格书中获得,由于可能不精确,在测试 Cts_Verify FOV
选项时,可以先测试一张全分辨率照片,查看具体的 FOV 值,然后将测试出的 FOV 值重新填
入该处,重新烧写固件测试。
<SensorAWB_Frame_Skip fps="15"></SensorAWB_Frame_Skip>
    设置 Camera 进入时,过滤 awb 不稳定的最大帧数
    如果 sensor 帧率可以达到 30 帧,建议设置成 15 帧;
    如果 sensor 帧率只在 15 帧左右,建议跳桢数减少,避免刚进入黑屏时间较长。
DVP Sensor:
<SensorPhy phyMode="CamSys_Phy_Cif" sensor_d0_to_cif_d ="2" cif_num="0"
sensorFmt="CamSys_Fmt_Raw_10b"></SensorPhy>

     phyMode:
        Sensor 接口硬件连接方式,可填写如下值:
            CamSys_Phy_Cif
      sensor_d0_to_cif_d:
            Sensor DVP 输出数据位 D0 对应连接的主控 DVP 接口的数据位号码
     cif_num:
             Sensor DVP 连接到主控 DVP 接口编号
     sensorFmt:
             Sensor 输出的数据格式,目前版本仅支持填写 CamSys_Fmt_Raw_10b
 

MIPI Sensor:
<SensorPhy phyMode="CamSys_Phy_Mipi" lane="1" phyIndex="0"
sensorFmt="CamSys_Fmt_Raw_10b"></SensorPhy>

     phyMode:
          Sensor 接口硬件连接方式,可填写如下值:
               CamSys_Phy_Mipi
     lane:
          Sensor mipi 接口数据通道数
     phyindex:
           Sensor mipi 连接的主控 mipi phy 编号
     sensorFmt
               Sensor 输出数据格式,目前仅支持 CamSys_Fmt_Raw_10b
 

VCM 注册信息

<VCMDrvName name="NC"></VCMDrvName>
        填写马达驱动 IC 的名称,如果 Sensor 集成马达驱动 IC 的话,请填写:
              BuiltInSensor
<VCMName name="NC"></VCMName>
       填写马达的名称
<VCMI2cBusNum busnum="0"></VCMI2cBusNum>
      填写马达驱动 IC 的连接的主控 I2C 通道号,一般与 Sensor 同一个通道
<VCMI2cAddrByte byte="0"></VCMI2cAddrByte>
      填写马达驱动 IC 的 i2c 地址字节数
<VCMI2cRate rate="0"></VCMI2cRate>
      填写马达驱动 IC 的 i2c 速率
<VCMVdd name="NC" min="0" max="0"></VCMVdd>
      填写模组上连接 AF_VCC(马达电源)的 PMU_LDO 名称
<VCMGpioPwdn ioname="NC" active="0"></VCMGpioPwdn>
      填写模组上马达驱动 IC 的休眠使能 IO,一般与 Sensor 的休眠使能 IO 一致
<VCMGpioPower ioname="NC" active="0"></VCMGpioPower>
     填写使能模组 AF_VCC 的使能 IO
<VCMCurrent start="20" rated="80" vcmmax="100" stepmode="13"
drivermax="100"></VCMCurrent>

     填写马达的电流参数:
         start: 马达的启动电流
         rated: 马达的额定电流
         vcmmax: 马达的最大电流
         stepmode: 马达驱动 ic 的电流输出方式,该指标关系到马达的移动速度,麻烦参
     考驱动 icdatasheet;
             drivermax: 马达驱动 ic 的最大输出电流
注意事项:start、rated、stepmode 这 3 项指标有可能会导致马达在对焦过程中的异响问题;
 

软件功能配置信息

<Focus_Mode_Continuous_Picture support="1"></Focus_Mode_Continuous_Picture>
    配置是否使能拍照预览界面的连续对焦功能
          1: 使能该功能
          0: 屏蔽该功能
<DigitalZoom support="1"></DigitalZoom>
    配置是否使能数码变焦功能
          1: 使能该功能
          0: 屏蔽该功能
<Continue_SnapShot support="1"></Continue_SnapShot>
    配置是否使能连拍功能
          1: 使能该功能
          0: 屏蔽该功能
<PreviewSize width="0" height="0"></PreviewSize>
     配置客户强制需求的预览分辨率,一般来说,宽高各设置成 0,由系统来进行选择;但
     是有可能系统选择出来的分辨率帧率过低,那么可以指定你所需要的分辨率;
注:目前 ov8825,建议将该项设置成 1920x1080;

FLASH 注册信息
<FlashName name="Internal"></FlashName>
     Flash 的名称,采用默认值
<FlashI2cBusNum busnum="0"></FlashI2cBusNum>
     暂不支持
<FlashI2cAddrByte byte="0"></FlashI2cAddrByte>
    暂不支持
<FlashI2cRate rate="0"></FlashI2cRate>
    暂不支持
<FlashTrigger ioname="NC" active="0"></FlashTrigger>
    填写 ISP 的 FLASHTRIGOUT 使能的有效电平,对应 rk3288 GPIO 的 GPIO7‐B5
<FlashEn ioname="NC" active="0"></FlashEn>
    填写 ISP 的 PRILIGHTTRIG 使能的有效电平,对应 rk3288 GPIO 的 GPIO7‐B6
<FlashLuminance luminance="0"></FlashLuminance>
    暂不支持
<FlashColorTemp colortemp="0"></FlashColorTemp>
    暂不支持
<FlashModeType mode="1"></FlashModeType>
   填写 Flash 的工作方式,目前支持以下两种 flash 工作模式:
    Mode 1:
    该模式下 prelight_trig 和 flash_trig 的时序图如下:

prelight_trig 为高, flash_trig 为低时进入 movie/torch mode; prelight_trig 为低, flash_trig 为
高时进入 flash mode。
以 SGN3780 芯片为例:

ENF <‐‐‐‐‐‐> FlashTrigger <‐‐‐‐‐‐> GPIO7‐B5
ENM <‐‐‐‐‐‐> FlashEn <‐‐‐‐‐‐> GPIO7‐B6
ENM 为低, ENF 为高时进入 flash 模式; ENM 为高, ENF 为低时进入 Movie/Torch 模式。
Mode 2:
该模式下 prelight_trig 和 flash_trig 的时序图如下:

prelight_trig 为高, flash_trig 为低进入 movie/torch mode; prelight_trig 为高, flash_trig 为高
时进入 flash mode。
以 SGM3140 芯片为例:

 

FLASH <‐‐‐‐‐‐> FlashTrigger<‐‐‐‐‐‐> GPIO7‐B5
EN <‐‐‐‐‐‐> FlashEn <‐‐‐‐‐‐> GPIO7‐B6
EN 为高, FLASH 为高时进入 flash 模式; EN 为高, FLASH 为低时进入 torch 模式。
注意:在 mode2 情况下, FlashTrigger 和 FlashEn 的有效电平须配置一致,否则会导致panic 错误。
 

cam_board.xml 支持多个 sensor 配置

Cam_board.xml 支持多个 sensor device 配置, 在 xml 里添加自己可能用到的<CamDevie>,
填写上面所述相应所需的硬件信息即可。
例如下图:

如何测试 CTS_Verify FOV

麻烦参考( Sensor 注册信息)中关于<SensorFovParemeter>的说明
 

如何解决开启 Camera 最初几帧的偏色问题

参考( Sensor 注册信息)中关于<SensorAWB_Frame_Skip >的说明;

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值