概要

LT9211C在MIPI RX输入信号时,经常会出现pcr unstable的问题,尤其是对于CSI信号。这里主要提供系统性的调试方法,帮助工程师定位和解决 PCR 不稳定的问题。

主要症状与根本原因

LT9211C的log显示PCR unstable,TX无法输出信号
在这里插入图片描述

根本原因是源端输出的timing没有和LT9211C的代码中配置的保持一致,首先需要确保一致。其次,有的MIPI源自身输出timing不稳定,需要修改相关参数保证timing稳定输出。

分步调试方法

  • 检测源端的Vtotal

LT9211C提供寄存器读取输入源的行时间以及帧时间,先向0x8690写0x18,再读取行时间:0x8668、0x8669,帧时间:0x866a、0x866b、0x866c,如果值跳变范围较大,说明源端输出的timing不稳,要调源的参数。比如可以调大h blanking看看是否有效果。

5a ff 86 00 
5a 90 18 00 
5a 68 02 ff //一行的时间
5a 6a 03 ff //一帧的时间,vtotal = 一帧/一行
  • 检查时钟配置

mipi时钟可以参考如下计算公式:
MIPI clk = pclk*bpp/lane_num/2(RGB888,bpp=24;YUV422;bpp=16)

Byteclk = pclkbpp/8/lane_num(RGB888,bpp=24,YUV422,bpp=16)
pclk = htotal
vtotal*frame rate

有的源端soc会根据timing信息自动计算出mipi时钟,有的主控也可以单独配置,可以用示波器量mipi clock,一般情况下,要比上述公式计算的值大一点比较好。

  • RX PLL分频配置

LT9211C根据不同的输入像素时钟来调整分频器的设置,从而计算PCR的M/K值。分频器的档位有:

22M--44M 11 div=16
44M--88M 10 div=8
88M--176M 01 div=4
176M--352M 00 div=2

有时,输入pixel clock可能卡在临界值左右,比如pixel clock = 87M,对应的div = 8,如果pcr不稳定的话且确定源端稳定输出的话,将频率分档改到div = 4试试。对应的修改位置在LT9211C的Drv_MipiRx_DesscPll_Set()函数里面。
在这里插入图片描述

  • PCR模块配置
    在上述调试没有效果的情况下,可以对LT9211C的PCR模块进行寄存器修改。首先,介绍一下pcr相关寄存器,pcr分为粗调和细调,
寄存器 说明
0xd087 pcr稳定的判断条件,bit4为1表示粗调稳定,bit3为1时表示细调稳定
0xd025 line limit,值越大条件越严格,这是进入细调的条件1
0xd02a step in limit,值越大条件越宽松,这是进入细调的条件2
0xd021 bit[3:0] 粗调的幅度
0xd022 bit[7:0] 粗调的幅度
0xd023 细调的幅度

调试步骤:

  1. 如果 PCR 一直处于粗调阶段,说明粗调都不稳定,此时,可以降低进入细调的两个条件0xd025/0xd02a,或者降低粗调调节的幅度 0xd021 bit[3:0] & 0xd022 bit[7:0]。
  2. 如果 PCR 一直处于细调阶段,即 0xd087 bit4 为 1(粗调稳定),bit3 为 0(细调不稳定),则需要降低细调调节的幅度 0xd023 bit[7:0]。

成功调试案例

  • ISP(GEO GW6)输出CSI给LT9211C,增大h-blanking后,pcr stable
  • 美信MAX96714F解串器输出CSI信号给LT9211C,增大h-blanking及pcr粗调条件以及细调的幅度。

小结

出现PCR unstable,首先需要排查timing设置是否和LT9211C一致,其次确定mipi输出timing是否稳定(用LT9211C的寄存器检测),最后再调整timing或者pcr相关寄存器。

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐