当前位置:   article > 正文

OV5640 自用资料

ov5640

 分辨率和速率(FPS)

寄存器配置

I/O 板的驱动能力和方向控制

 

system clock control

        OV5640 PLL 允许输入时钟频率范围为 6~27 MHz,最大 VCO 频率为 800 MHz。

        MipiClk 用于 MIPI,SysClk 用于图像信号处理 (ISP) 模块的内部时钟。

        可以通过将寄存器 0x​​3039[7] 设置为 1 来旁路 PLL

SCCB 接口(IIC)

        串行相机控制总线 (SCCB) 接口控制图像传感器操作。

        有关串行控制端口的详细用法,请参阅 OmniVision Technologies 串行摄像机控制总线 (SCCB) 规范。
        支持组写入,以便更新同一帧中的一组寄存器。这些寄存器保证在帧边界的内部锁存器之前被写入。
        OV5640 最多支持四个组。这些组共享 1 KB RAM,并且每个组的大小可通过调整起始地址进行编程。

        组保持起始地址范围为0x40~0x7F,单位为16字节。

IIC协议:

        数据传输协议符合I2C标准。启动、重复启动和停止条件以及数据传输协议在 I2C 规范 [PHIL01] 中指定。

消息类型

        基本 CCI 消息由 START 条件、带读/写位的从机地址、从机确认、指向从机设备内部寄存器的子地址(索引)、来自从机的确认信号、来自主机的写操作数据字节组成,来自从机的确认/否定确认和停止条件。在读操作中,数据字节来自从机,应答/否定应答来自主机。

        图 3 对此进行了说明。
        CCI 中的从机地址是 7 位。
        CCI 支持 8 位索引和 8 位数据或 16 位索引和 8 位数据。所讨论的从设备定义了使用什么消息类型。

        单字节地址和双字节地址(MIPI OV5640的地址为2字节地址)

SCCB ID

配置例程:DVP模式,代码来自正点原子

  1. //****************************************Copyright (c)***********************************//
  2. //原子哥在线教学平台:www.yuanzige.com
  3. //技术支持:www.openedv.com
  4. //淘宝店铺:http://openedv.taobao.com
  5. //关注微信公众平台微信号:"正点原子",免费获取ZYNQ & FPGA & STM32 & LINUX资料。
  6. //版权所有,盗版必究。
  7. //Copyright(C) 正点原子 2018-2028
  8. //All rights reserved
  9. //----------------------------------------------------------------------------------------
  10. // File name: i2c_ov5640_rgb565_cfg
  11. // Last modified Date: 2020/05/04 9:19:08
  12. // Last Version: V1.0
  13. // Descriptions: iic配置
  14. //
  15. //----------------------------------------------------------------------------------------
  16. // Created by: 正点原子
  17. // Created date: 2019/05/04 9:19:08
  18. // Version: V1.0
  19. // Descriptions: The original version
  20. //
  21. //----------------------------------------------------------------------------------------
  22. //****************************************************************************************//
  23. module i2c_ov5640_rgb565_cfg
  24. (
  25. input clk , //时钟信号
  26. input rst_n , //复位信号,低电平有效
  27. input [7:0] i2c_data_r, //I2C读出的数据
  28. input i2c_done , //I2C寄存器配置完成信号
  29. input [12:0] cmos_h_pixel ,
  30. input [12:0] cmos_v_pixel ,
  31. input [12:0] total_h_pixel, //水平总像素大小
  32. input [12:0] total_v_pixel, //垂直总像素大小
  33. output reg i2c_exec , //I2C触发执行信号
  34. output reg [23:0] i2c_data , //I2C要配置的地址与数据(高16位地址,低8位数据)
  35. output reg i2c_rh_wl, //I2C读写控制信号
  36. output reg init_done //初始化完成信号
  37. );
  38. //parameter define
  39. localparam REG_NUM = 8'd250 ; //总共需要配置的寄存器个数
  40. //reg define
  41. reg [12:0] start_init_cnt; //等待延时计数器
  42. reg [7:0] init_reg_cnt ; //寄存器配置个数计数器
  43. //*****************************************************
  44. //** main code
  45. //*****************************************************
  46. //clk时钟配置成250khz,周期为4us 5000*4us = 20ms
  47. //OV5640上电到开始配置IIC至少等待20ms
  48. always @(posedge clk or negedge rst_n) begin
  49. if(!rst_n)
  50. start_init_cnt <= 13'b0;
  51. else if(start_init_cnt < 13'd5000) begin
  52. start_init_cnt <= start_init_cnt + 1'b1;
  53. end
  54. end
  55. //寄存器配置个数计数
  56. always @(posedge clk or negedge rst_n) begin
  57. if(!rst_n)
  58. init_reg_cnt <= 8'd0;
  59. else if(i2c_exec)
  60. init_reg_cnt <= init_reg_cnt + 8'b1;
  61. end
  62. //i2c触发执行信号
  63. always @(posedge clk or negedge rst_n) begin
  64. if(!rst_n)
  65. i2c_exec <= 1'b0;
  66. else if(start_init_cnt == 13'd4999)
  67. i2c_exec <= 1'b1;
  68. else if(i2c_done && (init_reg_cnt < REG_NUM))
  69. i2c_exec <= 1'b1;
  70. else
  71. i2c_exec <= 1'b0;
  72. end
  73. //配置I2C读写控制信号
  74. always @(posedge clk or negedge rst_n) begin
  75. if(!rst_n)
  76. i2c_rh_wl <= 1'b1;
  77. else if(init_reg_cnt == 8'd2)
  78. i2c_rh_wl <= 1'b0;
  79. end
  80. //初始化完成信号
  81. always @(posedge clk or negedge rst_n) begin
  82. if(!rst_n)
  83. init_done <= 1'b0;
  84. else if((init_reg_cnt == REG_NUM) && i2c_done)
  85. init_done <= 1'b1;
  86. end
  87. //配置寄存器地址与数据
  88. always @(posedge clk or negedge rst_n) begin
  89. if(!rst_n)
  90. i2c_data <= 24'b0;
  91. else begin
  92. case(init_reg_cnt)
  93. //先对寄存器进行软件复位,使寄存器恢复初始值
  94. //寄存器软件复位后,需要延时1ms才能配置其它寄存器
  95. 8'd0 : i2c_data <= {16'h300a,8'h0}; //
  96. 8'd1 : i2c_data <= {16'h300b,8'h0}; //
  97. 8'd2 : i2c_data <= {16'h3008,8'h82}; //Bit[7]:复位 Bit[6]:电源休眠
  98. 8'd3 : i2c_data <= {16'h3008,8'h02}; //正常工作模式
  99. 8'd4 : i2c_data <= {16'h3103,8'h02}; //Bit[1]:1 PLL Clock
  100. //引脚输入/输出控制 FREX/VSYNC/HREF/PCLK/D[9:6]
  101. 8'd5 : i2c_data <= {8'h30,8'h17,8'hff};
  102. //引脚输入/输出控制 D[5:0]/GPIO1/GPIO0
  103. 8'd6 : i2c_data <= {16'h3018,8'hff};
  104. 8'd7 : i2c_data <= {16'h3037,8'h13}; //PLL分频控制
  105. 8'd8 : i2c_data <= {16'h3108,8'h01}; //系统根分频器
  106. 8'd9 : i2c_data <= {16'h3630,8'h36};
  107. 8'd10 : i2c_data <= {16'h3631,8'h0e};
  108. 8'd11 : i2c_data <= {16'h3632,8'he2};
  109. 8'd12 : i2c_data <= {16'h3633,8'h12};
  110. 8'd13 : i2c_data <= {16'h3621,8'he0};
  111. 8'd14 : i2c_data <= {16'h3704,8'ha0};
  112. 8'd15 : i2c_data <= {16'h3703,8'h5a};
  113. 8'd16 : i2c_data <= {16'h3715,8'h78};
  114. 8'd17 : i2c_data <= {16'h3717,8'h01};
  115. 8'd18 : i2c_data <= {16'h370b,8'h60};
  116. 8'd19 : i2c_data <= {16'h3705,8'h1a};
  117. 8'd20 : i2c_data <= {16'h3905,8'h02};
  118. 8'd21 : i2c_data <= {16'h3906,8'h10};
  119. 8'd22 : i2c_data <= {16'h3901,8'h0a};
  120. 8'd23 : i2c_data <= {16'h3731,8'h12};
  121. 8'd24 : i2c_data <= {16'h3600,8'h08}; //VCM控制,用于自动聚焦
  122. 8'd25 : i2c_data <= {16'h3601,8'h33}; //VCM控制,用于自动聚焦
  123. 8'd26 : i2c_data <= {16'h302d,8'h60}; //系统控制
  124. 8'd27 : i2c_data <= {16'h3620,8'h52};
  125. 8'd28 : i2c_data <= {16'h371b,8'h20};
  126. 8'd29 : i2c_data <= {16'h471c,8'h50};
  127. 8'd30 : i2c_data <= {16'h3a13,8'h43}; //AEC(自动曝光控制)
  128. 8'd31 : i2c_data <= {16'h3a18,8'h00}; //AEC 增益上限
  129. 8'd32 : i2c_data <= {16'h3a19,8'hf8}; //AEC 增益上限
  130. 8'd33 : i2c_data <= {16'h3635,8'h13};
  131. 8'd34 : i2c_data <= {16'h3636,8'h03};
  132. 8'd35 : i2c_data <= {16'h3634,8'h40};
  133. 8'd36 : i2c_data <= {16'h3622,8'h01};
  134. 8'd37 : i2c_data <= {16'h3c01,8'h34};
  135. 8'd38 : i2c_data <= {16'h3c04,8'h28};
  136. 8'd39 : i2c_data <= {16'h3c05,8'h98};
  137. 8'd40 : i2c_data <= {16'h3c06,8'h00}; //light meter 1 阈值[15:8]
  138. 8'd41 : i2c_data <= {16'h3c07,8'h08}; //light meter 1 阈值[7:0]
  139. 8'd42 : i2c_data <= {16'h3c08,8'h00}; //light meter 2 阈值[15:8]
  140. 8'd43 : i2c_data <= {16'h3c09,8'h1c}; //light meter 2 阈值[7:0]
  141. 8'd44 : i2c_data <= {16'h3c0a,8'h9c}; //sample number[15:8]
  142. 8'd45 : i2c_data <= {16'h3c0b,8'h40}; //sample number[7:0]
  143. 8'd46 : i2c_data <= {16'h3810,8'h00}; //Timing Hoffset[11:8]
  144. 8'd47 : i2c_data <= {16'h3811,8'h10}; //Timing Hoffset[7:0]
  145. 8'd48 : i2c_data <= {16'h3812,8'h00}; //Timing Voffset[10:8]
  146. 8'd49 : i2c_data <= {16'h3708,8'h64};
  147. 8'd50 : i2c_data <= {16'h4001,8'h02}; //BLC(黑电平校准)补偿起始行号
  148. 8'd51 : i2c_data <= {16'h4005,8'h1a}; //BLC(黑电平校准)补偿始终更新
  149. 8'd52 : i2c_data <= {16'h3000,8'h00}; //系统块复位控制
  150. 8'd53 : i2c_data <= {16'h3004,8'hff}; //时钟使能控制
  151. 8'd54 : i2c_data <= {16'h4300,8'h61}; //格式控制 RGB565
  152. 8'd55 : i2c_data <= {16'h501f,8'h01}; //ISP RGB
  153. 8'd56 : i2c_data <= {16'h440e,8'h00};
  154. 8'd57 : i2c_data <= {16'h5000,8'ha7}; //ISP控制
  155. 8'd58 : i2c_data <= {16'h3a0f,8'h30}; //AEC控制;stable range in high
  156. 8'd59 : i2c_data <= {16'h3a10,8'h28}; //AEC控制;stable range in low
  157. 8'd60 : i2c_data <= {16'h3a1b,8'h30}; //AEC控制;stable range out high
  158. 8'd61 : i2c_data <= {16'h3a1e,8'h26}; //AEC控制;stable range out low
  159. 8'd62 : i2c_data <= {16'h3a11,8'h60}; //AEC控制; fast zone high
  160. 8'd63 : i2c_data <= {16'h3a1f,8'h14}; //AEC控制; fast zone low
  161. //LENC(镜头校正)控制 16'h5800~16'h583d
  162. 8'd64 : i2c_data <= {16'h5800,8'h23};
  163. 8'd65 : i2c_data <= {16'h5801,8'h14};
  164. 8'd66 : i2c_data <= {16'h5802,8'h0f};
  165. 8'd67 : i2c_data <= {16'h5803,8'h0f};
  166. 8'd68 : i2c_data <= {16'h5804,8'h12};
  167. 8'd69 : i2c_data <= {16'h5805,8'h26};
  168. 8'd70 : i2c_data <= {16'h5806,8'h0c};
  169. 8'd71 : i2c_data <= {16'h5807,8'h08};
  170. 8'd72 : i2c_data <= {16'h5808,8'h05};
  171. 8'd73 : i2c_data <= {16'h5809,8'h05};
  172. 8'd74 : i2c_data <= {16'h580a,8'h08};
  173. 8'd75 : i2c_data <= {16'h580b,8'h0d};
  174. 8'd76 : i2c_data <= {16'h580c,8'h08};
  175. 8'd77 : i2c_data <= {16'h580d,8'h03};
  176. 8'd78 : i2c_data <= {16'h580e,8'h00};
  177. 8'd79 : i2c_data <= {16'h580f,8'h00};
  178. 8'd80 : i2c_data <= {16'h5810,8'h03};
  179. 8'd81 : i2c_data <= {16'h5811,8'h09};
  180. 8'd82 : i2c_data <= {16'h5812,8'h07};
  181. 8'd83 : i2c_data <= {16'h5813,8'h03};
  182. 8'd84 : i2c_data <= {16'h5814,8'h00};
  183. 8'd85 : i2c_data <= {16'h5815,8'h01};
  184. 8'd86 : i2c_data <= {16'h5816,8'h03};
  185. 8'd87 : i2c_data <= {16'h5817,8'h08};
  186. 8'd88 : i2c_data <= {16'h5818,8'h0d};
  187. 8'd89 : i2c_data <= {16'h5819,8'h08};
  188. 8'd90 : i2c_data <= {16'h581a,8'h05};
  189. 8'd91 : i2c_data <= {16'h581b,8'h06};
  190. 8'd92 : i2c_data <= {16'h581c,8'h08};
  191. 8'd93 : i2c_data <= {16'h581d,8'h0e};
  192. 8'd94 : i2c_data <= {16'h581e,8'h29};
  193. 8'd95 : i2c_data <= {16'h581f,8'h17};
  194. 8'd96 : i2c_data <= {16'h5820,8'h11};
  195. 8'd97 : i2c_data <= {16'h5821,8'h11};
  196. 8'd98 : i2c_data <= {16'h5822,8'h15};
  197. 8'd99 : i2c_data <= {16'h5823,8'h28};
  198. 8'd100: i2c_data <= {16'h5824,8'h46};
  199. 8'd101: i2c_data <= {16'h5825,8'h26};
  200. 8'd102: i2c_data <= {16'h5826,8'h08};
  201. 8'd103: i2c_data <= {16'h5827,8'h26};
  202. 8'd104: i2c_data <= {16'h5828,8'h64};
  203. 8'd105: i2c_data <= {16'h5829,8'h26};
  204. 8'd106: i2c_data <= {16'h582a,8'h24};
  205. 8'd107: i2c_data <= {16'h582b,8'h22};
  206. 8'd108: i2c_data <= {16'h582c,8'h24};
  207. 8'd109: i2c_data <= {16'h582d,8'h24};
  208. 8'd110: i2c_data <= {16'h582e,8'h06};
  209. 8'd111: i2c_data <= {16'h582f,8'h22};
  210. 8'd112: i2c_data <= {16'h5830,8'h40};
  211. 8'd113: i2c_data <= {16'h5831,8'h42};
  212. 8'd114: i2c_data <= {16'h5832,8'h24};
  213. 8'd115: i2c_data <= {16'h5833,8'h26};
  214. 8'd116: i2c_data <= {16'h5834,8'h24};
  215. 8'd117: i2c_data <= {16'h5835,8'h22};
  216. 8'd118: i2c_data <= {16'h5836,8'h22};
  217. 8'd119: i2c_data <= {16'h5837,8'h26};
  218. 8'd120: i2c_data <= {16'h5838,8'h44};
  219. 8'd121: i2c_data <= {16'h5839,8'h24};
  220. 8'd122: i2c_data <= {16'h583a,8'h26};
  221. 8'd123: i2c_data <= {16'h583b,8'h28};
  222. 8'd124: i2c_data <= {16'h583c,8'h42};
  223. 8'd125: i2c_data <= {16'h583d,8'hce};
  224. //AWB(自动白平衡控制) 16'h5180~16'h519e
  225. 8'd126: i2c_data <= {16'h5180,8'hff};
  226. 8'd127: i2c_data <= {16'h5181,8'hf2};
  227. 8'd128: i2c_data <= {16'h5182,8'h00};
  228. 8'd129: i2c_data <= {16'h5183,8'h14};
  229. 8'd130: i2c_data <= {16'h5184,8'h25};
  230. 8'd131: i2c_data <= {16'h5185,8'h24};
  231. 8'd132: i2c_data <= {16'h5186,8'h09};
  232. 8'd133: i2c_data <= {16'h5187,8'h09};
  233. 8'd134: i2c_data <= {16'h5188,8'h09};
  234. 8'd135: i2c_data <= {16'h5189,8'h75};
  235. 8'd136: i2c_data <= {16'h518a,8'h54};
  236. 8'd137: i2c_data <= {16'h518b,8'he0};
  237. 8'd138: i2c_data <= {16'h518c,8'hb2};
  238. 8'd139: i2c_data <= {16'h518d,8'h42};
  239. 8'd140: i2c_data <= {16'h518e,8'h3d};
  240. 8'd141: i2c_data <= {16'h518f,8'h56};
  241. 8'd142: i2c_data <= {16'h5190,8'h46};
  242. 8'd143: i2c_data <= {16'h5191,8'hf8};
  243. 8'd144: i2c_data <= {16'h5192,8'h04};
  244. 8'd145: i2c_data <= {16'h5193,8'h70};
  245. 8'd146: i2c_data <= {16'h5194,8'hf0};
  246. 8'd147: i2c_data <= {16'h5195,8'hf0};
  247. 8'd148: i2c_data <= {16'h5196,8'h03};
  248. 8'd149: i2c_data <= {16'h5197,8'h01};
  249. 8'd150: i2c_data <= {16'h5198,8'h04};
  250. 8'd151: i2c_data <= {16'h5199,8'h12};
  251. 8'd152: i2c_data <= {16'h519a,8'h04};
  252. 8'd153: i2c_data <= {16'h519b,8'h00};
  253. 8'd154: i2c_data <= {16'h519c,8'h06};
  254. 8'd155: i2c_data <= {16'h519d,8'h82};
  255. 8'd156: i2c_data <= {16'h519e,8'h38};
  256. //Gamma(伽马)控制 16'h5480~16'h5490
  257. 8'd157: i2c_data <= {16'h5480,8'h01};
  258. 8'd158: i2c_data <= {16'h5481,8'h08};
  259. 8'd159: i2c_data <= {16'h5482,8'h14};
  260. 8'd160: i2c_data <= {16'h5483,8'h28};
  261. 8'd161: i2c_data <= {16'h5484,8'h51};
  262. 8'd162: i2c_data <= {16'h5485,8'h65};
  263. 8'd163: i2c_data <= {16'h5486,8'h71};
  264. 8'd164: i2c_data <= {16'h5487,8'h7d};
  265. 8'd165: i2c_data <= {16'h5488,8'h87};
  266. 8'd166: i2c_data <= {16'h5489,8'h91};
  267. 8'd167: i2c_data <= {16'h548a,8'h9a};
  268. 8'd168: i2c_data <= {16'h548b,8'haa};
  269. 8'd169: i2c_data <= {16'h548c,8'hb8};
  270. 8'd170: i2c_data <= {16'h548d,8'hcd};
  271. 8'd171: i2c_data <= {16'h548e,8'hdd};
  272. 8'd172: i2c_data <= {16'h548f,8'hea};
  273. 8'd173: i2c_data <= {16'h5490,8'h1d};
  274. //CMX(彩色矩阵控制) 16'h5381~16'h538b
  275. 8'd174: i2c_data <= {16'h5381,8'h1e};
  276. 8'd175: i2c_data <= {16'h5382,8'h5b};
  277. 8'd176: i2c_data <= {16'h5383,8'h08};
  278. 8'd177: i2c_data <= {16'h5384,8'h0a};
  279. 8'd178: i2c_data <= {16'h5385,8'h7e};
  280. 8'd179: i2c_data <= {16'h5386,8'h88};
  281. 8'd180: i2c_data <= {16'h5387,8'h7c};
  282. 8'd181: i2c_data <= {16'h5388,8'h6c};
  283. 8'd182: i2c_data <= {16'h5389,8'h10};
  284. 8'd183: i2c_data <= {16'h538a,8'h01};
  285. 8'd184: i2c_data <= {16'h538b,8'h98};
  286. //SDE(特殊数码效果)控制 16'h5580~16'h558b
  287. 8'd185: i2c_data <= {16'h5580,8'h06};
  288. 8'd186: i2c_data <= {16'h5583,8'h40};
  289. 8'd187: i2c_data <= {16'h5584,8'h10};
  290. 8'd188: i2c_data <= {16'h5589,8'h10};
  291. 8'd189: i2c_data <= {16'h558a,8'h00};
  292. 8'd190: i2c_data <= {16'h558b,8'hf8};
  293. 8'd191: i2c_data <= {16'h501d,8'h40}; //ISP MISC
  294. //CIP(颜色插值)控制 (16'h5300~16'h530c)
  295. 8'd192: i2c_data <= {16'h5300,8'h08};
  296. 8'd193: i2c_data <= {16'h5301,8'h30};
  297. 8'd194: i2c_data <= {16'h5302,8'h10};
  298. 8'd195: i2c_data <= {16'h5303,8'h00};
  299. 8'd196: i2c_data <= {16'h5304,8'h08};
  300. 8'd197: i2c_data <= {16'h5305,8'h30};
  301. 8'd198: i2c_data <= {16'h5306,8'h08};
  302. 8'd199: i2c_data <= {16'h5307,8'h16};
  303. 8'd200: i2c_data <= {16'h5309,8'h08};
  304. 8'd201: i2c_data <= {16'h530a,8'h30};
  305. 8'd202: i2c_data <= {16'h530b,8'h04};
  306. 8'd203: i2c_data <= {16'h530c,8'h06};
  307. 8'd204: i2c_data <= {16'h5025,8'h00};
  308. //系统时钟分频 Bit[7:4]:系统时钟分频 input clock =24Mhz, PCLK = 48Mhz
  309. 8'd205: i2c_data <= {16'h3035,8'h11};
  310. 8'd206: i2c_data <= {16'h3036,8'h3c}; //PLL倍频
  311. 8'd207: i2c_data <= {16'h3c07,8'h08};
  312. //时序控制 16'h3800~16'h3821
  313. 8'd208: i2c_data <= {16'h3820,8'h46};
  314. 8'd209: i2c_data <= {16'h3821,8'h01};
  315. 8'd210: i2c_data <= {16'h3814,8'h31};
  316. 8'd211: i2c_data <= {16'h3815,8'h31};
  317. 8'd212: i2c_data <= {16'h3800,8'h00};
  318. 8'd213: i2c_data <= {16'h3801,8'h00};
  319. 8'd214: i2c_data <= {16'h3802,8'h00};
  320. 8'd215: i2c_data <= {16'h3803,8'h04};
  321. 8'd216: i2c_data <= {16'h3804,8'h0a};
  322. 8'd217: i2c_data <= {16'h3805,8'h3f};
  323. 8'd218: i2c_data <= {16'h3806,8'h07};
  324. 8'd219: i2c_data <= {16'h3807,8'h9b};
  325. //设置输出像素个数
  326. //DVP 输出水平像素点数高4位
  327. 8'd220: i2c_data <= {16'h3808,{4'd0,cmos_h_pixel[11:8]}};
  328. //DVP 输出水平像素点数低8位
  329. 8'd221: i2c_data <= {16'h3809,cmos_h_pixel[7:0]};
  330. //DVP 输出垂直像素点数高3位
  331. 8'd222: i2c_data <= {16'h380a,{5'd0,cmos_v_pixel[10:8]}};
  332. //DVP 输出垂直像素点数低8位
  333. 8'd223: i2c_data <= {16'h380b,cmos_v_pixel[7:0]};
  334. //水平总像素大小高5位
  335. 8'd224: i2c_data <= {16'h380c,{3'd0,total_h_pixel[12:8]}};
  336. //水平总像素大小低8位
  337. 8'd225: i2c_data <= {16'h380d,total_h_pixel[7:0]};
  338. //垂直总像素大小高5位
  339. 8'd226: i2c_data <= {16'h380e,{3'd0,total_v_pixel[12:8]}};
  340. //垂直总像素大小低8位
  341. 8'd227: i2c_data <= {16'h380f,total_v_pixel[7:0]};
  342. 8'd228: i2c_data <= {16'h3813,8'h06};
  343. 8'd229: i2c_data <= {16'h3618,8'h00};
  344. 8'd230: i2c_data <= {16'h3612,8'h29};
  345. 8'd231: i2c_data <= {16'h3709,8'h52};
  346. 8'd232: i2c_data <= {16'h370c,8'h03};
  347. 8'd233: i2c_data <= {16'h3a02,8'h17}; //60Hz max exposure
  348. 8'd234: i2c_data <= {16'h3a03,8'h10}; //60Hz max exposure
  349. 8'd235: i2c_data <= {16'h3a14,8'h17}; //50Hz max exposure
  350. 8'd236: i2c_data <= {16'h3a15,8'h10}; //50Hz max exposure
  351. 8'd237: i2c_data <= {16'h4004,8'h02}; //BLC(背光) 2 lines
  352. 8'd238: i2c_data <= {16'h4713,8'h03}; //JPEG mode 3
  353. 8'd239: i2c_data <= {16'h4407,8'h04}; //量化标度
  354. 8'd240: i2c_data <= {16'h460c,8'h22};
  355. 8'd241: i2c_data <= {16'h4837,8'h22}; //DVP CLK divider
  356. 8'd242: i2c_data <= {16'h3824,8'h02}; //DVP CLK divider
  357. 8'd243: i2c_data <= {16'h5001,8'ha3}; //ISP 控制
  358. 8'd244: i2c_data <= {16'h3b07,8'h0a}; //帧曝光模式
  359. //彩条测试使能
  360. 8'd245: i2c_data <= {16'h503d,8'h00}; //8'h00:正常模式 8'h80:彩条显示
  361. //测试闪光灯功能
  362. 8'd246: i2c_data <= {16'h3016,8'h02};
  363. 8'd247: i2c_data <= {16'h301c,8'h02};
  364. 8'd248: i2c_data <= {16'h3019,8'h02}; //打开闪光灯
  365. 8'd249: i2c_data <= {16'h3019,8'h00}; //关闭闪光灯
  366. //只读存储器,防止在case中没有列举的情况,之前的寄存器被重复改写
  367. default : i2c_data <= {16'h300a,8'h00}; //器件ID高8位
  368. endcase
  369. end
  370. end
  371. endmodule

配置仅提供标题,自己查起来比较方便

输出格式:format description

 

ISP format应该要对齐吧?

重要:分辨率

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/567737
推荐阅读
相关标签
  

闽ICP备14008679号