OV7670配置和調試小結


 先上一下OV7670的框架圖

 

OV7670常用寄存器設置說明

直接看OV7670 Implementation Guide (V1.0)等

資料我已經上傳了

https://files.cnblogs.com/files/libra13179/OV7670%E5%AE%98%E6%96%B9%E6%96%87%E6%A1%A3.zip

 

 

我的寄存器配置

struct regval_list {
    unsigned char reg_num;
    unsigned char value;
};

 

  1 static struct regval_list ov7670_default_regs[] =
  2 {
  3     /**
  4      *Frame Rate Adjustment for x Mhz input clock
  5      *x fps, PCLK = xMhz
  6      */
  7     {0x11, 0x00},// 內部時鍾 CLKRC,對於拍照來說,值越大,越清楚,刷屏現像 越不重,攝像時,值過大 會造成跟不上
  8                   // 00 時,可能是對於 2.8的屏,對於 2.4屏 會出現 7格分屏現象
  9                   // 值越大時,攝頭移動 圖像拖尾就會越嚴重,反之OK
 10                   // 3值適中,2已有3分屏,0有7分屏,5拖尾重,10已花屏
 11                   // [7] 保留
 12                   // [6] 直接使用外部時鍾(沒有預分頻)
 13                   // [5~0] 內部時鍾分頻    內部時鍾 = 輸入時鍾/([5~0] + 1)    [5~0] = 00000~11111
 14     {0x6b, 0x40},//PLL*4
 15     {0x2a, 0x00},//虛擬像素高位插入
 16     {0x2b, 0x00},//虛擬像素低位插入
 17     {0x92, 0x00},// DM_LNL 空行低8位
 18     {0x93, 0x00},// DM_LNH 空行高8位
 19     {0x3b, 0x02},
 20 
 21     //Output format
 22     {0x12, 0x14},//QVGA(320*240)、RGB輸出
 23 
 24     //RGB555/565 option(must set COM7[2] = 1 and COM7[0] = 0)
 25     {0x40, 0x10},//RGB565,effective only when RGB444[1] is low
 26     {0x8c, 0x00},
 27 
 28     /**
 29      *Special effects - 特效
 30      */
 31     //normal
 32     {0x3a, 0x04},
 33     {0x67, 0xc0},
 34     {0x68, 0x80},
 35 
 36 
 37     /**
 38      *Mirror/VFlip Enable - 水平鏡像/豎直翻轉使能
 39      */
 40     {0x1e, 0x37},//修改配置值將產生圖像顯示上下或左右顛倒
 41 
 42 
 43     {0x01, 0x80}, //藍色通道增益
 44     {0x02, 0x80}, //紅色通道增益
 45 
 46 
 47     /**
 48      *  Banding Filter Setting for 24Mhz Input Clock - 條紋濾波器
 49      *  30fps for 60Hz light frequency
 50      */
 51     {0x13, 0xe0},//banding filer enable
 52     {0x9d, 0x4c},//50Hz banding filer
 53     {0x9e, 0x3f},//60Hz banding filer
 54     {0xa5, 0x05},//3 step for 50Hz
 55     {0xab, 0x07},//4 step for 60Hz
 56     {0x3b, 0x02},//select 60Hz banding filer
 57 
 58 
 59     //Simple White Balance - 白平衡
 60     {0x13, 0xe0},//AWB、AGC、AGC Enable and ...
 61     {0x6f, 0x9f},// AWBCTR0 AWB控制0
 62 
 63 
 64     //AWBC - 自動白平衡控制(Automatic white balance control)
 65     {0x43, 0x14},//用戶手冊里這些寄存器的值都是保留(Reserved),不用設置的呀?
 66     {0x44, 0xf0},
 67     {0x45, 0x34},
 68     {0x46, 0x58},
 69     {0x47, 0x28},
 70     {0x48, 0x3a},
 71     //AWB Control
 72     {0x59, 0x88},//用戶手冊連寄存器都是保留,初始值都沒提供
 73     {0x5a, 0x88},
 74     {0x5b, 0x44},
 75     {0x5c, 0x67},
 76     {0x5d, 0x49},
 77     {0x5e, 0x0e},
 78     //AWB Control
 79     {0x6a, 0x40},// G通道 AWB增益
 80     {0x6c, 0x0a},// AWBCTR3 AWB控制3
 81     {0x6d, 0x55},// AWBCTR2 AWB控制2
 82     {0x6e, 0x11},// AWBCTR1 AWB控制1
 83     {0x6f, 0x9f},// AWBCTR0 AWB控制0
 84 
 85 
 86     //AGC/AEC - Automatic Gain Control自動增益補償/Automatic exposure Control自動曝光控制
 87     {0x00, 0x00},// AGC 自動增益控制 (值越大 能有效控制 黑像時刷花屏現象)
 88     {0x14, 0x20},//0x38, limit the max gain
 89     {0x24, 0x75},// AEW AGC/AEC穩定運行區域上限
 90     {0x25, 0x63},// AEB AGC/AEC穩定運行區域下限
 91     {0x26, 0xA5},// VPT AGC/AEC快速運行區域
 92 
 93 
 94     //AEC algorithm selection - AEC公式選擇
 95     {0xaa, 0x94},//基於平均值的AEC算法Average-based AEC algorithm/基於直方圖的AEC算法Histogram-based AEC algorithm
 96     //基於直方圖的AGC/AEC的控制
 97     {0x9f, 0x78},// HAECC1 基於直方圖的AEC/AGC控制1
 98     {0xa0, 0x68},// HAECC2 基於直方圖的AEC/AGC控制2
 99     {0xa6, 0xdf},// HAECC3 基於直方圖的AEC/AGC控制3
100     {0xa7, 0xdf},// HAECC4 基於直方圖的AEC/AGC控制4
101     {0xa8, 0xf0},// HAECC5 基於直方圖的AEC/AGC控制5
102     {0xa9, 0x90},// HAECC6 基於直方圖的AEC/AGC控制6
103 
104 
105     //Fix Gain Control - 固定增益控制
106     {0x69, 0x5d},//Fix gain for Gr channel/for Gb channel/for R channel/for B channel
107 
108 
109     //Matrix Coefficient - 色彩矩陣系數
110     //Color saturation 顏色飽和度 + 0
111     {0x4f, 0x80},// MTX1 色彩矩陣系數1
112     {0x50, 0x80},// MTX2 色彩矩陣系數2
113     {0x51, 0x00},// MTX3 色彩矩陣系數3
114     {0x52, 0x22},// MTX4 色彩矩陣系數4
115     {0x53, 0x5e},// MTX5 色彩矩陣系數5
116     {0x54, 0x80},// MTX6 色彩矩陣系數6
117     {0x58, 0x9e},// MTXS 色彩矩陣系數5~0的符號
118 
119 
120     //Brightness - 亮度 + 0
121     {0x55, 0x00}, //亮度控制
122 
123 
124     //Contrast - 對比度 + 0
125     {0x56, 0x60},//對比度
126     {0x57, 0x80},//對比度中心
127 
128     /*Gamma Curve - 伽馬曲線*/
129     {0x7a, 0x20},
130     {0x7b, 0x1c},
131     {0x7c, 0x28},
132     {0x7d, 0x3c},
133     {0x7e, 0x55},
134     {0x7f, 0x68},
135     {0x80, 0x76},
136     {0x81, 0x80},
137     {0x82, 0x88},
138     {0x83, 0x8f},
139     {0x84, 0x96},
140     {0x85, 0xa3},
141     {0x86, 0xaf},
142     {0x87, 0xc4},
143     {0x88, 0xd7},
144     {0x89, 0xe8},
145 
146 
147     /**
148      *Lens Correction Option - 鏡頭補償選項
149      */
150     {0x62, 0x00};// LCC1 鏡頭補償選項1
151     {0x63, 0x00};// LCC2 鏡頭補償選項2
152     {0x64, 0x04},// LCC3 鏡頭補償選項3
153     {0x65, 0x20},// LCC4 鏡頭補償選項4
154     {0x66, 0x05},// LCC5 鏡頭補償選項5
155     {0x94, 0x04},// LCC6 鏡頭校正選項(在LCC5[2]=1有效)
156     {0x95, 0x08},// LCC7 鏡頭校正選項(在LCC5[2]=1有效)
157 
158 
159     //輸出窗口設置
160     //注釋這些配置的話,就傾斜顯示,並顯示多塊,這到底是控制什么的?跟時序圖有關?
161     {0x17, 0x16},// HSTART 行輸出格式 行幀(HREF列)起始的高8位(低3位在HREF[2~0])
162     {0x18, 0x04},// HSTOP  行輸出格式 行幀(HREF列)結束的高位(低3位在HREF[5~3])
163     {0x19, 0x02},// VSTRT  場輸出格式 場幀(行)起始的高8位(低2位在VREF[1~0])
164     {0x1a, 0x7a},// VSTOP  場輸出格式 場幀(行)結束的高8位(低2位在VREF[3~2])
165 
166     {0x32, 0x80},// HREF 控制
167     {0x03, 0x0a},// VREF 場幀控制
168 
169 
170     //注釋這個配置的話,就顯示花屏了
171     {0x15, 0x00},//配置PCLK、HREF、VSYNC相關
172 
173 
174     //Automatic black Level Compensation - 自動黑電平校正
175     {0xb0, 0x84},//調試時注釋這項配置時,顏色顯示不正常了,紅色練綠色,綠色變紅色,但用戶手冊對這寄存器是保留RSVD
176 
177     {0xb1, 0x0c},// ABLC1
178     {0xb2, 0x0e},//保留
179 
180     {0xb3, 0x82},//ABLC target
181     {0xb8, 0x0a},// 保留
182 
183 
184     //SCALING_xx寄存器
185     {0x70, 0x00},//SCALING_XSC,水平縮放系數
186     {0x71, 0x00},//SCALING_YSC,垂直縮放系數
187     {0x72, 0x11}, //SCALING_DCWCTR,DCW 控制
188     {0x73, 0x00},//SCALING_PC,旁路 DSP 縮放時鍾分頻控制
189     {0xa2, 0x02},//SCALING_PCLK_DELAY,像素始終延遲
190     {0x3e, 0x00},// COM14 通用控制14
191     // [7~5] 保留
192     // [4] DCW 和 PCLK 控制:  0  正常的 PCLK    1 DCW和PCLK由COM12[2~0]及SCALING_PCLK_DIV[3~0](0X73)控制
193     // [3] 手動縮放控制,應用於預定尺寸(CIF QCIF QVGA)時:0 禁止手動縮放   1 允許手動縮放
194     // [2~0] PCLK分頻 (在COM14[4]為1時有效)
195     // 000 /1
196     // 001 /2
197     // 010 /4
198     // 011 /8
199     // 100 /16
200     // 101~111 不允許
201 
202     //ADC
203     {0x37, 0x1d},//ADC控制ADC Control
204     {0x38, 0x71},//ADC和模擬共模控制ADC and Analog Common Mode Control
205     {0x39, 0x2a},//ADC偏移控制ADC Offset Control
206 
207 
208     //零雜的寄存器
209 
210 
211 
212     {0x0c, 0x0c},// COM3 通用控制3
213     // [7] 保留
214     // [6] 輸出數據進行 MSB和LSB 交換
215     // [5] 掉電期間輸出時鍾的狀態 0 三態時鍾   1 非三態時鍾
216     // [4] 掉電期音輸出數據的狀態 0 三態數據   1 非三態數據
217     // [3] 縮放     0 禁止    1 使能(若設置(COM7[5~3])成預定模式的像時,然后將COM14[3]設成1 即可手動調節)
218     // [2] DCW控制  0 禁止    1 使能(若設置(COM7[5~3])成預定模式的像時,然后將COM14[3]設成1 即可手動調節)
219     // [1~0] 保留
220 
221 
222     {0x10, 0x00},// AECH 曝光值
223 
224 
225     {0x0d, 0x00},
226 
227 
228     {0x0f, 0x4b},
229 
230 
231     {0x3c, 0x78},//COM12 通用控制12
232     // [7] HERF操作   0 在VSYNC為低時沒有HREF     1 HREF總是存在
233     // [6~0] 保留
234 
235 
236     {0x74, 0x19},
237 
238 
239     //用戶手冊里這幾個寄存器都是保留RSVD
240     {0x0e, 0x61},
241     {0x16, 0x02},
242     {0x21, 0x02},// ADCCTR1 保留
243     {0x22, 0x91},// ADCCTR2 保留
244     {0x29, 0x07},// ADCCTR3 保留
245     {0x33, 0x0b},// CHLF 感光陣列電流控制 保留
246     {0x35, 0x0b},
247     {0x4d, 0x40},
248     {0x4e, 0x20},
249     {0x8d, 0x4f},
250     {0x8e, 0x00},
251     {0x8f, 0x00},
252     {0x90, 0x00},
253     {0x91, 0x00},
254     {0x96, 0x00},
255     {0x9a, 0x80},
256     {0x97, 0x30},
257     {0x98, 0x20},
258     {0x99, 0x30},
259     {0x9b, 0x29},
260     {0x9c, 0x03},
261 };
View Code

 


免責聲明!

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



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