跳转至

Sensor Debug SOP


REVISION HISTORY

Revision No.
Description
Date
1.0
  • Initial release
  • 06/19/2024
    1.1
  • 增加ISP FIFO FULL 的case
  • 07/05/2024
    ----

    前言

    本文为FAE及软件开发相关人员而写,旨在介绍开发过程中客户遇到Sensor相关问题时,如何自行进行初步排查,确定是SGS SDK问题后再提供相关信息给SW RD或者FAE分析。


    1. Sensor Debug 常用的基本操作和命令

    1.1 Sensor 设置的信息

    • 调试信息

      #cat /proc/mi_modules/mi_sensor/debug_hal/sensor_info
      

    • 调试信息分析

      记录sensor pad 相关信息。

    • 参数说明

      参数 描述
      EarlyInit Enable EarlyInit enable or not
      Fps x1000 帧率(fps)
      Plane Name Sensor 名称
      Sensor output 输出的宽高
      Shutter Sensor shutter
      Gain Sensor gain
      Vc num HDR 通道号
      BayerId Bayer id
      PixPrecision Bayer id
      Pixel Pixel format

    • 调试说明

    1.2 确认MIPI CSI 接收的信息

    • 调试信息

      #cat /proc/mi_modules/mi_sensor/debug_hal/csi_info
      

    • 调试信息分析

      查看MIPI相关信息。

    • 参数说明

      参数 描述
      IDEAL_RECV_SIZE 理想情况下接收到的(宽, 高)
      CUR_RECV_SIZE 当前接收到的(宽, 高)
      LAST_ERR_SIZE Mac layer在line end中断并且当前接收到的宽高不等于理想情况下接收到的宽高时,所纪录的当前(宽, 高)。

    1.3 确认MIPI CSI error 中断的状态

    • 调试信息

      #echo <Sensor Pad> <csi_err_mask> > cat /proc/mi_modules/mi_sensor/debug_hal/csi_dbg_mask
      #echo <Sensor Pad> <csi_rpt_mask> > cat /proc/mi_modules/mi_sensor/debug_hal/csi_rpt_mask
      #cat cat /proc/mi_modules/mi_sensor/debug_hal/csi_ints
      
      <csi_err_mask>: Mask bit描述如下
      [14]: overrun_err
      [13]: ls_err
      [12]: le_err
      [11]: con_fs_err (consecutive fs)
      [10]: con_fe_err (consecutive fe)
      [9]: raw10_lens_err (not 5n alignment)
      [8]: pa_wc_eq0 (payload word count eqaul to 0)
      [7]: crc error
      [6]: ecc 2bit error
      [5]: frame end error
      [4]: frame start error (hardware auto-ignore)
      [3]: ecc 1bit error (hardware auto-correct)
      [2]: ph_lens_err (packet header lengths error)
      [1]: pa_lens_err (payload lenghts error shorten than wc)
      [0]: dt_err (reserved and not supported data type)
      
      <csi_rpt_mask>: Mask bit描述如下
      [6]: report vc0 frame done
      [5]: report vc1 frame done
      [4]: report vc2 frame done
      [3]: report vc3 frame done
      [2]: report generic 8 bit short packet data
      [1]: report frame number
      [0]: report line number
      

    • 调试信息分析

      查看csi_err以及csi_rpt相关中断发生数量。通常在MIPI sensor VIF接收数据异常时,可以使用该命令分析问题。

    • 参数说明

    参数 描述
    CSI_ERR DT 不支援的data type
    PA_LENS Packet传输的有效载荷长度异常,短于WC
    PH_LENS 数据包头长度异常,正常32 bits
    ECC_ONEBIT ECC 1 bit 异常,硬件自动修正
    FRAME_START Frame start 异常
    FRAME_END Frame end 异常
    ECC_TWOBIT ECC two bit 异常
    CRC CRC校验异常
    PA_WC_EQ0 Packet有效载荷字数等于 0
    RAW10_LENS 没有使用
    CON_FE 连续frame end 异常
    CON_FS 连续frame start 异常
    LE Line end 异常
    LE Line start 异常
    OVERRUN TX快于RX
    CSI_RPT LINE_NUM 汇报line number
    FRAME_NUM 汇报frame number
    SHORT_PKT 汇报generic 8 bit 短包数据
    VC3_DONE 汇报VC3 frame done
    VC2_DONE 汇报VC2 frame done
    VC1_DONE 汇报VC1 frame done
    VC0_DONE 汇报VC0 frame done

    2. 常见问题基本分析

    2.1 ISP FIFO FULL

    Case A. 當ISP 回报ISP FIFO FULL 是前級VIF 就有少資料, 可以先排查Sensor 输出的讯号

        a. 确认不执行 app, 只执行 cmd: echo enable "snrpad" > /dev/sensorif
           范例 :
           snrpad 0
    
           echo enable 0 > /dev/sensorif
    
        b. 接着透过上面叙述的说明 mipi csi debug 的接口, 确认mipi csi 相对应的信息是否正确
        c. 若不正确, 可以先排查mipi csi 讯号时序确认是否符合我们的规范, 同时可以把mipi csi info and mipi error interrupt status 信息給SW RD 或 FAE 确认
    

    Case B. 当linear frame mode 时是正常出流, 但是 realtime mode 會遇到ISP FIFO FULL, 可以先排查Sensor 输出的讯号

           范例 :
           帧率 30fps, 代表每帧间隔相距 33.3ms, 透过量测mipi csi 讯号 data 脚位,
           确认有效data 和 blanking 的占比, 希望将blanking 为1ms 左右较佳
    

    Case C. 当hdr frame mode 时是正常出流, 但是 realtime mode 會遇到ISP FIFO FULL

        a. 确认ISP ring mode 设置的大小
        b. 读取sensor 短曝的曝光信息, 是否大於 ISP ring mode 設置 的大小
           范例 :
           isp ring size 设置 1/8 :
           图像的高为1080, 所以 1080 x (1/8) = 135
    
           代表的是短曝曝光不能超过135条line 的时间, 否则会有ISP P1 FIFO FULL 的错误
    
           补充:
           HDR 长曝的资料会先输出, 接着再输出短曝的资料, 长曝的开头到短曝的开头, 这段时间为短曝可调整的曝光时间,
           在HDR realtime mode 的情况, 长曝的资料进来会先写在wdma 内, 这块wdma 是ring buf 机制, 而短曝是直接输出到ISP
           以上述为范例, 当进来的长曝 line 数从0 写到134 条line, 第135 条line 会回到源头重新覆盖,
           如果短曝比较晚来, ISP 会遇到长曝和短曝取得的资料无法匹配, 导致ISP P1 FIFO FULL 的报错
    

    Case D. 当 HDR Frame mode 时是正常出流, 但是 Realtime mode 会遇到ISP FIFO FULL, 并伴随的左边有紫色的区块

        a. 长短曝不同步的问题, 建议反馈给SW RD 或 FAE