camera调试:RK3588/RK356X V4L2抓不到数据排查

很多人在调试RK3588/RK356X平台的camera的时候,经常会出现V4L2抓不到数据的情况,抓图的时候,返回select timeout的错误,或者是抓数据流的情况下,没有返回。这篇文章记录一下在调试过程中的这些常见问题以及debug手段。

(1)抓不到数据,且没有报错

第一种情况就是使用V4L2抓数据,串口没有报错,但是也没抓到数据,抓图的命令,会出现select timiout的报错反馈。

①命令直接提示错误

说一下常开的几种:

a. 命令直接提示错误的,提示V4L2-ctl的帮助页面,说明命令有误。

b. 出现no such devices的报错,如下:

Failed to open /dev/video0: No such device

大概率是由于提前打开了apk,apk会请链路,然后退出apk抓图的时候链路并非enabled的状态。

c.出现Invalid arguments类似的错误

说明命令的参数有误,可以使用help查看使用说明

d.出现device busy之类的报错

说明video节点被其他应用占用,先查看一下是否被其他赢占用节点。

②命令正确,select timeout报错

经常会出现抓数据没数据返回,串口也没报错,抓图的时候报select timeout的错误。此现象可以按照如下排查:

扫描二维码关注公众号,回复: 15305826 查看本文章

a. 查看DPHY的状态

根据TRM手册,查看dphy的stopstate 来判断是否有收到数,例如查看RK3588 CSI0:

io -4 -l 0x100 0xfdd30000

需要连续读取10次上述寄存器,正常有识别到MIPI信号的话,对应的stopstate会在0/1之间变化。

b.测量mipi信号

示波器测量是否有MIPI信号输出

c.确认sensor寄存器

确认sensor  mipi  out的寄存器是正常的,可以使用i2c工具读取,推荐使用i2ctransfer

d.核对接口是否正确

RK3588系列/RK3562等都具有多路MIPI接口,容易硬件接的与DTS配置的对应不上的问题。

(2)抓不到数据,MIPI相关报错

抓不到数据,经常伴有MIPI的相关报错,例如MIPI crc error,ECC等报错,这些报错与MIPI的信号相关,是MIPI信号校验出现的问题,通常有以下原因供排查:

①MIPI时钟不匹配

MIPIRX的时钟需要与TX的相匹配,否则极大概率会导致MIPI报错。

MIPIRX的时钟在驱动的LINK FREQ进行配置,如果不知道TX端的时钟是多大,可以使用示波器测量一下,实在不知道,按照如下公式计算:

mipi clk = Htotal * Vtotal *fps * bit / lane num / 2

bit根据图像格式,例如raw10就是10,YUV422就是16,RGB888就是24。

②MIPI SOT时序是否正确

SOT时序需要符合MIPI spec的要求:

Inserts the HS Sync-Sequence ‘00011101’ beginning on a rising Clock edge

③MIPI走线信号质量问题

MIPI速率较大的时候,对走线要求较高,建议硬件一起排查,走线是否等长,阻抗是否匹配等等

④RK3588 DCPHY时序问题

RK3588的DCHY有时序的要求,需要核对时序是否满足要求

⑤确认MIPI信号

最后测量MIPI信号确认问题,按照SPEC的规范,测试MIPI信号,再根据测试fail的项目,逐一进行排查。

猜你喜欢

转载自blog.csdn.net/qq_34341546/article/details/129135758