OV7725學習(二)


首先要配置OV7725攝像頭的寄存器,遵循的是SCCB協議,配置之前需要1ms的時間等待,保證系統穩定,而且剛開始要丟棄前10幀的數據,因為認為前10幀的數據是不穩定的,圖1就是數據手冊上關於這一點的描述。

SCCB協議已經在上一篇博文中仔細研究過了,詳情參考 http://www.cnblogs.com/aslmer/p/5965229.html

                 

                 

                                                                      圖 1

OV7725攝像頭可以輸出RGB,YUV等多種格式的數據,在這里我們以數據格式為RGB565為例,

RGB565即每個像素點都是16位的,由 圖2 可以知道從攝像頭輸出的數據並不是16位的,而是8位的,

先出來第一個字節,緊接着再出來第二個字節,占用的是D2-D9這八個數據輸出口,

一個完整的16位數據為{first byte ,second byte},因此我們需要把這兩個字節拼接成16位的數據,然后再應用。

                                                     圖 2

配置完寄存器后,通過SignalTap邏輯分析儀捕捉一下實際出來的數據流如圖 3,格式為:RGB565,640*480的像素,cmos_href高電平有效

cmos_vsync 是場同步信號,即一幅圖像,

cmos_href 是行同步信號,即圖像的一行,

cmos_data是輸出的數據

一共有480行,每行有640個像素點,這一點和VGA的時序類似

通過 圖3 可知在cmos_href有效時才有數據,否則輸出為0,我們想知道一個cmos_href下一共有多少個數據,因此將圖 3 中的第 2 個 數據流放大,如圖 4 、圖 5 所示。

                                                                                     圖 3 

                                                                                     圖 4

                                                                                     圖 5

我們先計算一下看每行是不是640個數據:2162 - 882 = 1280,為什么不是640(我們配置的是RGB565,每位是16位,但是攝像頭是8位輸的,即一個16位的數據需要2個8位數據),1280/2=640.這和我們前面分析的是一模一樣的。

因此驅動完攝像頭並不能完事了,要將數據整合成我們需要的16位。

 

 

仿真的結果如下:

1、丟棄了前10幀數據。

2、檢查數據是否拼接成功。

 

最近一周時間都沒怎么自學FPGA了,突然不想寫開題報告,不想做光學、熱學仿真,感覺有那么一丟丟煩,

干脆暫時放下那些,學習學習我的FPGA,心里才能覺得踏實。

 原文鏈接:http://www.cnblogs.com/aslmer/p/5999381.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM