MIPI CSI-2 RX Subsystem IP和D-PHY基本调试

文章详细阐述了DPHY的初始化过程,包括时钟频率要求、reset信号持续时间以及初始化完成后状态的确认。针对MIPICSI-2RXSubsystem,讨论了不同线路速率下的时钟计算方法,并提出了视频时钟的限制。此外,提供了调试建议,如检查中断状态寄存器以识别可能的问题,如错误计数、lane配置等。
摘要由CSDN通过智能技术生成

DPHY初始化

DPHY需要完成初始化, 当clock lane和data lane的init_done置高, 以及stopstate拉高, 标志着初始化完成。 见下图。

ad85ab4c4c17249b7334f36ec5aadbdd.png

给到DPHY的Core_clk需要时200MHz, free-running的时钟, 这个时钟可以来自版上时钟晶振, 或者FPGA内单独的MMCM/PLL, 但该时钟不能来自与两个级联的MMCM。

另外需要注意的是, 所有给到DPHY的时钟需要满足+/-100PPM, 不满足该要求可能会导致数据出错或者重复数据。

Core_rst, 如图所示, 需要assert至少四十个dphy_clk_200M cycle, 然后才能释放。

在上电后, 当master DPHY发给slave D-PHY的cp/cn(clock lane)和dp/dn(data lane)保持在LP-11超过T_INIT时间, 初始化完成. T_INIT必须大于100us。

MIPI CSI-2 RX Subsystem时钟要求

当line rate < 1500Mbps, video_aclk1 = Line Rate(Mb/s)*Data Lanes/(8*4), 同是, 还需要满足输出的带宽大于等于输入带宽, video_aclk2 = (Line Rate(Mb/s)*Data Lanes) /(Pixels per Clock*Number of Bits Per Pixel). 因此, video_aclk需要同时大于这两个数值。

当line rate> 1500Mbps, 只需要满足输出的带宽大于等于输入带宽, video_aclk >= (Line Rate(Mb/s)*Data Lanes) /(Pixels per Clock*Number of Bits Per Pixel)。

当没有VFB并且line rate < 1500Mbps, video_aclk >= Line Rate(Mb/s)*Data Lanes/(8*4)。

当没有VFB并且line rate > 1500Mbps, video_aclk >= rxbyteclkhs。

对于UltraScale +, 满足timing的Video_aclk最大值是250MHz, 7 series是150MHz, 如果需要提高吞吐量, 可以增加pixel per clock。

Lite_aclk应该小于等于video_aclk。

Demo例程

PG232提供了几个demo, 如下, 这些demo可以用来作为参考和帮助debug。

2cc9d9188a618abda76514292ad61325.png

Debug建议

下图是DPHY的流程图, 在PHY完成初始化后,clock lane切换到HS mode, 然后data lane切换到HS mode, 开始接收数据。

17e279b79ef363c10750cb52e7cde4bf.png

初始化完成后,可以读MIPI CSI-2 RX subsystem IP的所有寄存器。比如,Core Configuration Register (0x00)的bit 0 (Core Enable)有没有打开。

Timing有没有满足。

Video_aclk有没有IP要求。

Interrupt Status Register (0x24) bit 21(Incorrect Lane configuration)有没有置高。

Interrupt Status Register (0x24) line buffer full有没有置位,如果是,一般是输入快于输出, 可以考虑增加pixels per clock, 降低line rate。

如果MIPI CSI-2 RX Subsystem没有收到packets, 那么可能sensor没有发数据, 或者, Frame end packets没有收到, 或者ECC校验没有通过.这时候可以观测DPHY的DL_STATUS Register的PKT_CNT,确认packets有没有增加. 如果没有增加, 进一步检查DPHY的输入和输出.检查MIPI CSI-2 RX Subsystem的Interrupt Status Register的ECC错误, 如果看到很多的ECC 2-bit错误, 那么就是ECC检验没有通过。

如果看到SoT Error, SoT sync Error或者 ECC 1-bit, ECC 2-bit, CRC错误, 一个可能是sensor和MIPI CSI-2 RX Subsystem Lane position mismatch,需要检查是否first byte of the packet在lane 0, 然后next byte在lane 1. 另外一个就可能是sensor的输出timing问题, 可以尝试调整DPHY的HS_SETTLE,当然, 也有可能是SI问题。

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值