花屏问题分析


1. 判断ISP 输出是否正常

正常情况frame cnt 和Done Cnt 最多相差一个, 如果有累计很多,说明isp这边只收到vsync 并没有实际data。

如上图。

如果isp 输出cnt 足够,再通过scl pattern判断isp 输出data 内容是否正常。

echo 2 > /sys/class/mstar/mscl/ptgen

pattern 会将isp 输出数据换成pattern 数据, 如果pattern 正常, 那说明isp 输出内容有问题。


2. 判断Vif 输出是否正常

如果Vif 是frame mode

echo dump chnid portid /path > /proc/mi_modules/mi_vif/mi_vif0

如果是bayer 10/12 bit格式需要通过转换工具专成16bit 通过7 yuv观察画面。

点击conv10, conv12下载工具。

10/12指sensor bit, 如果vif这边也是整张frame 都是花的,怀疑vif 这边没有收到sensor 数据。

如果这里出现有为0的情况说明vif 这边也没有收到data。

补充conv工具使用方法

  1. cat /proc/mi_modules/mi_sensor/mi_sensor0

    可以看到使用的是307 sensor ID和Prec是RG 12BPP

  2. Dump VIF文件

    echo  dump 0 0 /mnt > /proc/mi_modules/mi_vif/mi_vif0
    

    mi_vif_1920x1080_Pixel43_1677941967.raw可以通过dump文件中告知的pixel计算得到bayerID和bitMode

    对应函数_MI_VPE_TransPixelFormatToBayerId

    Pixel 43

    (43-19)/12=2 peBitMode 12BPP

    (43-19)%12=0 peBayerId RG

  3. 然后在服务器上通过命令./conv12 mi_vif_1920x1080_Pixel43_1677941967.raw out2.raw转换得到16bit的输出


3. 判断sensor 数据是否正常

echo devid > /sys/class/mstar/csi0/csi_dbg_mask
cat /sys/class/mstar/csi0/csi_ints

正常情况下都为0, 这里反映数据协议是否有问题, 如果有累加请sensor driver和硬件一起量一下信号质量或者clock是否有问题。