OV7725攝像頭暫存器設定
上圖是OV7725實現的整體框架,有點醜。FPGA描述SCCB時序,完成OV7725的配置,配置完成之後,OV7725 sensor輸出PCLK和href,vsync以及cmos_data訊號。經過格式的轉換單元,將格式轉換後的資料送給SDRAM單元,最終實現VGA/LCD/上位機顯示。
之前已經提及過,SCCB介面主要實現sensor內部各種暫存器的配置,如AGC,AWB,gama,color saturation等等,下面就講解暫存器的配置。參考手冊如下圖所示,暫存器的配置還需要OV7725的手冊中關於暫存器設定章節一起配合使用。
在手冊的最後一個章節,給出了參考設定,不過輸出的格式是YCbCr格式,其他設定需要聯絡FAE。
如下圖所示,寫入的暫存器前8位資料,如0x3d代表了暫存器的地址,後8位0x03代表了該暫存器設定的值。根據手冊最後內容可以在0V7725資料手冊(OV7725 datasheet)中找到相關暫存器的說明。
比如0x3d,在資料手冊(OV7725 datasheet)中代表的功能是DC偏置量的控制。如下圖所示,其他暫存器以此類推,可以一一找到。注意在設定時設定暫存器地址或者暫存器的名稱均可以,比如0x3d,0x03,也可以設定com12,0x03.
在OV7725配置手冊中,講述了關於YCbCr和RGB24格式之間的轉換方法,如下圖所示,由於FPGA不擅長處理浮點數,所以需轉換成定點數處理。
在OV7725配置手冊中,詳細說明了對於OV7725格式輸出的說明,分為有ISP和無ISP情況,這個模組可以在FPGA內部去建立格式輸出單元,此方面內容會在之後講解。
對於暫存器的設定,根據OV7725應用手冊中的參考設定,有幾個重要部分必須要進行設定,如下所示:
1. ID的設定
對於廠商來講,每一款感測器有唯一的ID地址。
製造商唯一的ID地址。
2.復位所有的暫存器
上電之後,對OV內部所有的暫存器先復位。暫存器12不單有復位功能,還有控制OV視訊輸出格式,下面會提及到,參見第10項。
4. 對行和場的設定
暫存器17位行起始控制,18為VGA模式下行畫素大小。19為場起始控制,1A為VGA模式下場畫素大小。
5.對場同步訊號進行取反操作
為了和VGA時序保持一致,將VSYNC的時序進行取反,關於一幀的時序圖參考上一篇部落格。
write_SCCB(Ox15,Ox02);此項設定,將pclk定義為上升沿有效,href定位為高電平有效,vsync進行取反向。
6.影象的起始位置和大小控制
7.行和場輸出資料的大小控制
8.內部時鐘控制
暫存器0d是設定內部PLL的倍頻,選擇4倍頻,AEC自動曝光控制選擇二分之一窗。暫存器11是內部時鐘的設定,通過PLL4倍頻之後,計算得到的結果和XCLK的時鐘應該是相等的。
9.虛擬畫素高位插入
配置手冊上面給出的是預設值,此功能實際上沒用到。
暫存器12,功能複用 ,write_SCCB(Ox12,Ox06);輸出格式是RGB565格式。所以此暫存器非常重要,決定了OV輸出的格式。
11.RGB格式YUV格式的順序以及測試彩條的控制
write_SCCB(Ox0c,Ox10);其中暫存器0c控制RGB和YUV格式的順序,還有控制OV內部自帶的測試彩條的使能。這裡採用預設值,不使能彩條。
12. DSP控制引數
其中0x42暫存器控制的是背光補償藍控制量,如下圖所示,選擇手冊參考值。
其中0x4d是修補增益的控制,0x42對背光補償顏色B分量進行設定。
暫存器0x63是AWB自動白平衡控制字0的控制。選擇手冊中的預設值。0xf0;
暫存器0x64~67是DSP控制為1~4,0x64設定為配置暫存器中的預設值0xff;0x65選擇手冊預設值,配置手冊上給出的是0x20,選擇預設值0x00,不影響成像效果。0x66是UV的交替格式。選擇0x00。0x67是輸出格式的選擇,這裡設定0x00/0x01,為YUV or RGB輸出。
0x13控制AEC,AWB,AGC是否使能,設定為0xff;0x0f控制當輸出格式轉換時,視窗自動適應。0x14設定0x11.0x22設定為 0x98,作為50Hz頻寬濾波。在OV7725暫存器配置手冊中0x13,0x22,0x23是關於交流頻率50Hz,幀頻為25,情況下的帶通濾波器的設定。
14.邊緣強化處理
均選擇配置指定值。
15.色彩還原矩陣設定
16.亮度,對比度,UV和SDE控制
選擇預設值。
其中暫存器0x7e~0x8c均是對gama曲線的設定,設定配置手冊預設值。
18. UV控制
write_sccb{0xa7, 0x65};
write_sccb{0xa8, 0x65};
write_sccb{0xa9, 0x80};
write_sccb {0xaa, 0x80};
以上是對常用的暫存器的設定,大部分參考了手冊中的設定值,接下來就要實現 SCCB時序,實現對OV7725實現配置。