如何在ax7020上使用an5640模块

        最近使用zynq,需要用到摄像头。我买的开发板是淘宝上卖得很火的alinx黑金的ax7020开发板,其他开发板也可以参照此教程进行改写。

        ax7020配套的和摄像头相关的例程都是使用的AN5642模块,为双目摄像头,但是我只需要一个摄像头啊,而且AN5642价格为450元,溢价太高太贵了,苦逼学生买不起。想着自己画个板子,然后买个OV5640摄像头也可以一样的使用,但是找了下,这个摄像头还挺贵的,如果带上镜头那还不如直接买一个模块划算。于是买了AN5640摄像头模块,闲鱼二手110元。因为AN5640模块本来是用在AX309等便宜一些的FPGA上的,因此我觉得应该很好配置。拿到手才发现坑了,首先上面没有晶振,所以需要FPGA另外输出一个时钟。然后引脚全部都不对应。

        没办法,都买了,凑合着用吧。首先用杜邦线连上去点亮再说。AN5640模块原理图如下:

如何在ax7020上使用an5640模块_第1张图片

AN5642原理图如下:

如何在ax7020上使用an5640模块_第2张图片

 仔细对比二者,可以发现,只有三处不一样:

1.AN5640没有晶振,需外接一个xclk引脚,为24MHz。

2.AN5640只有八个数据口,都接的图像数据。AN5642有10个数据口,后8个和AN5640相同,前面多了IO口。

3.AN5640电源为3.3V,AN5642既有3.3V又有5V。仔细观察,发现其实后面都是用的一样的电源芯片RT9011-FMJ6,最后都输出了1.5V和2.8V。最终用在摄像头上的电压只有1.5V和2.8V。因此,用5V电源给AN5640做输入也没有问题。

 

目前来说,最大的问题便是数据采集的问题了。为了图方便我想直接在官方所给的AN5642的例程里做改动。打开alinx官方例程的OV5640 ip,观察数据接口的走向:

如何在ax7020上使用an5640模块_第3张图片

输入10位数据位cmos_d,传递给了alinx_ov5640模块的cmos_d,继续追寻这条线索:

如何在ax7020上使用an5640模块_第4张图片

在这里,cmos_d的后8位赋值给了cmos_d_d0,cmos_d_d0又传给了cmos_8_16bit模块。如何在ax7020上使用an5640模块_第5张图片 

 没有必要往下看了,这里已经可以确定,cmos_d的前两位数据没有使用。因此,这个程序是可以直接使用的。

接下来添加24MHz时钟的输出:添加clocking wizard这个ip,然后设置输出24MHz,将locked取消,reset type设置为active low:

如何在ax7020上使用an5640模块_第6张图片

 时钟和复位都连接到ov5640上,再将clk_out make external即可。

接下来,便是绑定引脚了,按照原理图加实际连线即可确定,此处实物图和引脚对应如下图:

如何在ax7020上使用an5640模块_第7张图片

接下来,便可以和使用AN5642一样的使用该模块了。摄像头配置在ps端,因为iic是ps端输出的,不用改。

 

你可能感兴趣的:(zynq开发)