從本例開始,接下來的幾例,都將圍繞OV5640攝像頭來學(xué)習(xí),教大家學(xué)會,如何通過OV5640攝像頭,采集圖像,并且顯示在VGA顯示屏上。
本例將簡要地介紹一下OV5640攝像頭,如何詳細(xì)講解一下SCCB接口,該接口主要用于配置OV5640,閑話不多說。
下一篇將介紹 OV5640寄存器
二. 認(rèn)識OV5640攝像頭
先簡單了解一下OV5640的設(shè)計框圖,對其內(nèi)部架構(gòu)有個大致的原理,圖中可以看到 圖像輸出接口支持 DVP和 MIPI 兩種接口,具體使用那種,可以根據(jù)自己的需求進行選擇,本例程使用的是DVP接口的,黑金的那款。
再來看看整體的引腳接口,整體接口圖如下,下面一一介紹
CMOS_SCL 和 CMOS_SDA :實際上就是SCCB接口的SIO_C和SIO_D,由于SCCB和IIC接口十分相似,只有一個位置的細(xì)微差別,所以經(jīng)常就會叫做SCL和SDA。
D0-D7: 圖像數(shù)據(jù)輸出引腳,一共8位,從框圖中可以看出,其實是有10位的,那另外兩位那去了呢?查看攝像頭的外部電路原理圖得知,10位中的低兩位沒有引出來。
CMOS_PCLK: 從框圖中可以看出,這個時鐘是攝像頭輸出的,用于和D0-D7以及VSYNC同步,也就是說外部采集數(shù)據(jù)是以PCLK為標(biāo)準(zhǔn)時鐘的。
CMOS_XCLK: 從框圖中可以看出,這個時鐘是外部輸入的,用于為攝像頭提供時鐘。
CMOS_VSYNC: 攝像頭輸出信號,在每一幀圖像輸出開始之前,都會拉高一定的時間,用于幀同步。
CMOS_HREF: 攝像頭輸出信號,拉高,表示D0-D7輸出數(shù)據(jù)有效。
CMOS_RESET: 復(fù)位信號,默認(rèn)為高電平,拉低時間持續(xù)1ms以上進行復(fù)位,清除OV5640攝像頭內(nèi)部寄存器的所有值為默認(rèn)值。
CMOS_PWDN: 掉電使能信號,外部輸入,高電平有效,正常工作,應(yīng)設(shè)置為低電平。
最后,看一下OV5640輸出的圖像格式,實際輸出的圖像大小是可以調(diào)整的,通過配置寄存器。
到這里算是對OV5640有了一個初步的了解。下面將介紹SCCB時序。
三. SCCB時序
SCCB時序,與IIC是非常類似的,如果不涉及到讀操作的話,可以說是一樣的,配置寄存器的時候,主要涉及到的是寫操作,一般讀操作用于驗證是否成功寫入寄存器。
寫操作
既然寫和IIC一樣,那直接上圖,第一步寫器件的地址,第二步寫寄存器的地址,第三步寫寄存器的值。
其中器件地址為7bit,寄存器的地址為16bit,寄存器的值為8bit。所以配置一個寄存器,一共需要發(fā)送8*4(32)bit數(shù)據(jù)。
從下圖可以看出,與IIC的一個區(qū)別,就是在應(yīng)答位的時候,圖中是用X表示的,也就是說不關(guān)心這一位,為0或1都可以。而IIC的應(yīng)答是為0的,這是一個需要注意的點。
讀操作
讀操作如下
起始信號 + 器件地址寫 +應(yīng)答+ 寄存器地址+應(yīng)答 + 停止信號 + 起始信號 + 器件地址讀 + 應(yīng)答 + 讀數(shù)據(jù) +應(yīng)答 + 停止位
對比IIC而言(IIC可有可無),其中多了個停止信號,這個是非常重要的,容易被忽視。一般而言,IIC讀操作的時候,是不會加這個停止信號的。這一點通過手冊上可以看到。
對IIC時序不清楚的朋友,可以參考第五例,或者其它教程。到這里SCCB接口的具體過程就分享到這里了。
四. SCCB代碼實現(xiàn)
SCCB相較于IIC而言,是簡單了的。
模塊的接口信號如下,還是比較容易的。
實現(xiàn)方法和之前的例程IIC類似,也略有區(qū)別。主要在寫操作時的第二次發(fā)送從機地址的判斷部分。感興趣的可以參考對比。
-
接口
+關(guān)注
關(guān)注
33文章
8598瀏覽量
151157 -
顯示屏
+關(guān)注
關(guān)注
28文章
4488瀏覽量
74305 -
攝像頭
+關(guān)注
關(guān)注
60文章
4841瀏覽量
95695
原文標(biāo)題:OV5640攝像頭簡介與SCCB時序(上)
文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論