1,OV7670有一大堆寄存器,需要配置这些寄存器才能引用别人已经编写的代码。
2,OV7670被设定为640*480 16的分辨率,30帧每秒、30FPS。 每个RGB的数据是16位,该16位的数据从8BIT的总线分两次被传输。
3 )计算时钟为什么(640*480点),每秒传输30帧(即每秒传输30次屏幕),即为640*480*30。 每个点为16位,必须通过0OV7670位传输总线传输两次。 因此,显示的存储带宽必须为640*480*30*2(字节/秒)。
4,但实际到OV7670的时钟XCLK必须考虑消隐和同步开销。 此计算类似于VGA的时钟计算,计算值约为25M。 25M的XCLK就可以了。
5,XCLK是和OV7670结婚的时钟信号,PCLK输出同步信号而不是OV7670的时钟。
6 )从OV7670取得的影像中还有一个缓存器,然后VGA显示控制器从该缓存器取得数据,目前在VGA画面。
7、上述缓冲区在ZYNQ7新片中有丰富的BRAM。 我们直接在BRAM上开发了深度为307200(460*480 )宽12位的BRAM块。 因为VGA显示是12位。 采用准双口模式,OV7670的数据在每次收集两个连续的8位变换时从BRAM的a口写入该BRAM; VGA控制器直接从b端口读取数据并显示。
8,OV7670采用I2C这样的串行接口,实现了向多个寄存器的配置。 SIOD相当于I2C的SDA,是双向的。 来自OV7670的响应一般被忽视。 (如果正确计时链接,一定会得到正确的响应,如果不响应,程序似乎不会采取其他应对措施。 )。
9,图像的颜色还有点问题。 有时会继续调试。 应该是寄存器配置的问题,或者是支持RGB信号线。
10,
ZEDBOARD和相机主板购买网站: SYSCLK.TAOBAO.COM
ZEDBOARD和相机主板购买网站: SYSCLK.TAOBAO.COM
ZEDBOARD和相机主板购买网站: SYSCLK.TAOBAO.COM
11、PMOD A B端口约束文件的对应如下所示。
netov 7670 _ pwd nloc=y11|io standard=LV CMOS 33|slew=slow; # JA1
netov 7670 _ d0loc=aa11|io standard=LV CMOS 33|slew=slow; # JA2
netov 7670 _ d2loc=y10|io standard=LV CMOS 33|slew=slow; # JA3
netov 7670 _ d4loc=aa9|io standard=LV CMOS 33|slew=slow; # JA4
netov 7670 _ reset loc=ab11|io standard=LV CMOS 33|slew=slow; # JA7
netov 7670 _ d1loc=ab10|io standard=LV CMOS 33|slew=slow; # JA8
netov 7670 _ d3loc=ab9|io standard=LV CMOS 33|slew=slow; # JA9
netov 7670 _ d5loc=aa8|io standard=LV CMOS 33|slew=slow; # JA10
netov 7670 _ d6loc=w12|io standard=LV CMOS 33|slew=slow; # JB1
netov 7670 _ xclkloc=w11|io标准=LV CMOS 33|slew=slow; # JB2
netov 7670 _ href loc=v10|io标准=LV CMOS 33|slew=slow; # JB3
netov 7670 _ siodloc=w8|io standard=LV CMOS 33|slew=slow; # JB4
netov 7670 _ d7loc=v 12|io standard=LV CMOS 33|slew=slow; # JB7
netov 7670 _ pclk loc=w10|io标准=LV CMOS 33|slew=slow; # JB8
netov 7670 _ vsync loc=v9| io标准=LV CMOS 33|slew=slow; # JB9
netov 7670 _ sioc loc=V8|io标准=LV CMOS 33|slew=slow; # JB10