FPGA学习日志——OV7670寄存器配置

FPGA学习日志

鼓励自己每天进行学习总结:2021.2.6


找到了ov7670寄存器的配置具体介绍

转载自:
OV7670配置和调试总结——浩爹
SCCB协议介绍与应用和OV7670摄像头的寄存器配置——emperor_strange


const uint8_t OV7670_Reg[][2]=
{
//Frame Rate Adjustment for 24Mhz input clock
//30fps PCLK=24MHz
{0x11, 0x80},//软件应用手册上设置的是0x80,例程设置的是0x00
{0x6b, 0x0a},//PLL控制,软件应用手册上设置的是0x0a,例程设置的是0x40,将PLL调高的话就会产生花屏
{0x2a, 0x00},
{0x2b, 0x00},
{0x92, 0x00},
{0x93, 0x00},
{0x3b, 0x0a},

//Output format
{0x12, 0x14},//QVGA(320*240)、RGB

//RGB555/565 option(must set COM7[2] = 1 and COM7[0] = 0)
{0x40, 0x10},//RGB565,effective only when RGB444[1] is low
{0x8c, 0x00},

//Special effects - 特效
//normal
{0x3a, 0x04},
{0x67, 0xc0},
{0x68, 0x80},

//Mirror/VFlip Enable - 水平镜像/竖直翻转使能
{0x1e, 0x37},//修改配置值将产生图像显示上下或左右颠倒

//Banding Filter Setting for 24Mhz Input Clock - 条纹滤波器
//30fps for 60Hz light frequency
//{0x13, 0xe7},//banding filer enable
//{0x9d, 0x98},//50Hz banding filer
//{0x9e, 0x7f},//60Hz banding filer
//{0xa5, 0x02},//3 step for 50Hz
//{0xab, 0x03},//4 step for 60Hz
//{0x3b, 0x02},//select 60Hz banding filer

//Simple White Balance - 白平衡
//{0x13, 0xe7},//AWB、AGC、AGC Enable and …
//{0x6f, 0x9f},//simple AWB

//AWBC - 自动白平衡控制(Automatic white balance control)
//{0x43, 0x14},//用户手册里这些寄存器的值都是保留(Reserved),不用设置的呀?
//{0x44, 0xf0},
//{0x45, 0x34},
//{0x46, 0x58},
//{0x47, 0x28},
//{0x48, 0x3a},

//AWB Control
//{0x59, 0x88},//用户手册连寄存器都是保留,初始值都没提供
//{0x5a, 0x88},
//{0x5b, 0x44},
//{0x5c, 0x67},
//{0x5d, 0x49},
//{0x5e, 0x0e},

//AWB Control
//{0x6c, 0x0a},
//{0x6d, 0x55},
//{0x6e, 0x11},
//{0x6f, 0x9f},

//AGC/AEC - Automatic Gain Control自动增益补偿/Automatic exposure Control自动曝光控制
//{0x00, 0x00},
//{0x14, 0x20},
//{0x24, 0x75},
//{0x25, 0x63},
//{0x26, 0xA5},

//AEC algorithm selection - AEC公式选择
//{0xaa, 0x94},//基于平均值的AEC算法Average-based AEC algorithm/基于直方图的AEC算法Histogram-based AEC algorithm

//基于直方图的AGC/AEC的控制
//{0x9f, 0x78},
//{0xa0, 0x68},
//{0xa6, 0xdf},
//{0xa7, 0xdf},
//{0xa8, 0xf0},
//{0xa9, 0x90},

//Fix Gain Control - 固定增益控制
//{0x69, 0x5d},//Fix gain for Gr channel/for Gb channel/for R channel/for B channel

//Color saturation 颜色饱和度 + 0
//{0x4f, 0x80},
//{0x50, 0x80},
//{0x51, 0x00},
//{0x52, 0x22},
//{0x53, 0x5e},
//{0x54, 0x80},
//{0x58, 0x9e},

//Brightness - 亮度 + 0
//{0x55, 0x00},

//Contrast - 对比度 + 0
//{0x56, 0x40},

//Gamma Curve - 伽马曲线
//{0x7a, 0x20},
//{0x7b, 0x1c},
//{0x7c, 0x28},
//{0x7d, 0x3c},
//{0x7e, 0x55},
//{0x7f, 0x68},
//{0x80, 0x76},
//{0x81, 0x80},
//{0x82, 0x88},
//{0x83, 0x8f},
//{0x84, 0x96},
//{0x85, 0xa3},
//{0x86, 0xaf},
//{0x87, 0xc4},
//{0x88, 0xd7},
//{0x89, 0xe8},

//Matrix Coefficient - 色彩矩阵系数
//{0x4f, 0x80},
//{0x50, 0x80},
//{0x51, 0x00},
//{0x52, 0x22},
//{0x53, 0x5e},
//{0x54, 0x80},

//Lens Correction Option - 镜头补偿选项
//{0x62, 0x00},
//{0x63, 0x00},
//{0x64, 0x04},
//{0x65, 0x20},
//{0x66, 0x05},
//{0x94, 0x04},//effective only when LCC5[2] is high
//{0x95, 0x08},//effective only when LCC5[2] is high

//注释这些配置的话,就倾斜显示,并显示多块,这到底是控制什么的?跟时序图有关?
{0x17, 0x16},//行频Horizontal Frame开始高八位(低三位在HREF[2:0])
{0x18, 0x04},//行频Horizontal Frame结束高八位(低三位在HREF[5:3])
{0x19, 0x02},//场频Vertical Frame开始高八位(低二位在VREF[1:0])
{0x1a, 0x7b},//场频Vertical Frame结束高八位(低二位在VREF[3:2])
{0x32, 0x80},//HREF
{0x03, 0x06},//VREF

//注释这个配置的话,就显示花屏了
{0x15, 0x02},//配置PCLK、HREF、VSYNC相关

//Automatic black Level Compensation - 自动黑电平校正
{0xb0, 0x84},//调试时注释这项配置时,颜色显示不正常了,红色练绿色,绿色变红色,但用户手册对这寄存器是保留RSVD
//{0xb1, 0x0c},
//{0xb2, 0x0e},
//{0xb3, 0x82},
//{0xb8, 0x0a},

//SCALING_xx寄存器
//{0x70, 0x00},
//{0x71, 0x00},
//{0x72, 0x11},
//{0x73, 0x08},
//{0x3e, 0x00},

//ADC
//{0x37, 0x1d},//ADC控制ADC Control
//{0x38, 0x71},//ADC和模拟共模控制ADC and Analog Common Mode Control
//{0x39, 0x2a},//ADC偏移控制ADC Offset Control

//零杂的寄存器
//{0x92, 0x00},//空行低八位Dummy Line low 8 bits
//{0xa2, 0x02},//像素时钟延时
//{0x0c, 0x0c},
//{0x10, 0x00},
//{0x0d, 0x01},
//{0x0f, 0x4b},
//{0x3c, 0x78},
//{0x74, 0x19},

//用户手册里这几个寄存器都是保留RSVD
//{0x0e, 0x61},
//{0x16, 0x02},
//{0x21, 0x02},
//{0x22, 0x91},
//{0x29, 0x07},
//{0x33, 0x0b},
//{0x35, 0x0b},
//{0x4d, 0x40},
//{0x4e, 0x20},
//{0x8d, 0x4f},
//{0x8e, 0x00},
//{0x8f, 0x00},
//{0x90, 0x00},
//{0x91, 0x00},
//{0x96, 0x00},
//{0x9a, 0x80},
}

parameter      REG_NUM =       165;
always@(*) begin
	    case(reg_cnt)
		     0   : add_wdata = {2'b11,16'h1204};//复位,VGA,RGB565 (00:YUV,04:RGB)(8x全局复位)
	        1   : add_wdata = {2'b11,16'h40d0};	//RGB565, 00-FF(d0)(YUV下要攱-FE(80))
	        2   : add_wdata = {2'b11,16'h3a04}; //TSLB(TSLB[3], COM13[0])00:YUYV, 01:YVYU, 10:UYVY(CbYCrY), 11:VYUY
	        3   : add_wdata = {2'b11,16'h3dc8};	//COM13(TSLB[3], COM13[0])00:YUYV, 01:YVYU, 10:UYVY(CbYCrY), 11:VYUY
	        4   : add_wdata = {2'b11,16'h1e31};	//默认01,Bit[5]水平镜像,Bit[4]竖直镜像
	        5   : add_wdata = {2'b11,16'h6b00};	//旁路PLL倍频ク0A:关闭内部LDOク00:打开LDO
	        6   : add_wdata = {2'b11,16'h32b6};	//HREF 控制(80)
	        7   : add_wdata = {2'b11,16'h1713};	//HSTART 输出格式-行频开始高8位
	        8   : add_wdata = {2'b11,16'h1801};	//HSTOP  输出格式-行频结束
	        9   : add_wdata = {2'b11,16'h1902};	//VSTART 输出格式-场频开始高8位
	        10  : add_wdata = {2'b11,16'h1a7a};	//VSTOP  输出格式-场频结束
	        11  : add_wdata = {2'b11,16'h030a};	//VREF	 帧竖直方向控到0)
	        12  : add_wdata = {2'b11,16'h0c00};	//DCW使能 禁止(00)
	        13  : add_wdata = {2'b11,16'h3e10};	//PCLK分频00 Normal  14  : add_wdata = {2'b11,16'h7000};	//00:Normal, 80:移位1, 00:彩条, 80:渐变彩条
	        15  : add_wdata = {2'b11,16'h7100};	//00:Normal, 00:移位1, 80:彩条, 80:渐变彩杊	        16  : add_wdata = {2'b11,16'h7211};	//默认 水平,垂直采样(11)	        
	        17  : add_wdata = {2'b11,16'h7300};	//DSP缩放时钟分频00 
	        18  : add_wdata = {2'b11,16'ha202};	//默认 像素始终延迟	(02)
	        19  : add_wdata = {2'b11,16'h1180};	//内部工作时钟设置,直接使用外部时钟源(80)
	        20  : add_wdata = {2'b11,16'h7a20};
	        21  : add_wdata = {2'b11,16'h7b1c};
	        22  : add_wdata = {2'b11,16'h7c28};
	        23  : add_wdata = {2'b11,16'h7d3c};
	        24  : add_wdata = {2'b11,16'h7e55};
	        25  : add_wdata = {2'b11,16'h7f68};
	        26  : add_wdata = {2'b11,16'h8076};
	        27  : add_wdata = {2'b11,16'h8180};
	        28  : add_wdata = {2'b11,16'h8288};
	        29  : add_wdata = {2'b11,16'h838f};
	        30  : add_wdata = {2'b11,16'h8496};
	        31  : add_wdata = {2'b11,16'h85a3};
	        32  : add_wdata = {2'b11,16'h86af};
	        33  : add_wdata = {2'b11,16'h87c4};
	        34  : add_wdata = {2'b11,16'h88d7};
	        35  : add_wdata = {2'b11,16'h89e8};
	        36  : add_wdata = {2'b11,16'h13e0};
	        37  : add_wdata = {2'b11,16'h0010};//
	        38  : add_wdata = {2'b11,16'h1000};
	        39  : add_wdata = {2'b11,16'h0d00};
	        40  : add_wdata = {2'b11,16'h1428}; 
	        41  : add_wdata = {2'b11,16'ha505};
	        42  : add_wdata = {2'b11,16'hab07};
	        43  : add_wdata = {2'b11,16'h2475};
	        44  : add_wdata = {2'b11,16'h2563};
	        45  : add_wdata = {2'b11,16'h26a5};
	        46  : add_wdata = {2'b11,16'h9f78};
	        47  : add_wdata = {2'b11,16'ha068};
	        48  : add_wdata = {2'b11,16'ha103};
	        49  : add_wdata = {2'b11,16'ha6df};
	        50  : add_wdata = {2'b11,16'ha7df};
	        51  : add_wdata = {2'b11,16'ha8f0};
	        52  : add_wdata = {2'b11,16'ha990};
	        53  : add_wdata = {2'b11,16'haa94};
	        54  : add_wdata = {2'b11,16'h13ef};  
	        55  : add_wdata = {2'b11,16'h0e61};
	        56  : add_wdata = {2'b11,16'h0f4b};
	        57  : add_wdata = {2'b11,16'h1602};
	        58  : add_wdata = {2'b11,16'h2102};
	        59  : add_wdata = {2'b11,16'h2291};
	        60  : add_wdata = {2'b11,16'h2907};
	        61  : add_wdata = {2'b11,16'h330b};
	        62  : add_wdata = {2'b11,16'h350b};
	        63  : add_wdata = {2'b11,16'h371d};
	        64  : add_wdata = {2'b11,16'h3871};
	        65  : add_wdata = {2'b11,16'h392a};
	        66  : add_wdata = {2'b11,16'h3c78};
	        67  : add_wdata = {2'b11,16'h4d40};
	        68  : add_wdata = {2'b11,16'h4e20};
	        69  : add_wdata = {2'b11,16'h6900};
	        70  : add_wdata = {2'b11,16'h7419};
	        71  : add_wdata = {2'b11,16'h8d4f};
	        72  : add_wdata = {2'b11,16'h8e00};
	        73  : add_wdata = {2'b11,16'h8f00};
	        74  : add_wdata = {2'b11,16'h9000};
	        75  : add_wdata = {2'b11,16'h9100};
	        76  : add_wdata = {2'b11,16'h9200};
	        77  : add_wdata = {2'b11,16'h9600};
	        78  : add_wdata = {2'b11,16'h9a80};
	        79  : add_wdata = {2'b11,16'hb084};
	        80  : add_wdata = {2'b11,16'hb10c};
	        81  : add_wdata = {2'b11,16'hb20e};
	        82  : add_wdata = {2'b11,16'hb382};
	        83  : add_wdata = {2'b11,16'hb80a};

	        84  : add_wdata = {2'b11,16'h4314};
	        85  : add_wdata = {2'b11,16'h44f0};
	        86  : add_wdata = {2'b11,16'h4534};
	        87  : add_wdata = {2'b11,16'h4658};
	        88  : add_wdata = {2'b11,16'h4728};
	        89  : add_wdata = {2'b11,16'h483a};
	        90  : add_wdata = {2'b11,16'h5988};
	        91  : add_wdata = {2'b11,16'h5a88};
	        92  : add_wdata = {2'b11,16'h5b44};
	        93  : add_wdata = {2'b11,16'h5c67};
	        94  : add_wdata = {2'b11,16'h5d49};
	        95  : add_wdata = {2'b11,16'h5e0e};
	        96  : add_wdata = {2'b11,16'h6404};
	        97  : add_wdata = {2'b11,16'h6520};
	        98  : add_wdata = {2'b11,16'h6605};
	        99  : add_wdata = {2'b11,16'h9404};
	        100 : add_wdata = {2'b11,16'h9508};
	        101 : add_wdata = {2'b11,16'h6c0a};
	        102 : add_wdata = {2'b11,16'h6d55};
	        103 : add_wdata = {2'b11,16'h6e11};
	        104 : add_wdata = {2'b11,16'h6f9f};
	        105 : add_wdata = {2'b11,16'h6a40};
	        106 : add_wdata = {2'b11,16'h0140};
	        107 : add_wdata = {2'b11,16'h0240};
	        108 : add_wdata = {2'b11,16'h13e7};
	        109 : add_wdata = {2'b11,16'h1500};
	        
	        110 : add_wdata = {2'b11,16'h4f80};
	        111 : add_wdata = {2'b11,16'h5080};
	        112 : add_wdata = {2'b11,16'h5100};
	        113 : add_wdata = {2'b11,16'h5222};
	        114 : add_wdata = {2'b11,16'h535e};
	        115 : add_wdata = {2'b11,16'h5480};
	        116 : add_wdata = {2'b11,16'h589e};
	        
	        117 : add_wdata = {2'b11,16'h4108};
	        118 : add_wdata = {2'b11,16'h3f00};
	        119 : add_wdata = {2'b11,16'h7505};
	        120 : add_wdata = {2'b11,16'h76e1};
	        121 : add_wdata = {2'b11,16'h4c00};
	        122 : add_wdata = {2'b11,16'h7701};
	        
	        123 : add_wdata = {2'b11,16'h4b09};
	        124 : add_wdata = {2'b11,16'hc9F0};//16'hc960;
	        125 : add_wdata = {2'b11,16'h4138};
	        126 : add_wdata = {2'b11,16'h5640};
	        
	        
	        127 : add_wdata = {2'b11,16'h3411};
	        128 : add_wdata = {2'b11,16'h3b02};
	        129 : add_wdata = {2'b11,16'ha489};
	        130 : add_wdata = {2'b11,16'h9600};
	        131 : add_wdata = {2'b11,16'h9730};
	        132 : add_wdata = {2'b11,16'h9820};
	        133 : add_wdata = {2'b11,16'h9930};
	        134 : add_wdata = {2'b11,16'h9a84};
	        135 : add_wdata = {2'b11,16'h9b29};
	        136 : add_wdata = {2'b11,16'h9c03};
	        137 : add_wdata = {2'b11,16'h9d4c};
	        138 : add_wdata = {2'b11,16'h9e3f};
	        139 : add_wdata = {2'b11,16'h7804};
	        
	        
	         140 :add_wdata =  {2'b11,16'h7901};
	         141 :add_wdata =  {2'b11,16'hc8f0};
	         142 :add_wdata =  {2'b11,16'h790f};
	         143 :add_wdata =  {2'b11,16'hc800};
	         144 :add_wdata =  {2'b11,16'h7910};
	         145 :add_wdata =  {2'b11,16'hc87e};
	         146 :add_wdata =  {2'b11,16'h790a};
	         147 :add_wdata =  {2'b11,16'hc880};
	         148 :add_wdata =  {2'b11,16'h790b};
	         149 :add_wdata =  {2'b11,16'hc801};
	         150 :add_wdata =  {2'b11,16'h790c};
	         151 :add_wdata =  {2'b11,16'hc80f};
	         152 :add_wdata =  {2'b11,16'h790d};
	         153 :add_wdata =  {2'b11,16'hc820};
	         154 :add_wdata =  {2'b11,16'h7909};
	         155 :add_wdata =  {2'b11,16'hc880};
	         156 :add_wdata =  {2'b11,16'h7902};
	         157 :add_wdata =  {2'b11,16'hc8c0};
	         158 :add_wdata =  {2'b11,16'h7903};
	         159 :add_wdata =  {2'b11,16'hc840};
	         160 :add_wdata =  {2'b11,16'h7905};
	         161 :add_wdata =  {2'b11,16'hc830}; 
	         162 :add_wdata =  {2'b11,16'h7926};
	         
	         163 : add_wdata = {2'b11,16'h0903};
	         164 : add_wdata = {2'b11,16'h3b42};
		
	    default : add_wdata = 0;
	    endcase
	end
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值