原创 OV5640 960x960@60fps的配置

2019-2-21 18:42 2750 17 17 分类: FPGA/CPLD 文集: FPGA
always@(reg_cmd_idx)   
 begin
    case(reg_cmd_idx)
             
               
      0  : reg_cmd_data <= 24'h310311; // system clock from pad, bit[1]              
      1  : reg_cmd_data <= 24'h300882; // software reset, bit[7]// delay 5ms              
      2  : reg_cmd_data <= 24'hFFFF0A;  //dealy 

      3  : reg_cmd_data <= 24'h303108; //bypass regulator
      4  : reg_cmd_data <= 24'hFFFF0A; //dealy 


      5  : reg_cmd_data <= 24'h300842; // software power down, bit[6]               
      6  : reg_cmd_data <= 24'h310303; // system clock from PLL, bit[1]              
      7  : reg_cmd_data <= 24'h3017ff; // FREX, Vsync, HREF, PCLK, D[9 : 6] output enable          
      8  : reg_cmd_data <= 24'h3018ff; // D[5 : 0], GPIO[1 : 0] output enable           
      9  : reg_cmd_data <= 24'h30341A; // MIPI 10-bit                 
      10 : reg_cmd_data <= 24'h303713; // PLL root divider, bit[4], PLL pre-divider, bit[3 : 0]          
      11 : reg_cmd_data <= 24'h310801; // PCLK root divider, bit[5 : 4], SCLK2x root divider, bit[3 : 2] // SCLK root divider, bit[1 : 0]    
      12 : reg_cmd_data <= 24'h363036;                    
      13 : reg_cmd_data <= 24'h36310e;                    
      14 : reg_cmd_data <= 24'h3632e2;                    
      15 : reg_cmd_data <= 24'h363312;                    
      16 : reg_cmd_data <= 24'h3621e0;                    
      17 : reg_cmd_data <= 24'h3704a0;                    
      18 : reg_cmd_data <= 24'h37035a;                    
      19 : reg_cmd_data <= 24'h371578;                    
      20 : reg_cmd_data <= 24'h371701;                    
      21 : reg_cmd_data <= 24'h370b60;                    
      22 : reg_cmd_data <= 24'h37051a;                    
      23 : reg_cmd_data <= 24'h390502;                    
      24 : reg_cmd_data <= 24'h390610;                    
      25 : reg_cmd_data <= 24'h39010a;                    
      26 : reg_cmd_data <= 24'h373112;                    
      27 : reg_cmd_data <= 24'h360008; // VCM control                 
      28 : reg_cmd_data <= 24'h360133; // VCM control                 
      29 : reg_cmd_data <= 24'h302d60; // system control                 
      30 : reg_cmd_data <= 24'h362052;                    
      31 : reg_cmd_data <= 24'h371b20;                    
      32 : reg_cmd_data <= 24'h471c50;                    
      33 : reg_cmd_data <= 24'h3a1343; // pre-gain = 1.047x                
      34 : reg_cmd_data <= 24'h3a1800; // gain ceiling                 
      35 : reg_cmd_data <= 24'h3a19f8; // gain ceiling = 15.5x               
      36 : reg_cmd_data <= 24'h363513;                    
      37 : reg_cmd_data <= 24'h363603;                    
      38 : reg_cmd_data <= 24'h363440;                    
      39 : reg_cmd_data <= 24'h362201; // 50/60Hz detection 50/60Hz 灯光条纹过滤               
      40 : reg_cmd_data <= 24'h3c0134; // Band auto, bit[7]                
      41 : reg_cmd_data <= 24'h3c0428; // threshold low "sum "                
      42 : reg_cmd_data <= 24'h3c0598; // threshold high sum                
      43 : reg_cmd_data <= 24'h3c0600; // light meter 1 threshold[15 : 8]             
      44 : reg_cmd_data <= 24'h3c0708; // light meter 1 threshold[7 : 0]             
      45 : reg_cmd_data <= 24'h3c0800; // light meter 2 threshold[15 : 8]             
      46 : reg_cmd_data <= 24'h3c091c; // light meter 2 threshold[7 : 0]             
      47 : reg_cmd_data <= 24'h3c0a9c; // sample number[15 : 8]               
      48 : reg_cmd_data <= 24'h3c0b40; // sample number[7 : 0]               
      49 : reg_cmd_data <= 24'h381000; // Timing Hoffset[11 : 8]   =(2592/2-960)/2               
      50 : reg_cmd_data <= 24'h3811A8; // Timing Hoffset[7 : 0]               
      51 : reg_cmd_data <= 24'h381200; // Timing Voffset[10 : 8]               
      52 : reg_cmd_data <= 24'h370864;                    
      53 : reg_cmd_data <= 24'h400102; // BLC start from line 2              
      54 : reg_cmd_data <= 24'h40051a; // BLC always update                
      55 : reg_cmd_data <= 24'h300000; // enable blocks                 
      56 : reg_cmd_data <= 24'h3004ff; // enable clocks                 
      57: reg_cmd_data <= 24'h300e58; // MIPI power down, DVP enable              
      58: reg_cmd_data <= 24'h302e00;                    
      //59 : reg_cmd_data <= 24'h430030; // YUV422  
      59 : reg_cmd_data <= 24'h430010; // Y8    
      60 : reg_cmd_data <= 24'h501f00; // ISP YUV                 
      61 : reg_cmd_data <= 24'h440e00;                    
      62 : reg_cmd_data <= 24'h5000a7; // Lenc on, raw gamma on, BPC on, WPC on, CIP on // AEC target 自动曝光控制    
      63 : reg_cmd_data <= 24'h3a0f30; // stable range in high               
      64 : reg_cmd_data <= 24'h3a1028; // stable range in low               
      65 : reg_cmd_data <= 24'h3a1b30; // stable range out high               
      66 : reg_cmd_data <= 24'h3a1e26; // stable range out low               
      67 : reg_cmd_data <= 24'h3a1160; // fast zone high                
      68 : reg_cmd_data <= 24'h3a1f14; // fast zone low// Lens correction for ? 镜头补偿           
      69 : reg_cmd_data <= 24'h580023;                    
      70 : reg_cmd_data <= 24'h580114;                    
      71 : reg_cmd_data <= 24'h58020f;                    
      72 : reg_cmd_data <= 24'h58030f;                    
      73 : reg_cmd_data <= 24'h580412;                    
      74 : reg_cmd_data <= 24'h580526;                    
      75 : reg_cmd_data <= 24'h58060c;                    
      76 : reg_cmd_data <= 24'h580708;                    
      77 : reg_cmd_data <= 24'h580805;                    
      78 : reg_cmd_data <= 24'h580905;                    
      79 : reg_cmd_data <= 24'h580a08;                    
      80 : reg_cmd_data <= 24'h580b0d;                    
      81 : reg_cmd_data <= 24'h580c08;                    
      82 : reg_cmd_data <= 24'h580d03;                    
      83 : reg_cmd_data <= 24'h580e00;                    
      84 : reg_cmd_data <= 24'h580f00;                    
      85 : reg_cmd_data <= 24'h581003;                    
      86 : reg_cmd_data <= 24'h581109;                    
      87 : reg_cmd_data <= 24'h581207;                    
      88 : reg_cmd_data <= 24'h581303;                    
      89 : reg_cmd_data <= 24'h581400;                    
      90 : reg_cmd_data <= 24'h581501;                    
      91 : reg_cmd_data <= 24'h581603;                    
      92 : reg_cmd_data <= 24'h581708;                    
      93 : reg_cmd_data <= 24'h58180d;                    
      94 : reg_cmd_data <= 24'h581908;                    
      95 : reg_cmd_data <= 24'h581a05;                    
      96 : reg_cmd_data <= 24'h581b06;                    
      97 : reg_cmd_data <= 24'h581c08;                    
      98 : reg_cmd_data <= 24'h581d0e;                    
      99 : reg_cmd_data <= 24'h581e29;                    
      100: reg_cmd_data <= 24'h581f17;                    
      101: reg_cmd_data <= 24'h582011;                    
      102 : reg_cmd_data <= 24'h582111;                    
      103 : reg_cmd_data <= 24'h582215;                    
      104 : reg_cmd_data <= 24'h582328;                    
      105 : reg_cmd_data <= 24'h582446;                    
      106 : reg_cmd_data <= 24'h582526;                    
      107 : reg_cmd_data <= 24'h582608;                    
      108 : reg_cmd_data <= 24'h582726;                    
      109 : reg_cmd_data <= 24'h582864;                    
      110 : reg_cmd_data <= 24'h582926;                    
      111 : reg_cmd_data <= 24'h582a24;                    
      112 : reg_cmd_data <= 24'h582b22;                    
      113 : reg_cmd_data <= 24'h582c24;                    
      114 : reg_cmd_data <= 24'h582d24;                    
      115 : reg_cmd_data <= 24'h582e06;                    
      116 : reg_cmd_data <= 24'h582f22;                    
      117 : reg_cmd_data <= 24'h583040;                    
      118 : reg_cmd_data <= 24'h583142;                    
      119 : reg_cmd_data <= 24'h583224;                    
      120 : reg_cmd_data <= 24'h583326;                    
      121 : reg_cmd_data <= 24'h583424;                    
      122 : reg_cmd_data <= 24'h583522;                    
      123 : reg_cmd_data <= 24'h583622;                    
      124 : reg_cmd_data <= 24'h583726;                    
      125 : reg_cmd_data <= 24'h583844;                    
      126 : reg_cmd_data <= 24'h583924;                    
      127 : reg_cmd_data <= 24'h583a26;                    
      128 : reg_cmd_data <= 24'h583b28;                    
      129 : reg_cmd_data <= 24'h583c42;                    
      130 : reg_cmd_data <= 24'h583dce; // lenc BR offset // AWB 自动白平��?            
      131 : reg_cmd_data <= 24'h5180ff; // AWB B block                
      132 : reg_cmd_data <= 24'h5181f2; // AWB control                 
      133 : reg_cmd_data <= 24'h518200; // [7 : 4] max local counter, [3 : 0] max fast counter       
      134 : reg_cmd_data <= 24'h518314; // AWB advanced                 
      135 : reg_cmd_data <= 24'h518425;                    
      136 : reg_cmd_data <= 24'h518524;                    
      137 : reg_cmd_data <= 24'h518609;                    
      138 : reg_cmd_data <= 24'h518709;                    
      139 : reg_cmd_data <= 24'h518809;                    
      140 : reg_cmd_data <= 24'h518975;                    
      141 : reg_cmd_data <= 24'h518a54;                    
      142 : reg_cmd_data <= 24'h518be0;                    
      143 : reg_cmd_data <= 24'h518cb2;                    
      144 : reg_cmd_data <= 24'h518d42;                    
      145 : reg_cmd_data <= 24'h518e3d;                    
      146 : reg_cmd_data <= 24'h518f56;                    
      147 : reg_cmd_data <= 24'h519046;                    
      148 : reg_cmd_data <= 24'h5191f8; // AWB top limit                
      149 : reg_cmd_data <= 24'h519204; // AWB bottom limit                
      150 : reg_cmd_data <= 24'h519370; // red limit                 
      151 : reg_cmd_data <= 24'h5194f0; // green limit                 
      152 : reg_cmd_data <= 24'h5195f0; // blue limit                 
      153 : reg_cmd_data <= 24'h519603; // AWB control                 
      154 : reg_cmd_data <= 24'h519701; // local limit                 
      155 : reg_cmd_data <= 24'h519804;                    
      156 : reg_cmd_data <= 24'h519912;                    
      157 : reg_cmd_data <= 24'h519a04;                    
      158 : reg_cmd_data <= 24'h519b00;                    
      159 : reg_cmd_data <= 24'h519c06;                    
      160 : reg_cmd_data <= 24'h519d82;                    
      161 : reg_cmd_data <= 24'h519e38; // AWB control // Gamma 伽玛曲线              
      162 : reg_cmd_data <= 24'h548001; // Gamma bias plus on, bit[0]              
      163 : reg_cmd_data <= 24'h548108;                    
      164 : reg_cmd_data <= 24'h548214;                    
      165 : reg_cmd_data <= 24'h548328;                    
      166 : reg_cmd_data <= 24'h548451;                    
      167 : reg_cmd_data <= 24'h548565;                    
      168 : reg_cmd_data <= 24'h548671;                    
      169 : reg_cmd_data <= 24'h54877d;                    
      170 : reg_cmd_data <= 24'h548887;                    
      171 : reg_cmd_data <= 24'h548991;                    
      172 : reg_cmd_data <= 24'h548a9a;                    
      173 : reg_cmd_data <= 24'h548baa;                    
      174 : reg_cmd_data <= 24'h548cb8;                    
      175 : reg_cmd_data <= 24'h548dcd;                    
      176 : reg_cmd_data <= 24'h548edd;                    
      177 : reg_cmd_data <= 24'h548fea;                    
      178 : reg_cmd_data <= 24'h54901d; // color matrix 色彩矩阵                
      179 : reg_cmd_data <= 24'h53811e; // CMX1 for Y                
      180 : reg_cmd_data <= 24'h53825b; // CMX2 for Y                
      181 : reg_cmd_data <= 24'h538308; // CMX3 for Y                
      182 : reg_cmd_data <= 24'h53840a; // CMX4 for U                
      183 : reg_cmd_data <= 24'h53857e; // CMX5 for U                
      184 : reg_cmd_data <= 24'h538688; // CMX6 for U                
      185 : reg_cmd_data <= 24'h53877c; // CMX7 for V                
      186 : reg_cmd_data <= 24'h53886c; // CMX8 for V                
      187 : reg_cmd_data <= 24'h538910; // CMX9 for V                
      188 : reg_cmd_data <= 24'h538a01; // sign[9]                  
      189 : reg_cmd_data <= 24'h538b98; // sign[8 : 1] // UV adjust UV色彩饱和度调��?           
      190 : reg_cmd_data <= 24'h558006; // saturation on, bit[1]                
      191 : reg_cmd_data <= 24'h558340;                    
      192 : reg_cmd_data <= 24'h558410;                    
      193 : reg_cmd_data <= 24'h558910;                    
      194 : reg_cmd_data <= 24'h558a00;                    
      195 : reg_cmd_data <= 24'h558bf8;                    
      196 : reg_cmd_data <= 24'h501d40; // enable manual offset of contrast// CIP 锐化和降��?           
      197 : reg_cmd_data <= 24'h530008; // CIP sharpen MT threshold 1              
      198 : reg_cmd_data <= 24'h530130; // CIP sharpen MT threshold 2              
      199 : reg_cmd_data <= 24'h530210; // CIP sharpen MT offset 1              
      200 : reg_cmd_data <= 24'h530300; // CIP sharpen MT offset 2              
      201 : reg_cmd_data <= 24'h530408; // CIP DNS threshold 1               
      202 : reg_cmd_data <= 24'h530530; // CIP DNS threshold 2               
      203 : reg_cmd_data <= 24'h530608; // CIP DNS offset 1               
      204 : reg_cmd_data <= 24'h530716; // CIP DNS offset 2               
      205 : reg_cmd_data <= 24'h530908; // CIP sharpen TH threshold 1              
      206 : reg_cmd_data <= 24'h530a30; // CIP sharpen TH threshold 2              
      207 : reg_cmd_data <= 24'h530b04; // CIP sharpen TH offset 1              
      208 : reg_cmd_data <= 24'h530c06; // CIP sharpen TH offset 2              
      209 : reg_cmd_data <= 24'h502500; 
      210 : reg_cmd_data <= 24'h474021; //VSYNC 高有效   
      211 : reg_cmd_data <=  24'h321203; //start group 3  //对比度+3
      212 : reg_cmd_data <=  24'h55862c; // 
      213 : reg_cmd_data <=  24'h55851c; //
      214 : reg_cmd_data <=  24'h321213; //end group 3 
      215 : reg_cmd_data <=  24'h3212a3; //launch group 3       
      //216 : reg_cmd_data <= 24'h300802; // wake up from standby, bit[6] 
      217 : reg_cmd_data <= 24'hFFFF05; //dealy


      // 960x960, 60fps
      // Input Clock = 24Mhz, PCLK = 84MHz 
      218 : reg_cmd_data <=  24'h303511; //PLL 
      219 : reg_cmd_data <=  24'h303669; //PLL 
      220 : reg_cmd_data <=  24'h3c0707; //lightmet er 1 threshold[7:0]
      221 : reg_cmd_data <=  24'h382041; //flip 
      222 : reg_cmd_data <=  24'h382101; //mirror 
      223 : reg_cmd_data <=  24'h381431; //timing X inc
      224 : reg_cmd_data <=  24'h381531; //timing Y inc
      225 : reg_cmd_data <=  24'h380000; //HS 
      226 : reg_cmd_data <=  24'h380100; //HS 
      227 : reg_cmd_data <=  24'h380200; //VS 
      228 : reg_cmd_data <=  24'h380300; //VS 
      229 : reg_cmd_data <=  24'h38040a; //HW (HE),A3F->2623 
      230 : reg_cmd_data <=  24'h38053f; //HW (HE) 
      231 : reg_cmd_data <=  24'h380607; //VH (VE),79F->1951
      232 : reg_cmd_data <=  24'h38079f; //VH (VE)
      233 : reg_cmd_data <=  24'h380803; //DVPHO,3C0->960 
      234 : reg_cmd_data <=  24'h3809C0; //DVPHO 
      235 : reg_cmd_data <=  24'h380a03; //DVPVO 
      236 : reg_cmd_data <=  24'h380bC0; //DVPVO 
      237 : reg_cmd_data <=  24'h380c05; //HTS,5F8->1528 
      238 : reg_cmd_data <=  24'h380dF8; //HTS 
      239 : reg_cmd_data <=  24'h380e03; //VTS,3F0->1008 
      240 : reg_cmd_data <=  24'h380fF0; //VTS
      241 : reg_cmd_data <=  24'h381308; //timing V offset
      242 : reg_cmd_data <=  24'h361800;  
      243 : reg_cmd_data <=  24'h361229;  
      244 : reg_cmd_data <=  24'h370952;  
      245 : reg_cmd_data <=  24'h370c03;  
      246 : reg_cmd_data <=  24'h3a0202; //60Hz max exposure
      247 : reg_cmd_data <=  24'h3a03e0; //60Hz max exposure
      248 : reg_cmd_data <=  24'h3a1402; //50Hz max exposure
      249 : reg_cmd_data <=  24'h3a15e0; //50Hz max exposure
      250 : reg_cmd_data <=  24'h400402; //BLC line number
      251 : reg_cmd_data <=  24'h30021c; //reset JFIFO, SFIFO, JPG
      252 : reg_cmd_data <=  24'h3006c3; //disable clock of JPEG2x, JPEG
      253 : reg_cmd_data <=  24'h471303; //JPEG mode 3
      254 : reg_cmd_data <=  24'h440704; //Quantization scale
      255 : reg_cmd_data <=  24'h460b37;  
      256 : reg_cmd_data <=  24'h460c20;  
      257 : reg_cmd_data <=  24'h483716; //MIPI global timing
      258 : reg_cmd_data <=  24'h382404; //PCLK manual divider
      259 : reg_cmd_data <=  24'h500100; //SDE off, CMX off, AWB off
      260 : reg_cmd_data <=  24'h350303; //AEC/AGC off
           
      261 : reg_cmd_data <= {16'h3500, 4'h0,4'h8};   //Bit[3:0]: Exposure [19:16]
      262 : reg_cmd_data <= {16'h3501, 8'h00};   //Bit[7:0]: Exposure [15:8]
      263 : reg_cmd_data <= {16'h3502, 4'h0, 4'h0};   //Bit[7:0]: Exposure [7:0]
      264 : reg_cmd_data <= {16'h350A, 6'h0,2'h0};  //Bit[1:0]: Real gain[9:8]
      265 : reg_cmd_data <= {16'h350B, 8'h00};  //Bit[7:0]: Real gain[7:0]

      266 : reg_cmd_data <= 24'hFFFF0A; //dealy
      267 : reg_cmd_data <= 24'h300802; // wake up from standby, bit[6]

    default: reg_cmd_data <= 24'h000000; //pass;
    endcase      
end

文章评论0条评论)

登录后参与讨论
我要评论
0
17
关闭 站长推荐上一条 /2 下一条