上篇文章分析了C文件函数的实现本文继续分析h文件的配置信息。
2.3.1、 各参数含义解释
240Mhz.这些值可以从 sensor 嘚复位后寄存器的状态设置中计算出来
x_output和y_output是sensor输出图像的重要参数,分别代表了图像的宽度和高度单位是pixel。上层camera app最终就是从这里获取的sensor輸出图像的宽度和高度信息然后根据此信息裁剪出各种尺寸的图片。
因此imx230的x_output和y_output参数设置是不能小于上图中的最大尺寸同时要与实际sensor输絀图像的尺寸一致。
Imx230中控制sensor输出图像尺寸的复位后寄存器的状态关系如下图:
由关系图可以看出最终控制sensor图像输出尺寸的是复位后寄存器的状态X_OUT_SIZE和Y_OUT_SIZE,所以x_output和y_output的值要与这两个复位后寄存器的状态的值一致
2.5、 图像裁剪设置
imx230对于2种分辨率的图像不裁剪。
2.6 、分辨率切换设置
imx230_res_cfg[]数组序列对应着切换分辨率的操作顺序:
3.1、复位后寄存器的状态初始化设置
之后复位后寄存器的状态设置根据不同分辨率具有不同的设置
sensor工莋时更新曝光设定需要操作许多复位后寄存器的状态(曝光时间,每帧行数增益),这些必须在同一帧完成更新这些复位后寄存器的狀态都有双buffer,并具有按组更新的功能表现为所有相关复位后寄存器的状态一起完成更新。
地址0x0104就是复位后寄存器的状态GRP_PARAM_HOLD的地址当其复位后寄存器的状态的值设为1时,写入的复位后寄存器的状态数据被暂存的buffer复位后寄存器的状态中
当复位后寄存器的状态GRP_PARAM_HOLD的值为0时,所需偠复位后寄存器的状态的值会被同时更新参数的变化会在同一帧生效。
3.4、 启动输出设置
启动数据输出流程分为两种情况:
(1)准备上电序列時序
(2)PLL锁相环参数设置
(4)设置读取模式(起始/结束位置大小,曝光时间gain值)
(6)设置复位后寄存器的状态MODE_SEL的值为1,准备数据输出
在经过MIPI唤醒时间和初始化时间之后开始输出第一帧图像数据。
情况2:在经过一次数据输出之后
(1)设置复位后寄存器的状态MODE_SEL的值为0进入待命状态
(3)设置下一次數据输出模式
(4)设置复位后寄存器的状态MODE_SEL的值为1,准备数据输出
在经过MIPI唤醒时间和初始化时间之后开始输出第一帧图像数据。
在正确的时間设定MODE_SEL为0时结束数据传输。
4.1 、曝光复位后寄存器的状态地址
粗曝光时间单位为lines用于计算曝光时间,计算关系如下:
其中细曝光时间单位为pixels是定值,其复位后寄存器的状态为只读复位后寄存器的状态Tline为行曝光时间,为时间单位计算如下:
曝光行偏置用于设定以下关系:
AEC算法中模拟增益gain用于曝光计算,实际上必须把gain转换成复位后寄存器的状态gain去设置sensor以下是imx230的gain转换函数:
每一种分辨率都必须有对应的chromatix庫文件。这里对应2种分辨率设置的是相应的库文件名称。
csi_lane_mask —— 用于表示哪些lane被使用这是一个8位值,每一位含义如下:
比如0x1F表示4条数据lane囷时钟都被使用
7.2 、虚拟通道设置
下表表示不同的TD的取值及对应的数据格式。
其数据类型和解码格式的值是宏定义的其中数据类型的宏萣义是根据上述DT表得来的。如下:
客户可以对不同的分辨率模式使用不同CSI 参数设置imx230采用两种分辨率,但是使用相同的CSI设置
上篇文章分析了C文件函数的实现本文继续分析h文件的配置信息。