QCOM camera调试的重要参数

本文主要介绍QCOM camera调试的重要参数;

(1)Lane_assign 和lane_mask

现在摄像头基本都是mipi接口类型,因为前后摄都对应到平台这边不同的mipi接口,相应的数据lane需要一一对应;  

  lane assign:

  lane_mask:

比如:

101       <LaneMask>0x1F</LaneMask>                                                                                                                    
102       <LaneAssign>0x4320</LaneAssign>
1
2
0x1F:只有0~4表示有效,对应bit位置为1表示该位的lane或者clock有效,0x1F即表示该mipi接口上的4条data线和clk线都有效;   
0x4320:表示sensor这边几条data线对应到平台这边mipi接口的第几路接口端口映射;bit0~3表示lane0对应平台这边mipi的第0接口,bit12~15表示lane 3对应平台这边mipi的第4接口,那第1个接口就是为时钟clk对接的;  

(2)combo_mode

如该平台这边只有一个mipi phy设备,有时候就需要前后摄共用这个phy,此时combo_mode就要设为1,或者在双摄的情况下:主副摄会与前摄共用,这个值也会设为1,下面是两个camera分配情况:  

比如只有一个PHY interface 的msm8909平台就可以这样配置:  

//前摄配置

151 static struct csi_lane_params_t csi_lane_params = {
152   .csi_lane_assign = 0x004,
153   .csi_lane_mask = 0x18,
154   .csi_if = 1, // not used
155   .csid_core = {0},
156   .csi_phy_sel = 0,
157 };

432   .csiphy_params = {
433     .lane_cnt = 1,
434     .settle_cnt = 0x1b,//0x1b,                                                                                                                                     
436     .combo_mode = 1,
438   },

//后摄配置

198 static struct csi_lane_params_t csi_lane_params = {
199   .csi_lane_assign = 0x4320,
200   .csi_lane_mask = 0x7,
201   .csi_if = 1, // not used
202   .csid_core = {0},
203   .csi_phy_sel = 0,
204 };

334   .csiphy_params = {
335     .lane_cnt = 2,                                                                                                                                  
336     .settle_cnt = 0x18,
338     .combo_mode = 1,
340   },
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32

(3)pixel_clk

像素时钟(pixel clk): 是经过主时钟MCLK(EXTCLK) 经过PLL得到的,决定了该sensor突出数据的速度;相关PLL设定需要查看sensor 寄存器的data sheet,以s5k2ya为例:  

如下为一个sensor的clk相关的配置:  

static struct sensor_lib_out_info_t sensor_out_info[] = {
{
/* full size @ 24 fps*/
.x_output = 4208, 
.y_output = 3120,
.line_length_pclk = 4572,
.frame_length_lines = 3142,
.vt_pixel_clk = 360000000,
.op_pixel_clk = 360000000,
.binning_factor = 1,
.max_fps = 24.01,
.min_fps = 7.5,
.mode = SENSOR_DEFAULT_MODE,
},
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
vt_pixel_clk(video timing clk value) – Virtual clock value used for calculating shutter time,and used by AEC for correcting banding artifacts   
vt_pixel_clk = line_length_pclk * frame_length_lines * frame rate

平台根据写入不同的曝光行来控制帧率,比如在暗处希望牺牲一点帧率,让Gain值更高,就用这个公式来计算,最后计算的 frame_length_lines 写入相应寄存器;  

注意一点的是不同的平台需要一个最小的blanking time,所以frame_length_lines是要大于真是有效数据行y_output,而且差值一般16对齐;  

op_pixel_clk – Represents how much data comes out of the camera over MIPI lanes to set the VFE clock op_pixel_clk = (total data rate from sensor)/bits-per-pixel  

if the MIPI DDR clock value (speed of the clock lane of the MIPI camera 
sensor) is 300 MHz, and the sensor transmits on 4 lanes, each lane has a 600 MHz data rate.Thus, the total data rate is 2400 MHz. For 10 bits per pixel Bayer data, this translates to the op_pixel_clk value of 2400/10 = 240 MHz. These values must be filled in accordance with the sensor specifications.

这个时钟决定了sensor mipi data lane 吐出数据的带宽;不同的平台的处理能力不一样,所以这个值不能超过平台规范定义的值;  

vt_pixel_clk 主要是用于曝光时间计算,用于AEC算法的banding 纠正,计算公式 vt_pixel_clk = line_length_pclk * frame_length_lines * frame_rate
op_pixel_clk VFE时钟,表示每秒VFE处理数据量 op_pixel_clk = (sensor输出实际比特率)/ bits-per-pixel
比如,如果MIPI DDR 时钟值  (sensor MIPI 的时钟lane  频率)  为300Mhz,  同时sensor 使
用4 个lane 传输数据,  每一个lane 的数据率是  300*2 = 600Mhz(CLK_N、CLK_P这两根时钟线的上升沿/下降沿可以获取到数据). 因此,  总数据率为  600*4 
= 2400Mhz. 对于10bit的bayer sensor, op_pixel_clk 值可设置为2400/10  = 240Mhz. 
这些值可以从sensor 的寄存器设置中技算出来

(4)settle_cnt

settle_cnt(即稳定计数)–表示mipi开始切换到高速模式的一个稳定时间,必须根据传感器输出特性配置该值,以确保传感器的 PHY 发送器与MSM 的 PHY 接收器无障碍同步;  

settle_cnt – For CSI_Tx (the sensor) and CRI_Rx (the device) to work properly, a period for syncing between them is required. This time is set here as number of timer clock ticks. It has to be between the MIN and MAX values calculated by the formulas:  

MIN [Settle count * T(Timer clock)] > T(HS_SETTLE)_MIN
MAX [Settle count * T(Timer clock)] < T(HS-PREPARE)+T(HS_ZERO) - 4*T(Timer clock)
1
2
settle_cnt(即稳定计数)– 必须根据sensor传感器输出特性配置该值,以确保传感器的 PHY 发送器与MSM 的 PHY 接收器无障碍同步;对于 28 nm 以及更小的 MSM 芯片,使用以下公式计算稳定计数:  

settle_cnt = T(HS_SETTLE)_avg /T(TIMER_CLK),
1
其中 T(HS_SETTLE)_avg = (T(HS_SETTLE)_min + T(HS_SETTLE)_max) / 2,如传感器数据表所指示:  

其中 T(HS_SETTLE)_avg = (T(HS_SETTLE)_min + T(HS_SETTLE)_max) / 2,如传感器数据表所指示。  

TIMER_CLK 指摄像头传感器所连接的 PHY 接口的工作频率。(例如,PHY0的CAMSS_PHY0_CSI0PHYTIMER_CLK)。该值在 kernel/arch/arm/boot/dts/msm/   
msmXXXX-camera.dtsi 文件中设置,其中 XXXX 指正在使用 MSM 芯片组。另 
外,也可在摄像头数据流传输期间确认,方法是通过 adb shell 检查相应的时钟信 
息。例如,可通过命令提示窗口发出以下命令以确认 PHY0 定时器时钟值:

adb root
adb remount
adb shell
cd /sys/kernel/debug/clk/gcc_camss_csi0phytimer_clk
cat measure
200000146
1
2
3
4
5
6
7
对于 45 nm MSM 芯片,使用与 28 nm MSM 芯片相似的公式,其中的 T(TIMER_CLK)替换为 T(DDR_CLK)。  

–DDR_CLK 指摄像头传感器的 MIPI CLK 通道的工作频率,该值由通过传感器摄像头驱动程序设置的摄像头传感器 PLL 配置确定。   
– T(DDR_CLK) 为工作频率等于 DDR_CLK 时的时钟周期持续时间,以纳秒为单位表示。例如,DDR_CLK 200 MHz 的 T(DDR_CLK) 为 (1 * (10^9)) / (200 * (10^6)) =5 ns。  

有关 T(HS_SETTLE) 的定义,可参见针对 D-PHY(版本 1.1)的MIPI(R)联盟规范。为了防止上述系数在传感器工作时所处的不同数据流传输模式间发生变化,必须为摄像头传感器驱动程序中每个唯一的数据流传输模式单独配置 settle_cnt。  

(5)Binning Mode

Camera Binning Mode:像素合并模式,将相邻的像素单元电荷通过物理的方法叠加在一起作为一个像素输出信号;  

935         .binning_factor = 1,                                                                                                                      
 936         .binning_method = 0,
1
2

水平方向Binning: 同列相邻行的电荷叠加;   
垂直方向Binning: 同行相邻列的电荷叠加;  

Binning Mode 优势:增加感光面积,提高暗处对光感应的灵敏度;应用:增加物理感光像素单元,采用像素合并模式,提升暗处对光感应的灵敏度;   
Binning Mode 劣势:降低输出分辨率;  

额外补充:

sensor 开窗的不同模式:ROI, BIN,SKIP;  

ROI :Region of interes在相机传感器分辨范围内定义一个或多个感兴趣的窗口区域,仅对这些窗口内的图像信息进行读出,只获取该局部区域的图像;
BIN :这种模式就是按照一定的规律,把想要的数据采集上来,把其余的数据扔掉;
SKIP:就是把相邻的像素合成一个像素,然后再输出。

(6)I2C CLK

The available I2C frequency modes are defined in kernel/include/media/msm_cam_sensor.h:standard (100 kHz), fast (400 kHz), and Custom mode.  

enum i2c_freq_mode_t {
I2C_STANDARD_MODE,
I2C_FAST_MODE,
I2C_CUSTOM_MODE,
I2C_MAX_MODES,
};
1
2
3
4
5
6
高通平台上两条Camera I2C设备总线是专门为Camera用的,配置不同的i2c频率的参数值定义在dtsi里面;  

479 &i2c_freq_100Khz {
480     qcom,hw-thigh = <78>;
481     qcom,hw-tlow = <114>;
482     qcom,hw-tsu-sto = <28>;
483     qcom,hw-tsu-sta = <28>;
484     qcom,hw-thd-dat = <10>;
485     qcom,hw-thd-sta = <77>;
486     qcom,hw-tbuf = <118>;
487     qcom,hw-scl-stretch-en = <0>;
488     qcom,hw-trdhld = <6>;
489     qcom,hw-tsp = <1>;
490 };

CCI clock = (src clock) / (hw_thigh + hw_tlow)  //src clock 19.2MHZ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
解释如下:

qcom,hw-thigh : should contain high period of the SCL clock in terms of CCI 
clock cycle
qcom,hw-tlow : should contain high period of the SCL clock in terms of CCI 
clock cycle
qcom,hw-tsu-sto : should contain setup time for STOP condition
qcom,hw-tsu-sta : should contain setup time for Repeated START condition
qcom,hw-thd-dat : should contain hold time for the data
qcom,hw-thd-sta : should contain hold time for START condition
qcom,hw-tbuf : should contain free time between a STOP and a START condition
qcom,hw-scl-stretch-en : should contain enable or disable clock stretching
qcom,hw-trdhld : should contain internal hold time for SDA
qcom,hw-tsp : should contain filtering of glitches
i2c burst mode:

TODO

(0)

相关推荐

  • USB系列(4) ULPI协议简介

    什么是ULPI协议? ULPI协议的全称是UTMI+Low Pin Interface.从名字上就可以看出ULPI是UTMI的Low Pin版本.UTMI(USB2.0 Transceiver Mac ...

  •  详解MIPI协议

    目录 前言 MIPI简介 MIPI联盟的MIPI DSI规范 MIPI名词解释 MIPI DSI分层结构 command和video模式 D-PHY Lane模组 Lane 全局架构 Lane电压和状 ...

  • 关于MIPI协议(一)

      由于MIPI是差分信号,即一条lane由两条线组成,因此通过高低电平的组合,这两条线应该有4种状态,但图中可以很明显看到高速信号摆幅仅为200mV,因此为了确保传输稳定,高速时我们认为信号只有两种 ...

  • 高通camera结构(摄像头基础介绍)

    拍摄景物通过镜头,将生成的光学图像投射到传感器上,然后光学图像被转换成电信号,电信号再经过模数转换变为数字信号,数字信号经过DSP加工处理,再被送到电脑中进行处理,最终转换成手机屏幕上能够看到的图像. ...

  • 速率高达18Gbps,符合MIPI最新规范 D-PHY v2.5 IP 正式面市

    自2003年以来,MIPI联盟一直在努力运行,以紧跟移动行业的变化.MIPI现在有250个成员公司和12个活跃的工作组,所有这些工作组都致力于创建用于连接移动系统中的构建基块的标准.现在,基于MIPI ...

  • 巨人通力调试主板基本参数(上)

    西奥系列功能参数设置(上) 新时达系统运行次数及密码设置 西奥系列常见驱动故障及排除方法(上) 西奥系列常见驱动故障及排除方法(中) 西奥系列常见驱动故障及排除方法(下) 巨人通力GPS33E默纳克系 ...

  • FANUC 0I系统 第四轴参数调试

    FANUC第四轴参数调试参数设定步骤:[1]:开第四轴参数1.1 NO.8130=4 (总轴数控制)由于新的OIMC控制器隐藏了9000号系统参数,第四轴系统参数已经开启,故只要开8130,18IMB ...

  • 推荐:PID控制原理及参数调试方法,能看懂才是最好的!

    No.1 PID算法简介 P指的是比例(Proportion),I指的是积分(Integral),D指的是微分(Differential).在电机调速系统中,输入信号为正,要求电机正转时,反馈信号也为 ...

  • 电工如何调试变频器?掌握这6条主要参数设置,从此不再求人

    电工如何调试变频器?掌握这6条主要参数设置,从此不再求人

  • 变频器调试从这16个变频器参数设置开始

    变频器的设定参数较多,每个参数均有一定的选择范围,使用中常常遇到因个别参数设置不当,导致变频器不能正常工作的现象.因此,变频器调试是从正确设置变频器参数开始的.总结了16个基本变频器参数设置方法,供大 ...

  • 周报83期 | 变频器安装、参数设置、调试、维护保养等问题解答!

    技成周报:83期 1.同步电动机采用通用变频器时应注意哪些问题? 答:同步电动机采用通用变频器时,当负载变动大时,容易引起失步,从而导致过电流,电动机烧坏.加交流输出电抗器是解决此问题的有效方法,与工 ...

  • 变频器调试从这16个变频器参数设置开始!

    变频器的设定参数较多,每个参数均有一定的选择范围,使用中常常遇到因个别参数设置不当,导致变频器不能正常工作的现象.因此,变频器调试是从正确设置变频器参数开始的.总结了16个基本变频器参数设置方法,供大 ...

  • 格力中央空调五代多联机调试方法及工作时内外机参数,补加制冷剂要求,

    格力五代多联机GMV调试方法,补加制冷剂参数,内外机工作时各大参数,直接上图了,拍的有点不清,图片顺序大家自个理了

  • 格力GMV5多联机调试参数、冷媒冲注与容量匹配

    一.GMV5多联机制冷制热原理 GMV5/GMV5S多联空调机组室外机可以通过模块组合并联的形式实现(最多四台外机组成一个系统),室内机同样可以由多个单元并联组成.其工作原理如下: 内机为制冷模式运行 ...