MIPI CSI-2调试总结

什么是MIPI CSI-2

MIPI 是 Mobile Industry Processor Interface(移动行业处理器接口)的缩写。MIPI 联盟是一个开放的会员制组织。2003年7月,由美国德州仪器(TI)、意法半导体(ST)、英国 ARM 和芬兰诺基亚(Nokia)4 家公司共同成立。

MIPI 联盟旨在推进移动应用处理器接口的标准化。MIPI 联盟下面有不同的 WorkGroup ,分别定义了一系列的手机内部接口标准,比如摄像头接口 CSI 、显示接口 DSI 、射频接口 DigRF 、麦克风/喇叭接口 SLIMbus 等。而 MIPI CSI-2 (Camera) and MIPI DSI (Display)则是目前业界使用最广的两个 MIPI 接口标准,而这也是和视频传输相关的标准,本文主要对 CSI-2 摄像头标准进行介绍。

MIPI CSI-2物理接口定义

MIPI CSI-2调试总结_第1张图片

MIPI DPHY是一个多电平的接口,因此是不能够直接接入fpga的IO口的,需要用MC20901进行桥接转换,每一个DPHY链路同时包含了高速信号和低速信号,MC20901的作用就是将高速HS和低速LP信号分离开。HS端为高速的lvds信号;LP端为两路单端信号,虽然一般电路图上都标注为P/N,但并不表示它们之间是差分信号,而是表示他们是成对出现的单端信号。下图是MIPI DPHY接口与fpga连接的电路示意图。
MIPI CSI-2调试总结_第2张图片

正确的MIPI CSI-2波形长什么样

下图是用示波器抓到的索尼IMX334传感器输出的clock链路的mipi波形。

MIPI CSI-2调试总结_第3张图片
下图是协议中规定的mipi波形以及参数。
MIPI CSI-2调试总结_第4张图片
MIPI CSI-2调试总结_第5张图片

xilinx的mipi csi-2 rx

正在使用vivado 2016.4的4 lane的mipi的同学们,恭喜你们浏览到了这篇文章,很严肃的告诉你们,vivado 2016.4的mipi csi-2 rx是有问题的,m_axis接口无数据输出!!各种检查传感器的输出信号,完全符合协议要求,进入fpga的信号也是没有问题的!!!!最后是换成vivado 2019.2后,mipi的功能正常的令人发指!所以正在使用vivado 2016.4调试mipi的同学们,不如换成vivado 2019.2。

在vivado2019.2下,如下图,我的mipi配置是这样的(此配置成功采集到imx334的视频流数据),其中IDELAY Tap Value是要自己一点一点试出来的,使用auto的方式并不太靠谱。
MIPI CSI-2调试总结_第6张图片
MIPI CSI-2调试总结_第7张图片
MIPI CSI-2调试总结_第8张图片

调试遇到的最大问题:mipi csi2 rx没有数据输出

用fpga处理mipi数据并不困难,因为像xilinx这样厂家都把mipi协议解析做好了,我们拿到的数据就是视频流数据,我们要做的就是要知道怎么去配置mipi csi2 rx核就好了。不过,调试一把过,还是几乎不可能滴,总会遇到各种各样的问题,xilinx封装的越完美,出问题时我们就越不知道该怎么去debug,我这里也只能根据我的经验,说一下遇到mipi csi2 rx没有数据输出时(也即是m_axis的tvalid始终是0),怎么一步步找问题。

查找问题的步骤:

1. 用示波器观察mc20901输出的信号波形是否符合预期
2. 约束的管脚是否正确
3. rx配置的参数与tx端的参数是否一致,比如Lane Rate、lanes的个数和pixel format是否一致
4. 确保mipi rx核先复位完成,再启动sensor数据输出
5. 前几个都没问题的时候,尝试调整Idelay Tap Value,不要相信他所谓的auto,不靠谱。Idelay Tap值不合适的时候,有两种可能:1.tvalid是有,但是数据不对,视频流时序也不对;2.tvalid一直是0,也就是没数据输出
6. 当Idelay Tap Value从1~31都调整过了,数据还是有问题的话,看看你是不是用了vivado 2016.4
7. 以上都没解决的话,不如桌上烧个香试试?

参考

1.http://www.jmrcubed.com/vr/ref_tech/mipi_d_phy_specification_v01-00-00.pdf

你可能感兴趣的:(接口,fpga开发,mipi)