mipi–csi2-rx-subsystem将mipi sensor的数据接入转换为axi4-stream格式,然后经过gammalut和demosaic将Bayer图像重构转换为我们常规用的RGB格式,然后经过VDMA将数据存放到DDR中,后面的processor和display的PHY则构成一套显示的方案(我们用这一套,因为手头资源有限用的普通的HDMI)。
对于ultrascale+ FPGA芯片来讲,我们用到的是microblaze作为整个系统的控制。
这里需要注意的地方有以下几点:
1. mipi的传输速度以及lane的数量给一定要和你的sensor设置相匹配。
2. 整个系统的始终要小心,尤其是csi2-rx这个IP中的video_clk,具体的计算方案参照手册。还有vdma的读写通道的时钟也要注意。
3. 你的sensor的IIC配置的时间,在测试的时候发现一个奇怪的现象:如果你的iic配置和整个系统不是由PGA芯片负责的情况下,先配置iic后配置整个mipi系统,显示器会显示异常;先配置整个mipi系统后配置iic,显示器就会显示正常。初步怀疑同步在搞鬼,没仔细追。
4. 硬件上的排查:sensor不要处在复位状态,以及时钟是否正常,因为mipi的时钟是sensor提供的,此外还会导致iic配置失败。
5. 建议测试的时候,先测试你的输出方案是否正常,xilinx提供了tpg IP,很好用,可以输出彩条,色块等。
使用Xilinx ZYNQ-UltraScale+、FPGA-UltraScale+系列FPGA
我们可以看出来当创建的是UltraScale+,此IP的接口可以直接对接MIPI链路接口,这块其实是Vivado帮我们智能识别的,对于不同的平台,可以使用的IP核以及IP的状态是不一致的。