在上例中,介紹了配置OV5640所需的SCCB時(shí)序,以及具體的實(shí)現(xiàn)。本例將介紹與初始化相關(guān)的重要寄存器,以及上電時(shí)序。
OV5640的寄存器非常多,從它的寄存器的地址為16bit就可以看出,在商家提供的一些例程中,可以看到配置寄存器的語句多達(dá)200行,無法一時(shí)間學(xué)習(xí)掌握所有的寄存器。所以只需要掌握一些重要即可,例如控制圖像輸出格式、控制圖像輸出大小、控制圖像輸出幀率的寄存器。下面就開始介紹吧
二. 重要寄存器講解
一般來說,只需要了解三大類寄存器即可 :時(shí)鐘PCLK輸出頻率寄存器 , 圖像輸出大小寄存器 , 圖像輸出格式寄存器
1
時(shí)鐘PCLK輸出頻率寄存器
PCLK時(shí)鐘主要由0x3035 - 0x3037三個(gè)寄存器控制(其余寄存器也有,可以不看),詳情如下,一般來說完整的配置參數(shù)會(huì)給你配置到48MHz / 84MHz,如果想要配置成其他的頻率,可以調(diào)整0x3036寄存器的值即可。具體是怎么對應(yīng)的話,手冊上好像沒有給出。
2
圖像輸出大小寄存器
這部分比較關(guān)鍵,同時(shí)也比較容易,看下面這張圖片即可,physical pixel size為物理感光的尺寸,也就是攝像頭能夠感光的大小。ISP input size為圖像處理單元輸入的大小,由物理感光的尺寸經(jīng)過一定的處理,輸入進(jìn)ISP進(jìn)行處理,data output size 為實(shí)際攝像頭輸出的像素大小,為經(jīng)過ISP進(jìn)行處理縮放之后的圖像數(shù)據(jù)。
在實(shí)際使用的過程中,只需要關(guān)心data output size的大小即可。即只需要配置0x3808-0x3809 和0x380a-0x380b四個(gè)寄存器即可。
另外,有四個(gè)寄存器也是需要關(guān)注的,0x380c-0x380f,這四個(gè)寄存器分別配置水平輸出的像素總個(gè)數(shù),以及豎直輸出像素的總個(gè)數(shù),這個(gè)配置要比data output size要大,和VGA的行列消影類似
3
為奧運(yùn)健兒喝彩
這個(gè)配置只需要配置0x4300寄存器即可,類別比較多,可以自行查看手冊。
以上需要關(guān)注的寄存器,都是在其他寄存器配置好的前提下,然后進(jìn)行修改。完整的寄存器配置可以去正點(diǎn)原子或者GitHub上copy,本例使用的是在GitHub上copy下來的。
三. 上電時(shí)序講解
這部分在手冊中給出,通過下圖,可以看出,還是比較容易的。初始化時(shí)序只需要看到t4結(jié)束,后面就不要管了,后面是掉電時(shí)序。
第一步. 上電后,將PWDN拉高,RESETB拉低
第二步. 延時(shí)大于等于t2(5ms)時(shí)間后,將PWDN拉低,并且一直保持
第三步. 在延時(shí)大于等于t3(1ms)時(shí)間后,將RESETB拉高,將PWDN拉低,并且一直保持
第四步.最后延時(shí)t4(20ms),完成上電
完成上電后,即可開始SCCB對寄存器進(jìn)行初始化
四. 程序介紹
程序主要包括三個(gè)部分,上電時(shí)序,然后是寄存器初始化,最后就是接收圖像數(shù)據(jù)了。這部分比較容易,就不做介紹了。
always@(*) begin case(state) S_POWER_UP: if( ov5640_powerup_ack == 1'b1 ) next_state <= S_INIT; ? ? ? ?else ? ? ? ? ? ?next_state <= S_POWER_UP; ? ?S_INIT: ? ? ? ?if( ov5640_init_ack == 1'b1 ) ? ? ? ? ? ?next_state <= S_WORK; ? ? ? ?else ? ? ? ? ? ?next_state <= S_INIT; ? ?S_WORK: ? ? ? ?next_state <= S_WORK; ? ?default : next_state <= S_POWER_UP; ? ?endcase end
最終ov5640配置為640 x 480 大小的輸出,通過邏輯分析儀可以看到每一行輸出1280個(gè)數(shù)據(jù),也就是640個(gè)像素點(diǎn)(每次輸出8bit,兩種時(shí)鐘輸出一個(gè)完整的RGB565數(shù)據(jù))。
-
寄存器
+關(guān)注
關(guān)注
31文章
5336瀏覽量
120230 -
攝像頭
+關(guān)注
關(guān)注
59文章
4836瀏覽量
95598 -
時(shí)序
+關(guān)注
關(guān)注
5文章
387瀏覽量
37318
原文標(biāo)題:FPGA驅(qū)動(dòng)OV5640上電及初始化(下)
文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論