Sensor Q&A

Q1: ./prog_vpe 带哪个参数可以实现sensor出图?

后面需要带一个ini文件,这个ini文件要选择跟接的sensor接口对应的,并且要跟你使用场景修改ini文件里的配置。具体的使用可以参考sdk里的vpedemo使用说明文档。

Q2: 出现Sensor is abnormal @sensor pad 0?

可以先检查一下sensor的dts配置,看看vif mode和csi lane配置是否正确,请参考Sensor配置

Q3: sensor的dts配置下,SR0本身没有复用BT1120,为什么会有vif_sr0_bt1120_mode = <1>?

dts是传递给下层软件初始化硬件的描述,如果有的话就会配置相应模式,没有的话也不会有影响。

Q4:多个sensor pad接相同型号的sensor,要如何加载sensor驱动同时兼容这几个pad?

通过chmap参数去设置,chmap是为了让板子兼容不同的sensor设计的,是按位掩码计算的。比如sensor pad 0和pad 1都接了imx307,那么用ismod imx307_MIPI.ko chmap=3 lane_num=4即可。

Q5: 出现SNR pad enable fail程序出错?

先根据Demo板硬件指南确认接口是否正确,接线是否接触良好。再检查驱动加载的chmap和lane_num参数是否设置正确。最后,若有读取配置文件,检查ini文件中sensorpad等参数的设置。

Q6: 实现raw数据的获取以及抓图功能的demo参考哪个?

从vif获取,用get vif buffer的接口就可以,mi sys 的接口MI_SYS_ChnInputPortGetBuf。

Q7: 获取vif输出端口的MI_SYS_FrameData_s属性中的压缩模式为E_MI_SYS_COMPRESS_MODE_TO_8BIT,如何从vif获得不压缩的raw数据?

把fbc 关掉就是未压缩的数据

echo 0 > /sys/module/mi_vif/parameters/bFBCMode
echo FBC 0 > /proc/vpe/vpe_debug

Q8: 在使用vpe程序调试nvp6158c的bt1120时,是不是直接加载nvp6158c.ko文件(insmod /config/modules/4.9.227/nvp6158c.ko chmap=2 lane_num=4),然后运行prog_vpe程序就可以了? param.ini文件需要修改什么?

使用sr1这组pin接bt1120输入,需要使用sensor pad 1, group 3, vifdev 12来接收数据,param ini文件里需要修改VifDev = 12。

Q9: 如果sensor给主芯片的数据是yuv格式的,vif之后是否可以跳过isp,直接bind其他模块?

不需要用到isp时都可以跳过isp模块,直接bind其他模块就可以了。

Q10: BT1120输出报output not finished超时错误,如何排查?

cat /sys/class/mstar/vif0/vif_info跟vif_ints看下,如果出现vif信息都为0,说明vif没收到数据,检查一下dts是否配对和抓一下BT1120输入波形是否正确。

Q11: VIF如果使用2MUX的话,param.ini文件分别设置VifDev = 12 和VifDev = 13,RunMode = 2Multi ? 4MUX的话,param.ini文件分别设置VifDev = 12 和VifDev = 13,VifDev = 14,VifDev = 15,RunMode = 4Multi?

不需要这样去设置。一个group里4个device,使用group的配置就行。比如group 0设置VifDev = 12 ,RunMode = 2Multi,默认使用VifDev12和VifDev13。