先上一下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

我的寄存器配置

  1. struct regval_list {
  2. unsigned char reg_num;
  3. unsigned char value;
  4. };
  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. *Mirror/VFlip Enable - 水平镜像/竖直翻转使能
  38. */
  39. {0x1e, 0x37},//修改配置值将产生图像显示上下或左右颠倒
  40.  
  41. {0x01, 0x80}, //蓝色通道增益
  42. {0x02, 0x80}, //红色通道增益
  43.  
  44. /**
  45. * Banding Filter Setting for 24Mhz Input Clock - 条纹滤波器
  46. * 30fps for 60Hz light frequency
  47. */
  48. {0x13, 0xe0},//banding filer enable
  49. {0x9d, 0x4c},//50Hz banding filer
  50. {0x9e, 0x3f},//60Hz banding filer
  51. {0xa5, 0x05},//3 step for 50Hz
  52. {0xab, 0x07},//4 step for 60Hz
  53. {0x3b, 0x02},//select 60Hz banding filer
  54.  
  55. //Simple White Balance - 白平衡
  56. {0x13, 0xe0},//AWB、AGC、AGC Enable and ...
  57. {0x6f, 0x9f},// AWBCTR0 AWB控制0
  58.  
  59. //AWBC - 自动白平衡控制(Automatic white balance control)
  60. {0x43, 0x14},//用户手册里这些寄存器的值都是保留(Reserved),不用设置的呀?
  61. {0x44, 0xf0},
  62. {0x45, 0x34},
  63. {0x46, 0x58},
  64. {0x47, 0x28},
  65. {0x48, 0x3a},
  66. //AWB Control
  67. {0x59, 0x88},//用户手册连寄存器都是保留,初始值都没提供
  68. {0x5a, 0x88},
  69. {0x5b, 0x44},
  70. {0x5c, 0x67},
  71. {0x5d, 0x49},
  72. {0x5e, 0x0e},
  73. //AWB Control
  74. {0x6a, 0x40},// G通道 AWB增益
  75. {0x6c, 0x0a},// AWBCTR3 AWB控制3
  76. {0x6d, 0x55},// AWBCTR2 AWB控制2
  77. {0x6e, 0x11},// AWBCTR1 AWB控制1
  78. {0x6f, 0x9f},// AWBCTR0 AWB控制0
  79.  
  80. //AGC/AEC - Automatic Gain Control自动增益补偿/Automatic exposure Control自动曝光控制
  81. {0x00, 0x00},// AGC 自动增益控制 (值越大 能有效控制 黑像时刷花屏现象)
  82. {0x14, 0x20},//0x38, limit the max gain
  83. {0x24, 0x75},// AEW AGC/AEC稳定运行区域上限
  84. {0x25, 0x63},// AEB AGC/AEC稳定运行区域下限
  85. {0x26, 0xA5},// VPT AGC/AEC快速运行区域
  86.  
  87. //AEC algorithm selection - AEC公式选择
  88. {0xaa, 0x94},//基于平均值的AEC算法Average-based AEC algorithm/基于直方图的AEC算法Histogram-based AEC algorithm
  89. //基于直方图的AGC/AEC的控制
  90. {0x9f, 0x78},// HAECC1 基于直方图的AEC/AGC控制1
  91. {0xa0, 0x68},// HAECC2 基于直方图的AEC/AGC控制2
  92. {0xa6, 0xdf},// HAECC3 基于直方图的AEC/AGC控制3
  93. {0xa7, 0xdf},// HAECC4 基于直方图的AEC/AGC控制4
  94. {0xa8, 0xf0},// HAECC5 基于直方图的AEC/AGC控制5
  95. {0xa9, 0x90},// HAECC6 基于直方图的AEC/AGC控制6
  96.  
  97. //Fix Gain Control - 固定增益控制
  98. {0x69, 0x5d},//Fix gain for Gr channel/for Gb channel/for R channel/for B channel
  99.  
  100. //Matrix Coefficient - 色彩矩阵系数
  101. //Color saturation 颜色饱和度 + 0
  102. {0x4f, 0x80},// MTX1 色彩矩阵系数1
  103. {0x50, 0x80},// MTX2 色彩矩阵系数2
  104. {0x51, 0x00},// MTX3 色彩矩阵系数3
  105. {0x52, 0x22},// MTX4 色彩矩阵系数4
  106. {0x53, 0x5e},// MTX5 色彩矩阵系数5
  107. {0x54, 0x80},// MTX6 色彩矩阵系数6
  108. {0x58, 0x9e},// MTXS 色彩矩阵系数5~0的符号
  109.  
  110. //Brightness - 亮度 + 0
  111. {0x55, 0x00}, //亮度控制
  112.  
  113. //Contrast - 对比度 + 0
  114. {0x56, 0x60},//对比度
  115. {0x57, 0x80},//对比度中心
  116.  
  117. /*Gamma Curve - 伽马曲线*/
  118. {0x7a, 0x20},
  119. {0x7b, 0x1c},
  120. {0x7c, 0x28},
  121. {0x7d, 0x3c},
  122. {0x7e, 0x55},
  123. {0x7f, 0x68},
  124. {0x80, 0x76},
  125. {0x81, 0x80},
  126. {0x82, 0x88},
  127. {0x83, 0x8f},
  128. {0x84, 0x96},
  129. {0x85, 0xa3},
  130. {0x86, 0xaf},
  131. {0x87, 0xc4},
  132. {0x88, 0xd7},
  133. {0x89, 0xe8},
  134.  
  135. /**
  136. *Lens Correction Option - 镜头补偿选项
  137. */
  138. {0x62, 0x00};// LCC1 镜头补偿选项1
  139. {0x63, 0x00};// LCC2 镜头补偿选项2
  140. {0x64, 0x04},// LCC3 镜头补偿选项3
  141. {0x65, 0x20},// LCC4 镜头补偿选项4
  142. {0x66, 0x05},// LCC5 镜头补偿选项5
  143. {0x94, 0x04},// LCC6 镜头校正选项(在LCC5[2]=1有效)
  144. {0x95, 0x08},// LCC7 镜头校正选项(在LCC5[2]=1有效)
  145.  
  146. //输出窗口设置
  147. //注释这些配置的话,就倾斜显示,并显示多块,这到底是控制什么的?跟时序图有关?
  148. {0x17, 0x16},// HSTART 行输出格式 行帧(HREF列)起始的高8位(低3位在HREF[2~0])
  149. {0x18, 0x04},// HSTOP 行输出格式 行帧(HREF列)结束的高位(低3位在HREF[5~3])
  150. {0x19, 0x02},// VSTRT 场输出格式 场帧(行)起始的高8位(低2位在VREF[1~0])
  151. {0x1a, 0x7a},// VSTOP 场输出格式 场帧(行)结束的高8位(低2位在VREF[3~2])
  152.  
  153. {0x32, 0x80},// HREF 控制
  154. {0x03, 0x0a},// VREF 场帧控制
  155.  
  156. //注释这个配置的话,就显示花屏了
  157. {0x15, 0x00},//配置PCLK、HREF、VSYNC相关
  158.  
  159. //Automatic black Level Compensation - 自动黑电平校正
  160. {0xb0, 0x84},//调试时注释这项配置时,颜色显示不正常了,红色练绿色,绿色变红色,但用户手册对这寄存器是保留RSVD
  161.  
  162. {0xb1, 0x0c},// ABLC1
  163. {0xb2, 0x0e},//保留
  164.  
  165. {0xb3, 0x82},//ABLC target
  166. {0xb8, 0x0a},// 保留
  167.  
  168. //SCALING_xx寄存器
  169. {0x70, 0x00},//SCALING_XSC,水平缩放系数
  170. {0x71, 0x00},//SCALING_YSC,垂直缩放系数
  171. {0x72, 0x11}, //SCALING_DCWCTR,DCW 控制
  172. {0x73, 0x00},//SCALING_PC,旁路 DSP 缩放时钟分频控制
  173. {0xa2, 0x02},//SCALING_PCLK_DELAY,像素始终延迟
  174. {0x3e, 0x00},// COM14 通用控制14
  175. // [7~5] 保留
  176. // [4] DCW 和 PCLK 控制: 0 正常的 PCLK 1 DCW和PCLK由COM12[2~0]及SCALING_PCLK_DIV[3~0](0X73)控制
  177. // [3] 手动缩放控制,应用于预定尺寸(CIF QCIF QVGA)时:0 禁止手动缩放 1 允许手动缩放
  178. // [2~0] PCLK分频 (在COM14[4]为1时有效)
  179. // 000 /1
  180. // 001 /2
  181. // 010 /4
  182. // 011 /8
  183. // 100 /16
  184. // 101~111 不允许
  185.  
  186. //ADC
  187. {0x37, 0x1d},//ADC控制ADC Control
  188. {0x38, 0x71},//ADC和模拟共模控制ADC and Analog Common Mode Control
  189. {0x39, 0x2a},//ADC偏移控制ADC Offset Control
  190.  
  191. //零杂的寄存器
  192.  
  193. {0x0c, 0x0c},// COM3 通用控制3
  194. // [7] 保留
  195. // [6] 输出数据进行 MSB和LSB 交换
  196. // [5] 掉电期间输出时钟的状态 0 三态时钟 1 非三态时钟
  197. // [4] 掉电期音输出数据的状态 0 三态数据 1 非三态数据
  198. // [3] 缩放 0 禁止 1 使能(若设置(COM7[5~3])成预定模式的像时,然后将COM14[3]设成1 即可手动调节)
  199. // [2] DCW控制 0 禁止 1 使能(若设置(COM7[5~3])成预定模式的像时,然后将COM14[3]设成1 即可手动调节)
  200. // [1~0] 保留
  201.  
  202. {0x10, 0x00},// AECH 曝光值
  203.  
  204. {0x0d, 0x00},
  205.  
  206. {0x0f, 0x4b},
  207.  
  208. {0x3c, 0x78},//COM12 通用控制12
  209. // [7] HERF操作 0 在VSYNC为低时没有HREF 1 HREF总是存在
  210. // [6~0] 保留
  211.  
  212. {0x74, 0x19},
  213.  
  214. //用户手册里这几个寄存器都是保留RSVD
  215. {0x0e, 0x61},
  216. {0x16, 0x02},
  217. {0x21, 0x02},// ADCCTR1 保留
  218. {0x22, 0x91},// ADCCTR2 保留
  219. {0x29, 0x07},// ADCCTR3 保留
  220. {0x33, 0x0b},// CHLF 感光阵列电流控制 保留
  221. {0x35, 0x0b},
  222. {0x4d, 0x40},
  223. {0x4e, 0x20},
  224. {0x8d, 0x4f},
  225. {0x8e, 0x00},
  226. {0x8f, 0x00},
  227. {0x90, 0x00},
  228. {0x91, 0x00},
  229. {0x96, 0x00},
  230. {0x9a, 0x80},
  231. {0x97, 0x30},
  232. {0x98, 0x20},
  233. {0x99, 0x30},
  234. {0x9b, 0x29},
  235. {0x9c, 0x03},
  236. };

OV7670配置和调试小结的更多相关文章

  1. 高通平台 lcd driver 调试小结

    一.概述 1.1 简介 本文档主要包括LCD模块的驱动流程分析.Framebuffer相关知识.Gralloc等相关内容,以及LCD调试的一些经验和相关bug的分析和讲解. 1.2  开发环境 And ...

  2. 基于iCamera测试光电大赛官方指定摄像头mt9m001调试小结

    基于iCamera测试光电大赛官方指定摄像头mt9m001调试小结 先看看官方的接口 组委会指定的模块接口 信号定义说明: VDD:3.3v GND:地 SCK:摄像头寄存器的iic配置信号的时钟线 ...

  3. 使用zend studio配置Xdebug调试PHP教程

    这里看过上面的文章后写一下自己的想法. 最近安装了zend studio 10.5,下载了破解文件.开始是下载了10.0的版本,但是注册码不正确.所以只能安装最新的10.5了. 接下来进行PHP代码调 ...

  4. 配置PhpStorm调试PHP

    配置PhpStorm调试PHP 第一步:配置 XDebug 下载安装XDebug到本地环境(参考:Zend Studio 9.x + xampp + XDebug 调试环境安装详解),打开php.in ...

  5. w2wp.exe 已附加有调试器,但没有将该调试器配置为调试此未经处理的异常

    一.问题描述 昨天系统联调,用到了VS2010 附件进程,把w2wp.exe 进程添加到vs2010 的调试进程中,这样其他系统访问我们系统,就可以捕获断点进行调试 但是,今天F5 调试的时候,发现直 ...

  6. mac下配置gdb调试golang

    mac下配置gdb调试golang 原文链接 https://sourceware.org/gdb/wiki/BuildingOnDarwin Building GDB for Darwin Crea ...

  7. Tomcat配置远程调试端口

    Tomcat配置远程调试端口 1.Linxu系统: apach/bin/startup.sh开始处中增加如下内容: declare -x CATALINA_OPTS="-server -Xd ...

  8. 内核,配置WinDbg,调试操作系统(双机调试)

    配置WinDbg,调试操作系统(双机调试) PS: 设置双机调试之前,请先安装虚拟机,并且安装好XP系统.这里不做演示.直接设置. 一丶WinDbg的设置 1) 配置WinDbg的环境,在path变量 ...

  9. “笨方法”学习Python笔记(2)-VS Code作为文本编辑器以及配置Python调试环境

    Visual Studio Code 免费跨平台文本编辑器,插件资源丰富,我把其作为Debug的首选. 下载地址:https://code.visualstudio.com/Download 安装之后 ...

随机推荐

  1. C++进阶--命名空间和关键字using

    //############################################################################ /* * C++关键字:using * * ...

  2. Qt学习——QListWidget控件的使用

    转载:GDUTLYP Qt提供QListWidget类列表框控件用来加载并显示多个列表项.QListWidgetItem类就是列表项类. 一般列表框控件中的列表项有两种加载方式: 一种是由用户手动添加 ...

  3. bzoj2856: [ceoi2012]Printed Circuit Board

    Description 给出一个N个顶点的简单多边形,对于每个顶点,假如它和原点连成的线段只在这个顶点处和多边形相交,就称为满足要求的顶点.你的任务是输出所有满足要求的顶点编号. Input 第一行一 ...

  4. 三星GT-N8010刷机教程

    本刷机教程只针对三星GT-N8010机器(以下简称GT-N8010),以下操作本人已在GT-N8010机器上亲测,且都成功,其它机器没有测试不能保证成功. 刷机有风险,请谨慎使用!请先备份资料和信息. ...

  5. 【Web前端】div层调整zindex属性无效原因分析及解决方法

    在做的过程中,发现了一个很简单却又很多人应该碰到的问题,设置Z-INDEX属性无效.在CSS中,只能通过代码改变层级,这个属性就是z- index,要让z-index起作用有个小小前提,就是元素的po ...

  6. 计时器setInterval()

    在执行时,从载入页面后每隔指定的时间执行代码. 语法: setInterval(代码,交互时间); 参数说明: 1. 代码:要调用的函数或要执行的代码串. 2. 交互时间:周期性执行或调用表达式之间的 ...

  7. mysql 锁2

    官网地址 https://dev.mysql.com/doc/refman/5.5/en/innodb-transaction-isolation-levels.html 这里主要是说事务隔离级别,以 ...

  8. ROS设备的性价比图

  9. Jmeter(三十二)Jmeter Question 之 “自定义函数开发”

    “技术是业务的支撑”,已经不是第一次听到这句话,因为有各种各样的需求,因此衍生了许多各种各样的技术.共勉! 前面有提到提到过Jmeter的安装目录结构,也提到Jmeter的常用函数功能,有部分工作使用 ...

  10. GDAL 地图切片层级计算公式

    作者: 蔡建良 2016-7-6 地图瓦片起始层数: xMin=栅格数据最小经度 xMax=栅格数据最大经度 起始层数=Log(第0层经纬度跨度/当前地图的经纬度跨度,2) minzoom = (in ...