1.帧率计算公式
FPS = vt_pix_clk/framelength/linelength
2. outputpixelclock的计算公式
outputpixelclock = mipi_output_speed*lanecounts/bits-per-pixel
outputpixelclock 也叫op_clk。是表示每秒有多少数据从camera sensor通过mipi lane传输到VFE。
mipi_output_speed 也mipi phy 或者mipi clock是mipi 每条lane的时钟频率。
bits-per-pixel:顾名思义,只是每个像素点有多少个bit。比raw10,就是指10个bit。
outputpixelclock 决定了camera sensor吐数据的带宽,一般说来,outputpixelclock提高,也会提高camera 的功耗。从硬件角度上看,camera 功耗与camera 模组电气参数(AVDD DVDD IOVDD)和mipi速率带宽有关。
3. 举例某50m sensor的相关参数
4.MTK平台参数对比
static struct imgsensor_info_struct imgsensor_info = {
.sensor_id = OV8856_AAC_FRONT_SENSOR_ID,
.checksum_value = 0x47a75476,
.pre = {
.pclk = 145600000, //相当于qcom平台的vt_pixel_clk
.linelength = 1932, //相当于qcom平台的lineLengthPixelClock
.framelength = 2508, //相当于qcom平台的frameLengthLines
.startx = 0, //相当于qcom平台的xStart
.starty = 0, //相当于qcom平台的yStart
.grabwindow_width = 1632, //相当于qcom平台的width
.grabwindow_height = 1224, //相当于qcom平台的height
.mipi_data_lp2hs_settle_dc = 85,//相当于qcom平台的settleTimeNs
.mipi_pixel_rate = 145600000, //相当于qcom平台的outputPixelClock
.max_framerate = 300,
},
其中settleTimeNs,这个值在高通文档80-P9301-97中的解释如下:
Specifies the settle time in nanoseconds. The value is configured,
based on the output characteristics of the sensor to ensure that the
PHY transmitter of the sensor does not have sync issues with the
PHY receiver of chipsets.
翻译如下:
为了确保传感器的物理层传输器与芯片集的物理层接收器之间没有同步问题,需要根据传感器的输出特性来配置设置时间。这意味着,必须选择一个合适的设置时间值,以确保传感器的输出信号在被芯片集接收之前已经稳定下来,从而避免数据传输错误。
MTK平台这个设置时间默认就是mipi_data_lp2hs_settle_dc =85,在高通平台提供了如下的计算公式。
Dphy settletime计算
DPHY:Display PHY是一种用于移动设备显示接口的物理层标准,通常用于连接摄像头和显示控制器。
settleTimeNs:设置时间,以纳秒(ns)为单位。这是确保传感器的PHY传输器与芯片集的PHY接收器同步所需的最小时间。
TIMER_CLK:指的是PHY接口的操作频率,即摄像头传感器连接的PHY接口的时钟频率。例如,CAMSS_PHY0_CSI0PHYTIMER_CLK 可能表示与PHY0接口相关的时钟频率。
T(Timer_clk):表示在操作频率等于TIMER_CLK时的时钟周期持续时间,以纳秒为单位。
UI:单位间隔(Unit Interval),基于每个数据通道的数据速率计算出的时钟周期时间。
计算公式:
settleTimeNs = ((85ns + 6UI)/T(Timer_clk) ) – 10
这个公式用于计算基于传感器的输出特性和PHY接口的时钟频率的设置时间。
示例计算:
如果TIMER_CLK是300MHz,那么T(Timer_clk)是3.3ns(因为1秒/300,000,000 = 3.33ns,这里取3.3ns作为近似值)。
对于300MHz的TIMER_CLK,最小设置时间是:
[ ((85 + 6) / 3.3ns) - 10 = 17ns ]
对于SM8450,TIMER_CLK的值是400MHz,那么T(Timer_clk)是2.5ns。
对于400MHz的TIMER_CLK,最小设置时间是:
[ ((85 + 6) / 2.5ns) - 10 = 26ns ]
这个计算对于确保数据传输的稳定性和可靠性至关重要,特别是在高速数据传输应用中。camera..dtsi 文件是Device Tree Source的一部分,用于配置和描述摄像头硬件的属性,包括设置时间等参数。
在实际应用中,您需要根据传感器的规格和系统的具体要求来确定这些参数的确切值,并在相应的配置文件中进行设置。
Cphy settletime 计算
在您提供的文本中,描述了如何计算理想的设置时间(settleTimeNs),这是与传感器和物理层接口(PHY)的同步有关的一个参数。以下是对这段文本的解释和要点概述:
settleTimeNs 的计算公式:
settleTimeNs = {t3-prepare+[t3-preamble]/3}/Ttimer_clock-
这个公式用于计算理想的设置时间,它基于几个关键参数。
参数解释:
Ttimer_clock:PHY定时器时钟周期时间,这通常基于系统的时钟频率。例如,如果是300MHz的时钟频率,周期时间是3.33纳秒;如果是400MHz,周期时间是2.5纳秒。
t3-prepare:传感器准备时间,这是传感器准备数据以供传输所需的时间。这个值应尽可能小,并需要与传感器供应商合作确定。
t3-preamble:前导码时间,与传感器的特定模式设置有关。
与传感器供应商合作:
需要与传感器供应商合作,以确保t3-prepare尽可能小,并符合MIPI C-PHY v1.2/v2.0规范。
对于支持C-PHY v1.2/v2.0的传感器,需要确保 ( T3-\text{CALPREAMBLE} )、( T3-\text{ASID} )、( T3-\text{CALALTSEQ} ) 等时序符合规范中6.12.1.2节描述的校准模式格式2。
自定义和审查:
如果客户基于传感器配置和输出数据率定制了 ( T_{\text{timer_clock}} ) 的值,OEM(原始设备制造商)需要与Qualcomm共享这些定制的详细信息以供审查。
UI(单位间隔):
UI 是基于传感器的符号吞吐率每组(trio)的周期时间。例如,如果传感器每组输出速率为1Gsps(每秒十亿个符号),UI为1纳秒。
时间计算公式为:时间(纳秒)= UI 数量 ( \times (1/\text{数据速率}) )。数据速率应以Gsps为单位。
通过这些信息,可以确保传感器的PHY传输器与系统的PHY接收器之间同步,避免数据传输错误。这些参数的准确测量和配置对于高速数据传输至关重要。
5.MCLK 与 timer_clock
MCLK(Master Clock)和 TIMER_CLK 都是与时钟频率相关的术语,但它们在不同的上下文中有着不同的用途和含义。
MCLK:
在音频系统中,MCLK 是主时钟信号,通常是一个高速时钟,用于驱动音频转换器(如 ADC 或 DAC)的过采样调制器。MCLK 通常与采样率的倍数相关,例如 64、128、256 或 512 倍,以确保音频数据的同步和正确处理。
在某些微控制器(如 MSP430)中,MCLK 是系统主时钟,可以由不同的时钟源提供,并通过分频得到,用于 CPU 和系统操作。
TIMER_CLK:
TIMER_CLK 通常指的是与定时器或周期性事件相关的时钟信号。在摄像头接口的上下文中,如 DPHY,TIMER_CLK 可能指的是物理层接口的操作频率,用于确定数据传输的速率。
在摄像头的上下文中,MCLK 可能是提供给传感器的时钟源,而该时钟经过传感器内部处理后变成传输数据所需的 PCLK(Pixel Clock)。PCLK 是用于像素采样的时钟信号,通常与图像的帧率相关。
在微控制器或其他系统中,MCLK 作为系统主时钟,可能与 TIMER_CLK 有关联,后者可能是由 MCLK 分频得来的,用于定时器操作或特定功能的时钟控制。
总结来说,MCLK 通常指的是系统或特定功能的主时钟,而 TIMER_CLK 可能是指用于定时器或周期性事件的时钟信号。两者都对系统的同步和性能有重要影响,但具体的应用和配置会根据不同的系统和需求而有所不同。
原文链接:https://blog.csdn.net/weixin_43326587/article/details/137350635