OV5640:寄存器 自用

正点原子:

//****************************************Copyright (c)***********************************//
//原子哥在线教学平台:www.yuanzige.com
//技术支持:www.openedv.com
//淘宝店铺:http://openedv.taobao.com
//关注微信公众平台微信号:"正点原子",免费获取ZYNQ & FPGA & STM32 & LINUX资料。
//版权所有,盗版必究。
//Copyright(C) 正点原子 2018-2028
//All rights reserved
//----------------------------------------------------------------------------------------
// File name:           i2c_ov5640_rgb565_cfg
// Last modified Date:  2020/05/04 9:19:08
// Last Version:        V1.0
// Descriptions:        iic配置
//                      
//----------------------------------------------------------------------------------------
// Created by:          正点原子
// Created date:        2019/05/04 9:19:08
// Version:             V1.0
// Descriptions:        The original version
//
//----------------------------------------------------------------------------------------
//****************************************************************************************//module i2c_ov5640_rgb565_cfg(  input                clk      ,     //时钟信号input                rst_n    ,     //复位信号,低电平有效input        [7:0]   i2c_data_r,    //I2C读出的数据input                i2c_done ,     //I2C寄存器配置完成信号input        [12:0]  cmos_h_pixel ,input        [12:0]  cmos_v_pixel ,input        [12:0]  total_h_pixel, //水平总像素大小input        [12:0]  total_v_pixel, //垂直总像素大小output  reg          i2c_exec ,     //I2C触发执行信号   output  reg  [23:0]  i2c_data ,     //I2C要配置的地址与数据(高16位地址,低8位数据)output  reg          i2c_rh_wl,     //I2C读写控制信号output  reg          init_done      //初始化完成信号);//parameter define
localparam  REG_NUM = 8'd250  ;       //总共需要配置的寄存器个数//reg define
reg   [12:0]   start_init_cnt;        //等待延时计数器
reg    [7:0]   init_reg_cnt  ;        //寄存器配置个数计数器//*****************************************************
//**                    main code
//*****************************************************//clk时钟配置成250khz,周期为4us 5000*4us = 20ms
//OV5640上电到开始配置IIC至少等待20ms
always @(posedge clk or negedge rst_n) beginif(!rst_n)start_init_cnt <= 13'b0;else if(start_init_cnt < 13'd5000) beginstart_init_cnt <= start_init_cnt + 1'b1;                    end
end//寄存器配置个数计数    
always @(posedge clk or negedge rst_n) beginif(!rst_n)init_reg_cnt <= 8'd0;else if(i2c_exec)   init_reg_cnt <= init_reg_cnt + 8'b1;
end//i2c触发执行信号   
always @(posedge clk or negedge rst_n) beginif(!rst_n)i2c_exec <= 1'b0;else if(start_init_cnt == 13'd4999)i2c_exec <= 1'b1;else if(i2c_done && (init_reg_cnt < REG_NUM))i2c_exec <= 1'b1;elsei2c_exec <= 1'b0;
end //配置I2C读写控制信号
always @(posedge clk or negedge rst_n) beginif(!rst_n)i2c_rh_wl <= 1'b1;else if(init_reg_cnt == 8'd2)  i2c_rh_wl <= 1'b0;  
end//初始化完成信号
always @(posedge clk or negedge rst_n) beginif(!rst_n)init_done <= 1'b0;else if((init_reg_cnt == REG_NUM) && i2c_done)  init_done <= 1'b1;  
end//配置寄存器地址与数据
always @(posedge clk or negedge rst_n) beginif(!rst_n)i2c_data <= 24'b0;else begincase(init_reg_cnt)//先对寄存器进行软件复位,使寄存器恢复初始值//寄存器软件复位后,需要延时1ms才能配置其它寄存器8'd0  : i2c_data <= {16'h300a,8'h0}; //8'd1  : i2c_data <= {16'h300b,8'h0}; //8'd2  : i2c_data <= {16'h3008,8'h82}; //Bit[7]:复位 Bit[6]:电源休眠8'd3  : i2c_data <= {16'h3008,8'h02}; //正常工作模式8'd4  : i2c_data <= {16'h3103,8'h02}; //Bit[1]:1 PLL Clock//引脚输入/输出控制 FREX/VSYNC/HREF/PCLK/D[9:6]8'd5  : i2c_data <= {8'h30,8'h17,8'hff};//引脚输入/输出控制 D[5:0]/GPIO1/GPIO0 8'd6  : i2c_data <= {16'h3018,8'hff};8'd7  : i2c_data <= {16'h3037,8'h13}; //PLL分频控制8'd8  : i2c_data <= {16'h3108,8'h01}; //系统根分频器8'd9  : i2c_data <= {16'h3630,8'h36};8'd10 : i2c_data <= {16'h3631,8'h0e};8'd11 : i2c_data <= {16'h3632,8'he2};8'd12 : i2c_data <= {16'h3633,8'h12};8'd13 : i2c_data <= {16'h3621,8'he0};8'd14 : i2c_data <= {16'h3704,8'ha0};8'd15 : i2c_data <= {16'h3703,8'h5a};8'd16 : i2c_data <= {16'h3715,8'h78};8'd17 : i2c_data <= {16'h3717,8'h01};8'd18 : i2c_data <= {16'h370b,8'h60};8'd19 : i2c_data <= {16'h3705,8'h1a};8'd20 : i2c_data <= {16'h3905,8'h02};8'd21 : i2c_data <= {16'h3906,8'h10};8'd22 : i2c_data <= {16'h3901,8'h0a};8'd23 : i2c_data <= {16'h3731,8'h12};8'd24 : i2c_data <= {16'h3600,8'h08}; //VCM控制,用于自动聚焦8'd25 : i2c_data <= {16'h3601,8'h33}; //VCM控制,用于自动聚焦8'd26 : i2c_data <= {16'h302d,8'h60}; //系统控制8'd27 : i2c_data <= {16'h3620,8'h52};8'd28 : i2c_data <= {16'h371b,8'h20};8'd29 : i2c_data <= {16'h471c,8'h50};8'd30 : i2c_data <= {16'h3a13,8'h43}; //AEC(自动曝光控制)8'd31 : i2c_data <= {16'h3a18,8'h00}; //AEC 增益上限8'd32 : i2c_data <= {16'h3a19,8'hf8}; //AEC 增益上限8'd33 : i2c_data <= {16'h3635,8'h13};8'd34 : i2c_data <= {16'h3636,8'h03};8'd35 : i2c_data <= {16'h3634,8'h40};8'd36 : i2c_data <= {16'h3622,8'h01};8'd37 : i2c_data <= {16'h3c01,8'h34};8'd38 : i2c_data <= {16'h3c04,8'h28};8'd39 : i2c_data <= {16'h3c05,8'h98};8'd40 : i2c_data <= {16'h3c06,8'h00}; //light meter 1 阈值[15:8]8'd41 : i2c_data <= {16'h3c07,8'h08}; //light meter 1 阈值[7:0]8'd42 : i2c_data <= {16'h3c08,8'h00}; //light meter 2 阈值[15:8]8'd43 : i2c_data <= {16'h3c09,8'h1c}; //light meter 2 阈值[7:0]8'd44 : i2c_data <= {16'h3c0a,8'h9c}; //sample number[15:8]8'd45 : i2c_data <= {16'h3c0b,8'h40}; //sample number[7:0]8'd46 : i2c_data <= {16'h3810,8'h00}; //Timing Hoffset[11:8] ISP horizontal offset[11:8] high byte8'd47 : i2c_data <= {16'h3811,8'h10}; //Timing Hoffset[7:0]  ISP horizontal offset[7:0] low byte8'd48 : i2c_data <= {16'h3812,8'h00}; //Timing Voffset[10:8] 8'd49 : i2c_data <= {16'h3708,8'h64};8'd50 : i2c_data <= {16'h4001,8'h02}; //BLC(黑电平校准)补偿起始行号8'd51 : i2c_data <= {16'h4005,8'h1a}; //BLC(黑电平校准)补偿始终更新8'd52 : i2c_data <= {16'h3000,8'h00}; //系统块复位控制8'd53 : i2c_data <= {16'h3004,8'hff}; //时钟使能控制8'd54 : i2c_data <= {16'h4300,8'h61}; //格式控制 RGB5658'd55 : i2c_data <= {16'h501f,8'h01}; //ISP RGB8'd56 : i2c_data <= {16'h440e,8'h00};8'd57 : i2c_data <= {16'h5000,8'ha7}; //ISP控制8'd58 : i2c_data <= {16'h3a0f,8'h30}; //AEC控制;stable range in high8'd59 : i2c_data <= {16'h3a10,8'h28}; //AEC控制;stable range in low8'd60 : i2c_data <= {16'h3a1b,8'h30}; //AEC控制;stable range out high8'd61 : i2c_data <= {16'h3a1e,8'h26}; //AEC控制;stable range out low8'd62 : i2c_data <= {16'h3a11,8'h60}; //AEC控制; fast zone high8'd63 : i2c_data <= {16'h3a1f,8'h14}; //AEC控制; fast zone low//LENC(镜头校正)控制 16'h5800~16'h583d8'd64 : i2c_data <= {16'h5800,8'h23}; 8'd65 : i2c_data <= {16'h5801,8'h14};8'd66 : i2c_data <= {16'h5802,8'h0f};8'd67 : i2c_data <= {16'h5803,8'h0f};8'd68 : i2c_data <= {16'h5804,8'h12};8'd69 : i2c_data <= {16'h5805,8'h26};8'd70 : i2c_data <= {16'h5806,8'h0c};8'd71 : i2c_data <= {16'h5807,8'h08};8'd72 : i2c_data <= {16'h5808,8'h05};8'd73 : i2c_data <= {16'h5809,8'h05};8'd74 : i2c_data <= {16'h580a,8'h08};8'd75 : i2c_data <= {16'h580b,8'h0d};8'd76 : i2c_data <= {16'h580c,8'h08};8'd77 : i2c_data <= {16'h580d,8'h03};8'd78 : i2c_data <= {16'h580e,8'h00};8'd79 : i2c_data <= {16'h580f,8'h00};8'd80 : i2c_data <= {16'h5810,8'h03};8'd81 : i2c_data <= {16'h5811,8'h09};8'd82 : i2c_data <= {16'h5812,8'h07};8'd83 : i2c_data <= {16'h5813,8'h03};8'd84 : i2c_data <= {16'h5814,8'h00};8'd85 : i2c_data <= {16'h5815,8'h01};8'd86 : i2c_data <= {16'h5816,8'h03};8'd87 : i2c_data <= {16'h5817,8'h08};8'd88 : i2c_data <= {16'h5818,8'h0d};8'd89 : i2c_data <= {16'h5819,8'h08};8'd90 : i2c_data <= {16'h581a,8'h05};8'd91 : i2c_data <= {16'h581b,8'h06};8'd92 : i2c_data <= {16'h581c,8'h08};8'd93 : i2c_data <= {16'h581d,8'h0e};8'd94 : i2c_data <= {16'h581e,8'h29};8'd95 : i2c_data <= {16'h581f,8'h17};8'd96 : i2c_data <= {16'h5820,8'h11};8'd97 : i2c_data <= {16'h5821,8'h11};8'd98 : i2c_data <= {16'h5822,8'h15};8'd99 : i2c_data <= {16'h5823,8'h28};8'd100: i2c_data <= {16'h5824,8'h46};8'd101: i2c_data <= {16'h5825,8'h26};8'd102: i2c_data <= {16'h5826,8'h08};8'd103: i2c_data <= {16'h5827,8'h26};8'd104: i2c_data <= {16'h5828,8'h64};8'd105: i2c_data <= {16'h5829,8'h26};8'd106: i2c_data <= {16'h582a,8'h24};8'd107: i2c_data <= {16'h582b,8'h22};8'd108: i2c_data <= {16'h582c,8'h24};8'd109: i2c_data <= {16'h582d,8'h24};8'd110: i2c_data <= {16'h582e,8'h06};8'd111: i2c_data <= {16'h582f,8'h22};8'd112: i2c_data <= {16'h5830,8'h40};8'd113: i2c_data <= {16'h5831,8'h42};8'd114: i2c_data <= {16'h5832,8'h24};8'd115: i2c_data <= {16'h5833,8'h26};8'd116: i2c_data <= {16'h5834,8'h24};8'd117: i2c_data <= {16'h5835,8'h22};8'd118: i2c_data <= {16'h5836,8'h22};8'd119: i2c_data <= {16'h5837,8'h26};8'd120: i2c_data <= {16'h5838,8'h44};8'd121: i2c_data <= {16'h5839,8'h24};8'd122: i2c_data <= {16'h583a,8'h26};8'd123: i2c_data <= {16'h583b,8'h28};8'd124: i2c_data <= {16'h583c,8'h42};8'd125: i2c_data <= {16'h583d,8'hce};//AWB(自动白平衡控制) 16'h5180~16'h519e8'd126: i2c_data <= {16'h5180,8'hff};8'd127: i2c_data <= {16'h5181,8'hf2};8'd128: i2c_data <= {16'h5182,8'h00};8'd129: i2c_data <= {16'h5183,8'h14};8'd130: i2c_data <= {16'h5184,8'h25};8'd131: i2c_data <= {16'h5185,8'h24};8'd132: i2c_data <= {16'h5186,8'h09};8'd133: i2c_data <= {16'h5187,8'h09};8'd134: i2c_data <= {16'h5188,8'h09};8'd135: i2c_data <= {16'h5189,8'h75};8'd136: i2c_data <= {16'h518a,8'h54};8'd137: i2c_data <= {16'h518b,8'he0};8'd138: i2c_data <= {16'h518c,8'hb2};8'd139: i2c_data <= {16'h518d,8'h42};8'd140: i2c_data <= {16'h518e,8'h3d};8'd141: i2c_data <= {16'h518f,8'h56};8'd142: i2c_data <= {16'h5190,8'h46};8'd143: i2c_data <= {16'h5191,8'hf8};8'd144: i2c_data <= {16'h5192,8'h04};8'd145: i2c_data <= {16'h5193,8'h70};8'd146: i2c_data <= {16'h5194,8'hf0};8'd147: i2c_data <= {16'h5195,8'hf0};8'd148: i2c_data <= {16'h5196,8'h03};8'd149: i2c_data <= {16'h5197,8'h01};8'd150: i2c_data <= {16'h5198,8'h04};8'd151: i2c_data <= {16'h5199,8'h12};8'd152: i2c_data <= {16'h519a,8'h04};8'd153: i2c_data <= {16'h519b,8'h00};8'd154: i2c_data <= {16'h519c,8'h06};8'd155: i2c_data <= {16'h519d,8'h82};8'd156: i2c_data <= {16'h519e,8'h38};//Gamma(伽马)控制 16'h5480~16'h54908'd157: i2c_data <= {16'h5480,8'h01}; 8'd158: i2c_data <= {16'h5481,8'h08};8'd159: i2c_data <= {16'h5482,8'h14};8'd160: i2c_data <= {16'h5483,8'h28};8'd161: i2c_data <= {16'h5484,8'h51};8'd162: i2c_data <= {16'h5485,8'h65};8'd163: i2c_data <= {16'h5486,8'h71};8'd164: i2c_data <= {16'h5487,8'h7d};8'd165: i2c_data <= {16'h5488,8'h87};8'd166: i2c_data <= {16'h5489,8'h91};8'd167: i2c_data <= {16'h548a,8'h9a};8'd168: i2c_data <= {16'h548b,8'haa};8'd169: i2c_data <= {16'h548c,8'hb8};8'd170: i2c_data <= {16'h548d,8'hcd};8'd171: i2c_data <= {16'h548e,8'hdd};8'd172: i2c_data <= {16'h548f,8'hea};8'd173: i2c_data <= {16'h5490,8'h1d};//CMX(彩色矩阵控制) 16'h5381~16'h538b8'd174: i2c_data <= {16'h5381,8'h1e};8'd175: i2c_data <= {16'h5382,8'h5b};8'd176: i2c_data <= {16'h5383,8'h08};8'd177: i2c_data <= {16'h5384,8'h0a};8'd178: i2c_data <= {16'h5385,8'h7e};8'd179: i2c_data <= {16'h5386,8'h88};8'd180: i2c_data <= {16'h5387,8'h7c};8'd181: i2c_data <= {16'h5388,8'h6c};8'd182: i2c_data <= {16'h5389,8'h10};8'd183: i2c_data <= {16'h538a,8'h01};8'd184: i2c_data <= {16'h538b,8'h98};//SDE(特殊数码效果)控制 16'h5580~16'h558b8'd185: i2c_data <= {16'h5580,8'h06};8'd186: i2c_data <= {16'h5583,8'h40};8'd187: i2c_data <= {16'h5584,8'h10};8'd188: i2c_data <= {16'h5589,8'h10};8'd189: i2c_data <= {16'h558a,8'h00};8'd190: i2c_data <= {16'h558b,8'hf8};8'd191: i2c_data <= {16'h501d,8'h40}; //ISP MISC//CIP(颜色插值)控制 (16'h5300~16'h530c)8'd192: i2c_data <= {16'h5300,8'h08};8'd193: i2c_data <= {16'h5301,8'h30};8'd194: i2c_data <= {16'h5302,8'h10};8'd195: i2c_data <= {16'h5303,8'h00};8'd196: i2c_data <= {16'h5304,8'h08};8'd197: i2c_data <= {16'h5305,8'h30};8'd198: i2c_data <= {16'h5306,8'h08};8'd199: i2c_data <= {16'h5307,8'h16};8'd200: i2c_data <= {16'h5309,8'h08};8'd201: i2c_data <= {16'h530a,8'h30};8'd202: i2c_data <= {16'h530b,8'h04};8'd203: i2c_data <= {16'h530c,8'h06};8'd204: i2c_data <= {16'h5025,8'h00};//系统时钟分频 Bit[7:4]:系统时钟分频 input clock =24Mhz, PCLK = 48Mhz8'd205: i2c_data <= {16'h3035,8'h11}; 8'd206: i2c_data <= {16'h3036,8'h3c}; //PLL倍频8'd207: i2c_data <= {16'h3c07,8'h08};//时序控制 16'h3800~16'h38218'd208: i2c_data <= {16'h3820,8'h46};8'd209: i2c_data <= {16'h3821,8'h01};8'd210: i2c_data <= {16'h3814,8'h31};8'd211: i2c_data <= {16'h3815,8'h31};8'd212: i2c_data <= {16'h3800,8'h00};// 开窗:x 开始位置 0*0~2591*19438'd213: i2c_data <= {16'h3801,8'h00};// 开窗:x 开始位置8'd214: i2c_data <= {16'h3802,8'h00};// 开窗:y 开始位置8'd215: i2c_data <= {16'h3803,8'h04};// 开窗:y 开始位置8'd216: i2c_data <= {16'h3804,8'h0a};// 开窗:x 结束位置8'd217: i2c_data <= {16'h3805,8'h3f};// 开窗:x 结束位置8'd218: i2c_data <= {16'h3806,8'h07};// 开窗:y 结束位置8'd219: i2c_data <= {16'h3807,8'h9b};// 开窗:y 结束位置 size:2623*1943//设置输出像素个数//DVP 输出水平像素点数高4位8'd220: i2c_data <= {16'h3808,{4'd0,cmos_h_pixel[11:8]}};//DVP 输出水平像素点数低8位8'd221: i2c_data <= {16'h3809,cmos_h_pixel[7:0]};//DVP 输出垂直像素点数高3位8'd222: i2c_data <= {16'h380a,{5'd0,cmos_v_pixel[10:8]}};//DVP 输出垂直像素点数低8位8'd223: i2c_data <= {16'h380b,cmos_v_pixel[7:0]};//水平总像素大小高5位8'd224: i2c_data <= {16'h380c,{3'd0,total_h_pixel[12:8]}};//Total horizontal size[11:8] high byte//水平总像素大小低8位 8'd225: i2c_data <= {16'h380d,total_h_pixel[7:0]};//Total horizontal size[7:0] low byte//垂直总像素大小高5位 8'd226: i2c_data <= {16'h380e,{3'd0,total_v_pixel[12:8]}};// Total vertical size[15:8] high byte//垂直总像素大小低8位     8'd227: i2c_data <= {16'h380f,total_v_pixel[7:0]};// Total vertical size[7:0] low byte8'd228: i2c_data <= {16'h3813,8'h06};8'd229: i2c_data <= {16'h3618,8'h00};8'd230: i2c_data <= {16'h3612,8'h29};8'd231: i2c_data <= {16'h3709,8'h52};8'd232: i2c_data <= {16'h370c,8'h03};8'd233: i2c_data <= {16'h3a02,8'h17}; //60Hz max exposure8'd234: i2c_data <= {16'h3a03,8'h10}; //60Hz max exposure8'd235: i2c_data <= {16'h3a14,8'h17}; //50Hz max exposure8'd236: i2c_data <= {16'h3a15,8'h10}; //50Hz max exposure8'd237: i2c_data <= {16'h4004,8'h02}; //BLC(背光) 2 lines8'd238: i2c_data <= {16'h4713,8'h03}; //JPEG mode 38'd239: i2c_data <= {16'h4407,8'h04}; //量化标度8'd240: i2c_data <= {16'h460c,8'h22};     8'd241: i2c_data <= {16'h4837,8'h22}; //DVP CLK divider8'd242: i2c_data <= {16'h3824,8'h02}; //DVP CLK divider8'd243: i2c_data <= {16'h5001,8'ha3}; //ISP 控制8'd244: i2c_data <= {16'h3b07,8'h0a}; //帧曝光模式  //彩条测试使能 8'd245: i2c_data <= {16'h503d,8'h00}; //8'h00:正常模式 8'h80:彩条显示//测试闪光灯功能8'd246: i2c_data <= {16'h3016,8'h02};8'd247: i2c_data <= {16'h301c,8'h02};8'd248: i2c_data <= {16'h3019,8'h02}; //打开闪光灯8'd249: i2c_data <= {16'h3019,8'h00}; //关闭闪光灯//只读存储器,防止在case中没有列举的情况,之前的寄存器被重复改写default : i2c_data <= {16'h300a,8'h00}; //器件ID高8位endcaseend
endendmodule

米联客:


/*******************************MILIANKE*******************************
*Company : MiLianKe Electronic Technology Co., Ltd.
*WebSite:https://www.milianke.com
*TechWeb:https://www.uisrc.com
*tmall-shop:https://milianke.tmall.com
*jd-shop:https://milianke.jd.com
*taobao-shop1: https://milianke.taobao.com
*Create Date: 2021/10/15
*File Name: ui5640reg.v
*Description: 
*Declaration:
*The reference demo provided by Milianke is only used for learning. 
*We cannot ensure that the demo itself is free of bugs, so users 
*should be responsible for the technical problems and consequences
*caused by the use of their own products.
*Copyright: Copyright (c) MiLianKe
*All rights reserved.
*Revision: 1.0
*Signal description
*1) _i input
*2) _o output
*3) _n activ low
*4) _dg debug signal 
*5) _r delay or register
*6) _s state mechine
*********************************************************************//*******************************ui5640reg***************************
--1.OV5640摄像头芯片寄存器配置参数
*********************************************************************/module ui5640reg
(
input      [8 :0]  REG_INDEX,
input      [15 :0] CAM_HSIZE,
input      [15 :0] CAM_VSIZE,
output reg [31:0]  REG_DATA,
output     [8 :0]  REG_SIZE  
);assign	REG_SIZE = 9'd251;//-----------------------------------------------------------------
/	Config Data REG	  //	
always@(*)
begincase(REG_INDEX)0:       REG_DATA<=24'h310311;   // system clock from pad, bit[1]1:       REG_DATA<=24'h300882;   // software reset, bit[7]// delay 5ms2:       REG_DATA<=24'h300842;   // software power down, bit[6]3:       REG_DATA<=24'h310303;   // system clock from PLL, bit[1]4:       REG_DATA<=24'h3017ff;   // FREX, Vsync, HREF, PCLK, D[9:6] output enable5:       REG_DATA<=24'h3018ff;   // D[5:0], GPIO[1:0] output enable6:       REG_DATA<=24'h30341a;   // MIPI 10-bit7:       REG_DATA<=24'h303713;   // PLL root divider, bit[4], PLL pre-divider, bit[3:0]8:       REG_DATA<=24'h310801;   // PCLK root divider, bit[5:4], SCLK2x root divider, bit[3:2]// SCLK root divider, bit[1:0]9:       REG_DATA<=24'h363036;  10:      REG_DATA<=24'h36310e;  11:      REG_DATA<=24'h3632e2;  12:      REG_DATA<=24'h363312;  13:      REG_DATA<=24'h3621e0;  14:      REG_DATA<=24'h3704a0;  15:      REG_DATA<=24'h37035a;  16:      REG_DATA<=24'h371578;  17:      REG_DATA<=24'h371701;  18:      REG_DATA<=24'h370b60;  19:      REG_DATA<=24'h37051a;  20:      REG_DATA<=24'h390502;  21:      REG_DATA<=24'h390610;  22:      REG_DATA<=24'h39010a;  23:      REG_DATA<=24'h373112;  24:      REG_DATA<=24'h360008;   // VCM control25:      REG_DATA<=24'h360133;   // VCM control26:      REG_DATA<=24'h302d60;   // system control27:      REG_DATA<=24'h362052;  28:      REG_DATA<=24'h371b20;  29:      REG_DATA<=24'h471c50;  30:      REG_DATA<=24'h3a1343;   // pre-gain = 1.047x31:      REG_DATA<=24'h3a1800;   // gain ceiling32:      REG_DATA<=24'h3a19f8;   // gain ceiling = 15.5x33:      REG_DATA<=24'h363513;  34:      REG_DATA<=24'h363603;  35:      REG_DATA<=24'h363440;  36:      REG_DATA<=24'h362201;  // 50/60Hz detection 50/60Hz 灯光条纹过滤37:      REG_DATA<=24'h3c0134;   // Band auto, bit[7]38:      REG_DATA<=24'h3c0428;   // threshold low sum39:      REG_DATA<=24'h3c0598;   // threshold high sum40:      REG_DATA<=24'h3c0600;   // light meter 1 threshold[15:8]41:      REG_DATA<=24'h3c0708;   // light meter 1 threshold[7:0]42:      REG_DATA<=24'h3c0800;   // light meter 2 threshold[15:8]43:      REG_DATA<=24'h3c091c;   // light meter 2 threshold[7:0]44:      REG_DATA<=24'h3c0a9c;   // sample number[15:8]45:      REG_DATA<=24'h3c0b40;   // sample number[7:0]46:      REG_DATA<=24'h381000;   // Timing Hoffset[11:8]47:      REG_DATA<=24'h381110;   // Timing Hoffset[7:0]48:      REG_DATA<=24'h381200;   // Timing Voffset[10:8]49:      REG_DATA<=24'h370864;  50:      REG_DATA<=24'h400102;   // BLC start from line 251:      REG_DATA<=24'h40051a;   // BLC always update52:      REG_DATA<=24'h300000;   // enable blocks53:      REG_DATA<=24'h3004ff;   // enable clocks54:      REG_DATA<=24'h300e58;   // MIPI power down, DVP enable55:      REG_DATA<=24'h302e00;  56:      REG_DATA<=24'h430061;   // YUV 422, YUYV57:      REG_DATA<=24'h501f01;   // YUV 42258:      REG_DATA<=24'h440e00;  59:      REG_DATA<=24'h5000a7;   // Lenc on, raw gamma on, BPC on, WPC on, CIP on// AEC target 自动曝光控制60:      REG_DATA<=24'h3a0f30;   // stable range in high61:      REG_DATA<=24'h3a1028;   // stable range in low62:      REG_DATA<=24'h3a1b30;   // stable range out high63:      REG_DATA<=24'h3a1e26;   // stable range out low64:      REG_DATA<=24'h3a1160;   // fast zone high65:      REG_DATA<=24'h3a1f14;   // fast zone low// Lens correction for ? 镜头补偿66:      REG_DATA<=24'h580023;  67:      REG_DATA<=24'h580114;  68:      REG_DATA<=24'h58020f;  69:      REG_DATA<=24'h58030f;  70:      REG_DATA<=24'h580412;  71:      REG_DATA<=24'h580526;  72:      REG_DATA<=24'h58060c;  73:      REG_DATA<=24'h580708;  74:      REG_DATA<=24'h580805;  75:      REG_DATA<=24'h580905;  76:      REG_DATA<=24'h580a08;  77:      REG_DATA<=24'h580b0d;  78:      REG_DATA<=24'h580c08;  79:      REG_DATA<=24'h580d03;  80:      REG_DATA<=24'h580e00;  81:      REG_DATA<=24'h580f00;  82:      REG_DATA<=24'h581003;  83:      REG_DATA<=24'h581109;  84:      REG_DATA<=24'h581207;  85:      REG_DATA<=24'h581303;  86:      REG_DATA<=24'h581400;  87:      REG_DATA<=24'h581501;  88:      REG_DATA<=24'h581603;  89:      REG_DATA<=24'h581708;  90:      REG_DATA<=24'h58180d;  91:      REG_DATA<=24'h581908;  92:      REG_DATA<=24'h581a05;  93:      REG_DATA<=24'h581b06;  94:      REG_DATA<=24'h581c08;  95:      REG_DATA<=24'h581d0e;  96:      REG_DATA<=24'h581e29;  97:      REG_DATA<=24'h581f17;  98:      REG_DATA<=24'h582011;  99:      REG_DATA<=24'h582111;  100:     REG_DATA<=24'h582215;  101:     REG_DATA<=24'h582328;  102:     REG_DATA<=24'h582446;  103:     REG_DATA<=24'h582526;  104:     REG_DATA<=24'h582608;  105:     REG_DATA<=24'h582726;  106:     REG_DATA<=24'h582864;  107:     REG_DATA<=24'h582926;  108:     REG_DATA<=24'h582a24;  109:     REG_DATA<=24'h582b22;  110:     REG_DATA<=24'h582c24;  111:     REG_DATA<=24'h582d24;  112:     REG_DATA<=24'h582e06;  113:     REG_DATA<=24'h582f22;  114:     REG_DATA<=24'h583040;  115:     REG_DATA<=24'h583142;  116:     REG_DATA<=24'h583224;  117:     REG_DATA<=24'h583326;  118:     REG_DATA<=24'h583424;  119:     REG_DATA<=24'h583522;  120:     REG_DATA<=24'h583622;  121:     REG_DATA<=24'h583726;  122:     REG_DATA<=24'h583844;  123:     REG_DATA<=24'h583924;  124:     REG_DATA<=24'h583a26;  125:     REG_DATA<=24'h583b28;  126:     REG_DATA<=24'h583c42;  127:     REG_DATA<=24'h583dce;   // lenc BR offset128:     REG_DATA<=24'h5180ff;   // AWB B block129:     REG_DATA<=24'h518158;   // AWB control130:     REG_DATA<=24'h518211;   // [7:4] max local counter, [3:0] max fast counter131:     REG_DATA<=24'h518390;   // AWB advanced132:     REG_DATA<=24'h518425;  133:     REG_DATA<=24'h518524;  134:     REG_DATA<=24'h518609;  135:     REG_DATA<=24'h518709;  136:     REG_DATA<=24'h518809;  137:     REG_DATA<=24'h518975;  138:     REG_DATA<=24'h518a54;  139:     REG_DATA<=24'h518be0;  140:     REG_DATA<=24'h518cb2;  141:     REG_DATA<=24'h518d42;  142:     REG_DATA<=24'h518e3d;  143:     REG_DATA<=24'h518f56;  144:     REG_DATA<=24'h519046;  145:     REG_DATA<=24'h5191ff;   // AWB top limit146:     REG_DATA<=24'h519200;   // AWB bottom limit147:     REG_DATA<=24'h5193f0;   // red limit148:     REG_DATA<=24'h5194f0;   // green limit149:     REG_DATA<=24'h5195f0;   // blue limit150:     REG_DATA<=24'h519603;   // AWB control151:     REG_DATA<=24'h519702;   // local limit152:     REG_DATA<=24'h519804;  153:     REG_DATA<=24'h519912;  154:     REG_DATA<=24'h519a04;  155:     REG_DATA<=24'h519b00;  156:     REG_DATA<=24'h519c06;  157:     REG_DATA<=24'h519d82;  158:     REG_DATA<=24'h519e00;   // AWB control// Gamma 伽玛曲线159:     REG_DATA<=24'h548001;   // Gamma bias plus on, bit[0]160:     REG_DATA<=24'h548108;  161:     REG_DATA<=24'h548214;  162:     REG_DATA<=24'h548328;  163:     REG_DATA<=24'h548451;  164:     REG_DATA<=24'h548565;  165:     REG_DATA<=24'h548671;  166:     REG_DATA<=24'h54877d;  167:     REG_DATA<=24'h548887;  168:     REG_DATA<=24'h548991;  169:     REG_DATA<=24'h548a9a;  170:     REG_DATA<=24'h548baa;  171:     REG_DATA<=24'h548cb8;  172:     REG_DATA<=24'h548dcd;  173:     REG_DATA<=24'h548edd;  174:     REG_DATA<=24'h548fea;  175:     REG_DATA<=24'h54901d;  // color matrix 色彩矩阵176:     REG_DATA<=24'h53811e;   // CMX1 for Y177:     REG_DATA<=24'h53825b;   // CMX2 for Y178:     REG_DATA<=24'h538308;   // CMX3 for Y179:     REG_DATA<=24'h53840a;   // CMX4 for U180:     REG_DATA<=24'h53857e;   // CMX5 for U181:     REG_DATA<=24'h538688;   // CMX6 for U182:     REG_DATA<=24'h53877c;   // CMX7 for V183:     REG_DATA<=24'h53886c;   // CMX8 for V184:     REG_DATA<=24'h538910;   // CMX9 for V185:     REG_DATA<=24'h538a01;   // sign[9]186:     REG_DATA<=24'h538b98;   // sign[8:1]// UV adjust UV色彩饱和度调整187:     REG_DATA<=24'h558006;   // saturation on, bit[1]188:     REG_DATA<=24'h558340;  189:     REG_DATA<=24'h558410;  190:     REG_DATA<=24'h558910;  191:     REG_DATA<=24'h558a00;  192:     REG_DATA<=24'h558bf8;  193:     REG_DATA<=24'h501d40;   // enable manual offset of contrast// CIP 锐化和降噪194:     REG_DATA<=24'h530008;   // CIP sharpen MT threshold 1195:     REG_DATA<=24'h530130;   // CIP sharpen MT threshold 2196:     REG_DATA<=24'h530210;   // CIP sharpen MT offset 1197:     REG_DATA<=24'h530300;   // CIP sharpen MT offset 2198:     REG_DATA<=24'h530408;   // CIP DNS threshold 1199:     REG_DATA<=24'h530530;   // CIP DNS threshold 2200:     REG_DATA<=24'h530608;   // CIP DNS offset 1201:     REG_DATA<=24'h530716;   // CIP DNS offset 2202:     REG_DATA<=24'h530908;   // CIP sharpen TH threshold 1203:     REG_DATA<=24'h530a30;   // CIP sharpen TH threshold 2204:     REG_DATA<=24'h530b04;   // CIP sharpen TH offset 1205:     REG_DATA<=24'h530c06;   // CIP sharpen TH offset 2206:     REG_DATA<=24'h502500;  207:     REG_DATA<=24'h300802;   // wake up from standby, bit[6]// YUV VGA 30fps, night mode 5fps// Input Clock = 24Mhz, PCLK = 56MHz208:     REG_DATA<=24'h303541;   // PLL209:     REG_DATA<=24'h303669;   // PLL210:     REG_DATA<=24'h3c0707;   // light meter 1 threshold [7:0]211:     REG_DATA<=24'h382040;   // Sensor flip off, ISP flip on212:     REG_DATA<=24'h382101;   // Sensor mirror on, ISP mirror on, H binning on213:     REG_DATA<=24'h381431;   // X INC214:     REG_DATA<=24'h381531;   // Y INC215:     REG_DATA<=24'h380000;   // HS216:     REG_DATA<=24'h380100;   // HS217:     REG_DATA<=24'h380200;   // VS218:     REG_DATA<=24'h3803fa;   // VS219:     REG_DATA<=24'h38040a; // HW (HE)220:     REG_DATA<=24'h38053f; // HW (HE)221:     REG_DATA<=24'h380606; // VH (VE)222:     REG_DATA<=24'h3807a9; // VH (VE)223:     REG_DATA<={16'h3808,CAM_HSIZE[15:8]} ; // DVPHO     (1280)224:     REG_DATA<={16'h3809,CAM_HSIZE[ 7:0]}; // DVPHO     (1280)225:     REG_DATA<={16'h380a,CAM_VSIZE[15:8]} ; // DVPVO     (720)226:     REG_DATA<={16'h380b,CAM_VSIZE[ 7:0]}; // DVPVO     (720)227:     REG_DATA<=24'h380c07;   // HTS228:     REG_DATA<=24'h380d64;   // HTS229:     REG_DATA<=24'h380e02;   // VTS230:     REG_DATA<=24'h380fe4;   // VTS231:     REG_DATA<=24'h381304;   // Timing Voffset232:     REG_DATA<=24'h361800;  233:     REG_DATA<=24'h361229;  234:     REG_DATA<=24'h370952;  235:     REG_DATA<=24'h370c03;  236:     REG_DATA<=24'h3a0217;   // 60Hz max exposure, night mode 5fps237:     REG_DATA<=24'h3a03e0;   // 60Hz max exposure// banding filters are calculated automatically in camera driver//:     REG_DATA<=24'h3a0801;   // B50 step//:     REG_DATA<=24'h3a0927;   // B50 step//:     REG_DATA<=24'h3a0a00;   // B60 step//:     REG_DATA<=24'h3a0bf6;   // B60 step//:     REG_DATA<=24'h3a0e03;   // 50Hz max band//:     REG_DATA<=24'h3a0d04;   // 60Hz max band238:     REG_DATA<=24'h3a1417;   // 50Hz max exposure, night mode 5fps239:     REG_DATA<=24'h3a1510;   // 50Hz max exposure240:     REG_DATA<=24'h400402;   // BLC 2 lines241:     REG_DATA<=24'h30021c;   // reset JFIFO, SFIFO, JPEG242:     REG_DATA<=24'h3006c3;   // disable clock of JPEG2x, JPEG243:     REG_DATA<=24'h471303;   // JPEG mode 3244:     REG_DATA<=24'h440704;   // Quantization scale245:     REG_DATA<=24'h460b37;  246:     REG_DATA<=24'h460c20;  247:     REG_DATA<=24'h483716;   // DVP CLK divider248:     REG_DATA<=24'h382402;   // DVP CLK divider249:     REG_DATA<=24'h500183;   // SDE on, scale on, UV average off, color matrix on, AWB on250:     REG_DATA<=24'h350300;   // AEC/AGC ondefault:   REG_DATA<=24'h000000;endcase
endendmodule

其他 

基于FPGA的摄像头控制电路设计之OV5640寄存器配置-RGB565-800×480预览 - mjybk - 博客园 (cnblogs.com)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/580076.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

KEPServerEX 6 之【外篇-2】PTC-ThingWorx服务端软件安装 PostgreSQL本地安装

---------------------------安装相关信息--------------- 默认用户角色 : Postgres 密码:root@123 localhost 用户角色 :postgres_tw 密码 root@123 端口 5432 ------------------------------------------------------------------ 1. WIN 安装 Postgre…

倒计时1天!WAVE SUMMIT+ 2023将开启,五大亮点抢鲜看!

10句话2分钟&#xff0c;挑战成功说服宿管阿姨开门&#xff0c;这个人群中的“显眼包”是一个接入文心大模型4.0游戏里的NPC&#xff0c;妥妥 “工具人”实锤&#xff5e; 尝试用AI一键自动识别好坏咖啡豆&#xff0c;看一眼便知好坏&#xff0c;真正“颜值即正义”&#xff0…

信息筑牢安全防线|隐私安全保护仍任重道远!

在日常生活中&#xff0c;就连小小一张快递面单可以显示很多关键信息&#xff0c;让不法分子盗取个人信息有机可乘。 今年2月1日&#xff0c;《快递电子运单》国家标准开始实施。根据国家邮政局数据&#xff0c;中国快递日均包裹量3.4亿余件&#xff0c;隐私面单日均使用量已超…

构造数字(贪心算法)

在一个宁静的早晨&#xff0c; 迪迦奥特曼突然发现了一个奇特的物体。这个物体是一个来自未知星球的超级数字计算器。这个计算器拥有强大的功能&#xff0c; 可以计算出任何数字的结果&#xff0c; 甚至可以解析出数字之间的深层次联系和规律。 随着时间的推移&#xff0c; 迪迦…

13.鸿蒙HarmonyOS App(JAVA)文本框组件按钮点击提示

13.鸿蒙HarmonyOS App(JAVA)文本框按钮点击提示 点击按钮触发组件状态&#xff0c;点击改变颜色 文本框组件&#xff0c;文本居中&#xff0c;斜体&#xff0c;左右对齐&#xff0c;点击显示提示信息 Button button(Button) findComponentById(ResourceTable.Id_btn_1); but…

git集成github(一):主要步骤

一、创建仓库 1、创建本地git仓库 在pcharm主界面顶栏&#xff0c;点击VCS&#xff0c;再点击创建git仓库&#xff0c;然后选择项目根路径&#xff0c;点击确认。这时&#xff0c;可以看到顶栏的VCS变成了git。 2、远程仓库下载到本地 打开一个远程仓库&#xff0c;点击code…

C# Winform教程(一):MD5加密

1、介绍 在C#中&#xff0c;MD5&#xff08;Message Digest Algorithm 5&#xff09;是一种常用的哈希函数&#xff0c;用于将任意长度的数据转换为固定长度的哈希值&#xff08;通常是128位&#xff09;。MD5广泛用于校验数据完整性、密码存储等领域。 2、示例 创建MD5加密…

元宇宙与VR虚拟现实的未来如何?

从科幻小说到商业现实 自从 Facebook年更名为 Meta 以来&#xff0c;关于元宇宙的热议不断&#xff0c;人们对虚拟世界的兴趣也重新燃起&#xff0c;因为尽管虚拟现实 (VR) 的概念由来已久&#xff0c;但该技术现在才开始真正得以应用。 定义元宇宙和虚拟现实 首先是 The Met…

【2024考研】心情记录

今天是12.26日。距离24考研已经过去了2天&#xff0c;自认为缓过来了&#xff0c;故写下这篇文章。 25日早上简单过了一下答案&#xff0c;但实在是记不住答案了&#xff0c;不知道是我的脑子抵触还是怎的&#xff0c;像一块灰色的布遮住了我的记忆&#xff0c;羞于打开&#x…

爬虫爬取豆瓣电影、价格、书名

1、爬取豆瓣电影top250 import requests from bs4 import BeautifulSoupheaders {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36" }for i in range(0, 250, 25):pr…

【Java、Python】获取电脑当前网络IP进行位置获取(附源码)

我相信看到这篇博客的时候心里肯定是想解决自己的一个问题的&#xff0c;而这篇博客我就以简单快速的方式解决这些烦恼&#xff01; 一、获取当前IP 在Java中自带了一些自己的流对象来获取当前的IP地址&#xff0c;不多说我们直接上代码。 //获取当前网络ip地址 ipAddress Ine…

TCP并发服务器

一.进程实现TCP并发服务器 #include <func.h> #define PORT 6666 #define IP "192.168.124.42"void handler(int arm) {while(waitpid(-1,NULL,WNOHANG) > 0); } int main(int argc, const char *argv[]) {//接受17号信号signal(17, handler);i…

Flink导入StarRocks

1、pom依赖 <properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><flink.version>1.13.6</flink.version><scala.binary.version>2.12</scala.binary.version&…

2014年第三届数学建模国际赛小美赛A题吹口哨解题全过程文档及程序

2014年第三届数学建模国际赛小美赛 A题 吹口哨 原题再现&#xff1a; 哨子是一种小装置&#xff0c;当空气被迫通过开口时会发出声音。哨声的巨大而引人注目&#xff0c;使其对警察和体育裁判来说至关重要。当救生员、迷路的露营者或犯罪受害者使用它们时&#xff0c;它们可以…

网站显示不安全警告怎么办?消除网站不安全警告超全指南

网站显示不安全警告怎么办&#xff1f;当用户访问你的网站&#xff0c;而您的网站没有部署SSL证书实现HTTPS加密时&#xff0c;网站就会显示不安全警告&#xff0c;这种警告&#xff0c;不仅有可能阻止用户继续浏览网站&#xff0c;影响网站声誉&#xff0c;还有可能影响网站在…

阿赵UE学习笔记——5、创建关卡元素

阿赵UE学习笔记目录 大家好&#xff0c;我是阿赵。   之前介绍了从空白模板创建关卡&#xff0c;接下来尝试着在这个空白的世界里面&#xff0c;创建一些内容。 一、创建地面 1、创建面片作为地面 创建——形状——平面&#xff0c;可以创建一个面片 在细节面板设置合适的…

C# 事件(Event)

C# 事件&#xff08;Event&#xff09; C# 事件&#xff08;Event&#xff09;通过事件使用委托声明事件&#xff08;Event&#xff09;实例 C# 事件&#xff08;Event&#xff09; 事件&#xff08;Event&#xff09; 基本上说是一个用户操作&#xff0c;如按键、点击、鼠标移…

分布式锁竟然这么简单?(荣耀典藏版)

大家好&#xff0c;我是小月夜枫&#xff0c;作为一个后台开发&#xff0c;不管是工作还是面试中&#xff0c;分布式一直是一个让人又爱又恨的话题。它如同一座神秘的迷宫&#xff0c;时而让你迷失方向&#xff0c;时而又为你揭示出令人惊叹的宝藏。 今天&#xff0c;让我们来…

LeetCode第2题 - 两数相加

题目 给出两个 非空 的链表用来表示两个非负的整数。其中&#xff0c;它们各自的位数是按照 逆序 的方式存储的&#xff0c;并且它们的每个节点只能存储 一位 数字。 如果&#xff0c;我们将这两个数相加起来&#xff0c;则会返回一个新的链表来表示它们的和。 您可以假设除了数…

项目零散记录

Ts托管 仅本项目禁用本地vscode内置的ts服务 提交代码前的检查 husky(哈士奇)工具&#xff08;是一个git hooks工具&#xff09; 1、安装 pnpm dlx husky-init && pnpm install安装的时候&#xff0c;出现如下报错 解决方案&#xff0c;需要先执行git init初始化…