赞
踩
xilinx 官方为很多的IP提供了相应的系统即方案,这些内容实际上对于很多项目上有很多的帮助,我们可能会借鉴其中的一部分想法,加速设计验证。今天说的节选自xilinx官方文档pg232-mipi-csi2-rx.pdf。
在经过在ultrascale+ FPGA芯片上,使用过mipi_csi2_rx_subsystem这个IP之后,加上近期将上述工程移植到zynqmp SOC芯片上以后,让我对xilinx所提供的video处理模块有了一个深入的认识。现在接一杯水,总结一下这次的收获,希望能作为日后的参考,也希望能纪念这一段加班时光。
当然了只是希望记录调试过程中的大框架,并不会大量罗列各种寄存器的描述,如果需要熟悉那部分内容,看手册会直接一些。
这里按照时间线,我们也是同样先说ultrascale+FPGA方案,直接上图:
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,很好用,可以输出彩条,色块等。
官方提供的是dp作为显示方案,输入的都一样。
我是用hdmi作为输出方案的,只是需要借用ps的DDR。
应用程序方面参照SP701 Application Example Design做相应的适用性配置即可。iic配置,csi初始化,demonsic初始化及设置,vdma初始化及设置和启动dma,tpg的初始化及设置。
工程参照:https://download.csdn.net/download/qq_32134427/82327764
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。