【ZedBoard实验随笔】OV7670 摄像头 简单总结
1,OV7670 有一大堆寄存器需要配置,這些配置可以參考別人已經(jīng)做好的代碼。
2,OV7670 設(shè)置為640*480 16的分辨率,30幀每秒,就是30FPS,每一個RGB的數(shù)據(jù)是16位的,這16位的數(shù)據(jù)分成兩次從8BIT的總線傳輸過來。
3,計算時鐘是多少: 640*480個點(diǎn),每秒傳遞30幀(也就是刷屏30次每秒),這樣就是640*480*30,而每個點(diǎn)是16位的需要在0OV7670位的傳輸總線上傳輸2次。因此顯示的存儲帶寬應(yīng)該是 640*480*30*2 ?(字節(jié)每秒)。
4,而實(shí)際的給OV7670的時鐘XCLK應(yīng)該考慮到消隱和同步的開銷,這點(diǎn)計算和VGA的時鐘計算相似,計算數(shù)值約為25M。采用25M的XCLK 就可以。
5,XCLK是嫁給OV7670的時鐘信號,PCLK 是OV7670輸出同步信號(而非時鐘)。
6,從OV7670獲取圖像再存在一個緩沖區(qū),之后VGA顯示控制器從這個緩沖區(qū)獲取數(shù)據(jù),現(xiàn)在在VGA屏幕上。
7,上面提到的緩沖區(qū),在ZYNQ7 新片有豐富的BRAM,我們直接用BRAM 開辟出深度為307200(460*480),寬度為12位(因?yàn)閂GA顯示是12位的)的BRAM塊。采用準(zhǔn)雙口模式,OV7670的數(shù)據(jù)每采集兩個連續(xù)的8位轉(zhuǎn)換并從BRAM的A口寫入這個BRAM;VGA控制器直接從B口讀出數(shù)據(jù)進(jìn)行顯示。
8,OV7670采用了類似I2C的串行接口,實(shí)現(xiàn)對多個寄存器的配置,SIOD相當(dāng)于I2C的SDA,是雙向的,只我們一般忽略了從OV7670的應(yīng)答(正確的時序了鏈接必然得到正確應(yīng)答,另外如果不應(yīng)答,程序也似乎沒有別的招應(yīng)對處理)。
9,圖像色彩還有點(diǎn)問題,還有繼續(xù)調(diào)試,應(yīng)該是寄存器配置問題,或者RGB信號線對應(yīng)。
10,
?
ZEDBOARD 以及攝像頭 板子購買網(wǎng)址:SYSCLK.TAOBAO.COM
ZEDBOARD 以及攝像頭 板子購買網(wǎng)址:SYSCLK.TAOBAO.COM
ZEDBOARD 以及攝像頭 板子購買網(wǎng)址:SYSCLK.TAOBAO.COM
?
11,下面是PMOD A B口約束文件的對應(yīng)。
NET OV7670_PWDN LOC = ?Y11 ?| IOSTANDARD=LVCMOS33 | SLEW=SLOW; # JA1
NET OV7670_D<0> ?LOC = ?AA11 ?| IOSTANDARD=LVCMOS33 | SLEW=SLOW; # JA2
NET OV7670_D<2> LOC = ?Y10 ?| IOSTANDARD=LVCMOS33 | SLEW=SLOW; # JA3
NET OV7670_D<4> LOC = ?AA9 ?| IOSTANDARD=LVCMOS33 | SLEW=SLOW; # JA4
NET OV7670_RESET LOC = AB11 ?| IOSTANDARD=LVCMOS33 | SLEW=SLOW; # JA7
NET OV7670_D<1> LOC = ?AB10 ?| IOSTANDARD=LVCMOS33 | SLEW=SLOW; # JA8
NET OV7670_D<3> LOC = ?AB9 ?| IOSTANDARD=LVCMOS33 | SLEW=SLOW; # JA9
NET OV7670_D<5> LOC = ?AA8 ? | IOSTANDARD=LVCMOS33 | SLEW=SLOW; # JA10
NET OV7670_D<6> LOC = ?W12 ?| IOSTANDARD=LVCMOS33 | SLEW=SLOW; # JB1
NET OV7670_XCLK LOC = ?W11 ?| IOSTANDARD=LVCMOS33 | SLEW=SLOW; # JB2
NET OV7670_HREF LOC = ?V10 ?| IOSTANDARD=LVCMOS33 | SLEW=SLOW; # JB3
NET OV7670_SIOD LOC = ?W8 ?| IOSTANDARD=LVCMOS33 | SLEW=SLOW; # JB4
NET OV7670_D<7> LOC = ?V12 ?| IOSTANDARD=LVCMOS33 | SLEW=SLOW; # JB7
NET OV7670_PCLK LOC = ?W10 ?| IOSTANDARD=LVCMOS33 | SLEW=SLOW; # JB8
NET OV7670_VSYNC LOC = ?V9 ?| IOSTANDARD=LVCMOS33 | SLEW=SLOW; # JB9
NET OV7670_SIOC LOC = ?V8 ? | IOSTANDARD=LVCMOS33 | SLEW=SLOW; # JB10
總結(jié)
以上是生活随笔為你收集整理的【ZedBoard实验随笔】OV7670 摄像头 简单总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (第七集——第一章)python面向对象
- 下一篇: 联阳IT1167主控量产工具教程