我是靠谱客的博主 光亮帅哥,最近开发中收集的这篇文章主要介绍MIPI CSI接口调试方法:时序调试1. clock lane: continue mode: non-continue mode?2. deskew 3. global timing,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

关于的mipi 的规范,协议及物理接口定义,网上文章确实比较多,想必也是每个想要了解mipi的人首先会阅读的,本人也是其中之一,所以这篇短文主要是想记录自己在调试mipi这个接口时遇到的一些问题;

1. clock lane: continue mode: non-continue mode?

continue mode: 连续时钟模式,即无论data lane上是否有数据在传输,clock lane总是在HS状态,从不进入LP状态。

如图:

non-continue mode:非连续时钟模式, 即当data lane 进入LP状态时,clock lane也会进入LP状态,在下次data lane进入HS状态时 clock lane会先于 data lane进入提前进入HS状态。

如图:

那到底传输时采用那种模式呢?这取决于发送端,两种模式如何取舍呢?

建议非连续模式,笔者在调试中遇到过,连续模式时传输不稳定,采用非连续模式时就稳定了。

为何?

后面会提到。

2. deskew

何为skew, 从字面意思看是倾斜了,不对齐了;

放在mipi的传输中意思就是clock lane和data lane 及data lane与data lane间出现了相位差;

一旦出现相位差,大家采样数据时就可能不在同一个节拍上,会出现传输错误。

所以就要做deskew,通过做deskew来使得大家重新对齐,在同一个节奏下传输数据. 一般当data rate高于1.5G时建议开启deskew。是否开启deskew也是由发送端决定,拿某主流sensor举例:

它就会明确告诉你要不要开启deskew及 deskew时要用多少个UI

deskew的时机:一旦开启deskew, 在每次mipi的状态由LP-HS时都会先做一次deskew。

即每次开始真正的数据传输前都会做一次deskew:

在高data rate下,deskew确实必要的,笔者曾调试一款sensor的输出data rate是 2496Mbps, 不做deskew 时传输非常不稳定。

加了deskew后就稳定了。

deskew到底做多少个UI,也不是越大越好,合适的才是最好的,怎么是合适的,接收端的 mipi 控制器的的設計説了算。

 3. global timing

global timing在某些情况下是有调整的余地的,毕竟硬件环境不一样,

这些时序不会是完全都匹配的。

所以在传出不稳定时,其他方向都调过没有效果时可试试调整global timing:

mipi csi dphy的规范里面有定义 这些的timing的最大值及最小值及推荐值。

同时, sensor中也会有相关描述用来调整这些timing的寄存器说明:

调试三板斧到此结束,后续再补充

最后

以上就是光亮帅哥为你收集整理的MIPI CSI接口调试方法:时序调试1. clock lane: continue mode: non-continue mode?2. deskew 3. global timing的全部内容,希望文章能够帮你解决MIPI CSI接口调试方法:时序调试1. clock lane: continue mode: non-continue mode?2. deskew 3. global timing所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(71)

评论列表共有 0 条评论

立即
投稿
返回
顶部