• MIPI CSI接口调试方法:时序调试


    关于的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的寄存器说明:

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

  • 相关阅读:
    current file is not included in a workspace moduleg 存在多个 main函数的 Go项目 无法成功导包
    umich cv-4-2 经典卷积网络架构
    Open CASCADE学习|视图
    第 46 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(南京),签到题5题
    Git中tag的用法及作用
    安装CUDA、anaconda、pytorch
    WPF ContentControl
    OpenSSL ca证书命令操作详解
    什么是TDD?
    vue解决父组件调用子组件只执行一次问题
  • 原文地址:https://blog.csdn.net/bingdund/article/details/126864039