camera(3)sensor power

一、pinmap介绍

  • 三路电压

camera包含的三路电压为模拟电压(VCAMA),数字电压(VCAMD),IO口电压(VCAMIO)

  • I2C信号

BB与Sensor端通过I2C来通信(读写寄存器),包含SCL(I2C clock)、SDA(I2C Data)信号

  • mipi接口几条lane

mipi data是成对的差分信号,MIPI_RDN和MIPI_RDP,有几对这样的pin脚,则说明是几条lane,同一颗sensor由于register setting不同,输出的信号可能是2lane或者4lane等

  • parallel接口高低八位

parallel接口一般data有10根pin,分别叫做Data0~Data9,Parallel sensor输出的data信号是8根pin时,这八根pin接到的是Data0~Data7还是Data2~Data9,需要配置正确,叫做接到高八位或者低八位,接错了可能产生如下现象。

  • Data Format

Sensor输出的数据格式,对于YUV Sensor来说,Data Fomat一般有YUYV,YVYU,UYVY等,配置不对可能会导致颜色和亮度错掉,例如下图:

对于Raw Sensor来说,Data Format就是First Pixel的颜色,分为R,Gr,Gb,B,配置不对会导致颜色错误。

  • MLCK

BB提供给Sensor的外部clock

  • PLCK

Parallel接口的Sensor输出的clock,该clock变化一次,data更新一次

  • mipi信号

mipi信号包括mipi clock和mipi data,该信号是高速信号,用来传输mipi数据包

二、具体说明

三、详细配置

        MTK平台能给Sensor供电的部分,通常有GPIO和PMIC。GPIO供电还是REGULATOR供电 查看原理图与规格书。供电配置文件路径:

kernel-$(KernelVersion)/drivers/misc/mediatek/imgsensor/src/$(Platform)/camera_hw/imgsensor_cfg_table.c

  struct IMGSENSOR_HW_CFG imgsensor_custom_config[] = {
     {
         IMGSENSOR_SENSOR_IDX_MAIN, //Main Sensor or Sub Sensor
         IMGSENSOR_I2C_DEV_0,
         {
             /* pin脚的功能 由谁提供 */
             {IMGSENSOR_HW_PIN_MCLK, IMGSENSOR_HW_ID_MCLK},
             {IMGSENSOR_HW_PIN_AVDD, IMGSENSOR_HW_ID_REGULATOR}, //IMGSENSOR_HW_ID_REGULATOR, power by PMIC
             {IMGSENSOR_HW_PIN_DOVDD, IMGSENSOR_HW_ID_REGULATOR},
             {IMGSENSOR_HW_PIN_DVDD, IMGSENSOR_HW_ID_GPIO}, //IMGSENSOR_HW_ID_GPIO,power by GPIO
             {IMGSENSOR_HW_PIN_PDN, IMGSENSOR_HW_ID_GPIO},
             {IMGSENSOR_HW_PIN_RST, IMGSENSOR_HW_ID_GPIO},
             {IMGSENSOR_HW_PIN_NONE, IMGSENSOR_HW_ID_NONE},
         },
 }

kernel-$(KernelVersion)/drivers/misc/mediatek/imgsensor/src/common/v1_1/sensor_pwr_seq.c 定义上电时序。

struct IMGSENSOR_HW_POWER_INFO {
    enum IMGSENSOR_HW_PIN pin;
    enum IMGSENSOR_HW_PIN_STATE pin_state_on;
    u32 pin_on_delay;
    enum IMGSENSOR_HW_PIN_STATE pin_state_off;
    u32 pin_off_delay;
};
struct IMGSENSOR_HW_POWER_SEQ {  //上电时序结构体
    char *name;
    struct IMGSENSOR_HW_POWER_INFO pwr_info[IMGSENSOR_HW_POWER_INFO_MAX];
    u32 _idx;
};
 根据hw 配置正确的电源,具体连接的哪一路需要在dts/dws 文件配置, 确保check到位。

 struct IMGSENSOR_HW_POWER_SEQ sensor_power_sequence[] = {
 #if defined(IMX576_MIPI_RAW)
     {
         SENSOR_DRVNAME_IMX576_MIPI_RAW,
         {
             /* pin, vol, delay 从上之下上电时序,从下到上下电时序*/
             {RST, Vol_Low, 0},
             {AVDD, Vol_2800, 1},
             {DOVDD, Vol_1800, 1},
             {DVDD, Vol_1100, 5},
             {SensorMCLK, Vol_High, 0},
             {RST, Vol_High, 2}
         },
     },
 #endif
//从上到下是上电的sequence,根据sensor FAE提供的datasheet 来填写,供电正常是i2c通信的前提条件,因此每一项都需要准确无误。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值