1. 程式人生 > >OV7725攝像頭暫存器設定

OV7725攝像頭暫存器設定

image

  上圖是OV7725實現的整體框架,有點醜。FPGA描述SCCB時序,完成OV7725的配置,配置完成之後,OV7725 sensor輸出PCLK和href,vsync以及cmos_data訊號。經過格式的轉換單元,將格式轉換後的資料送給SDRAM單元,最終實現VGA/LCD/上位機顯示。

  之前已經提及過,SCCB介面主要實現sensor內部各種暫存器的配置,如AGC,AWB,gama,color saturation等等,下面就講解暫存器的配置。參考手冊如下圖所示,暫存器的配置還需要OV7725的手冊中關於暫存器設定章節一起配合使用。

image

image

  在手冊的最後一個章節,給出了參考設定,不過輸出的格式是YCbCr格式,其他設定需要聯絡FAE。

  image

  如下圖所示,寫入的暫存器前8位資料,如0x3d代表了暫存器的地址,後8位0x03代表了該暫存器設定的值。根據手冊最後內容可以在0V7725資料手冊(OV7725 datasheet)中找到相關暫存器的說明。

image

  比如0x3d,在資料手冊(OV7725 datasheet)中代表的功能是DC偏置量的控制。如下圖所示,其他暫存器以此類推,可以一一找到。注意在設定時設定暫存器地址或者暫存器的名稱均可以,比如0x3d,0x03,也可以設定com12,0x03.

image

  在OV7725配置手冊中,講述了關於YCbCr和RGB24格式之間的轉換方法,如下圖所示,由於FPGA不擅長處理浮點數,所以需轉換成定點數處理。

 image

image

  在OV7725配置手冊中,詳細說明了對於OV7725格式輸出的說明,分為有ISP和無ISP情況,這個模組可以在FPGA內部去建立格式輸出單元,此方面內容會在之後講解。

image

  對於暫存器的設定,根據OV7725應用手冊中的參考設定,有幾個重要部分必須要進行設定,如下所示:

  1. ID的設定

  對於廠商來講,每一款感測器有唯一的ID地址。

wps3290.tmp

  製造商唯一的ID地址。

wps32A0.tmp

 2.復位所有的暫存器

  上電之後,對OV內部所有的暫存器先復位。暫存器12不單有復位功能,還有控制OV視訊輸出格式,下面會提及到,參見第10項。

image

image3.模擬處理中的DC偏置

image

image 

4. 對行和場的設定

  暫存器17位行起始控制,18為VGA模式下行畫素大小。19為場起始控制,1A為VGA模式下場畫素大小。

image

image

5.對場同步訊號進行取反操作

  為了和VGA時序保持一致,將VSYNC的時序進行取反,關於一幀的時序圖參考上一篇部落格。

  write_SCCB(Ox15,Ox02);此項設定,將pclk定義為上升沿有效,href定位為高電平有效,vsync進行取反向。

6.影象的起始位置和大小控制

image

image

  7.行和場輸出資料的大小控制

image

image

image

  8.內部時鐘控制

暫存器0d是設定內部PLL的倍頻,選擇4倍頻,AEC自動曝光控制選擇二分之一窗。暫存器11是內部時鐘的設定,通過PLL4倍頻之後,計算得到的結果和XCLK的時鐘應該是相等的。

imageimage 

image

image

  9.虛擬畫素高位插入

  配置手冊上面給出的是預設值,此功能實際上沒用到。

image

image10.OV視訊格式輸出配置

  暫存器12,功能複用  ,write_SCCB(Ox12,Ox06);輸出格式是RGB565格式。所以此暫存器非常重要,決定了OV輸出的格式。

11.RGB格式YUV格式的順序以及測試彩條的控制

  write_SCCB(Ox0c,Ox10);其中暫存器0c控制RGB和YUV格式的順序,還有控制OV內部自帶的測試彩條的使能。這裡採用預設值,不使能彩條。

image

image

  12. DSP控制引數

  其中0x42暫存器控制的是背光補償藍控制量,如下圖所示,選擇手冊參考值。

image

  其中0x4d是修補增益的控制,0x42對背光補償顏色B分量進行設定。

image

image 

  暫存器0x63是AWB自動白平衡控制字0的控制。選擇手冊中的預設值。0xf0;

image

  暫存器0x64~67是DSP控制為1~4,0x64設定為配置暫存器中的預設值0xff;0x65選擇手冊預設值,配置手冊上給出的是0x20,選擇預設值0x00,不影響成像效果。0x66是UV的交替格式。選擇0x00。0x67是輸出格式的選擇,這裡設定0x00/0x01,為YUV or RGB輸出。

image

image13. AWB,AEC,AGC引數控制調節

image image

  0x13控制AEC,AWB,AGC是否使能,設定為0xff;0x0f控制當輸出格式轉換時,視窗自動適應。0x14設定0x11.0x22設定為 0x98,作為50Hz頻寬濾波。在OV7725暫存器配置手冊中0x13,0x22,0x23是關於交流頻率50Hz,幀頻為25,情況下的帶通濾波器的設定。image

image

imageimage

imageimageimage

  14.邊緣強化處理

均選擇配置指定值。

image

image

  15.色彩還原矩陣設定

image

image

  16.亮度,對比度,UV和SDE控制

  選擇預設值。

image

image

image

image

image

image17. gama引數設定 

  其中暫存器0x7e~0x8c均是對gama曲線的設定,設定配置手冊預設值。

image

image

image

  18. UV控制

write_sccb{0xa7, 0x65}; 
write_sccb{0xa8, 0x65}; 
write_sccb{0xa9, 0x80}; 
write_sccb {0xaa, 0x80};

 image

image19.夜間自動調整幀頻

image

image

  若是設定成 Fixed Frame Rate,則image

  以上是對常用的暫存器的設定,大部分參考了手冊中的設定值,接下來就要實現 SCCB時序,實現對OV7725實現配置。