zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:

    windows+php+redis的安装
    redis配置
    vim常用快捷键
    php数组的操作技巧
    python3与mysql数据库连接方式
    linux下删除文件夹,修改文件夹下所有文件的权限命令
    Linux下 “.tar.gz”格式的解压与压缩
    Linux解压tar.gz文件时提示gzip:stdin:not in gzip format 错误
    Ubuntu 18.04中安装docker,再在docker中安装mysql,及遇见问题
  • 原文地址:https://www.cnblogs.com/libra13179/p/9447108.html
Copyright © 2011-2022 走看看