OV5640介绍
OV5640 的寄存器配置是通过 FPGA 的 I2C(也称为 SCCB 接口)接口来配置,需要配置正确的寄存器值让 OV5640 输出我们需要的图像格式
OV5640 SCCB 的写传输协议如下图所示:
![]()
![]()
上图中的 ID ADDRESS 是由 7 位器件地址和 1 位读写控制位构成(0:写 1:读),OV5640 的器件地
址为 7’h3c,所以在写传输协议中,ID Address(W)= 8’h78(器件地址左移 1 位,低位补 0);Sub-address(H)
为高 8 位寄存器地址,Sub-address(L)为低 8 位寄存器地址,在 OV5640 众多寄存器中,有些寄存器是可改
写的,有些是只读的,只有可改写的寄存器才能正确写入;Write Data 为 8 位写数据,每一个寄存器地址对
应 8 位的配置数据。
下表是本程序用到的关键寄存器的配置说明
![]()
![]()
![]()
mcu200t连接ov5640说明
可以利用下图的PMOD数字接口连接ov5640
![]()
![]()
值得注意的是,需要注释掉system.v中的gpioB相关语句,同时修改管脚约束文件
//gpioB //inout wire [31:0] gpioB,//GPIOB00~GPIOB31 output cam_rst_n , output cam_pwdn , output wire cam_scl , inout wire cam_sda之后可以在顶层添加驱动模块,用于连接ov5640
//I2C配置模块 i2c_ov5640_rgb565_cfg u_i2c_cfg( .clk (i2c_dri_clk), .rst_n (ck_rst), .i2c_done (i2c_done), .i2c_data_r (i2c_data_r), .cmos_h_pixel (H_CMOS_DISP), .cmos_v_pixel (V_CMOS_DISP), .total_h_pixel (TOTAL_H_PIXEL), .total_v_pixel (TOTAL_V_PIXEL), .i2c_exec (i2c_exec), .i2c_data (i2c_data), .i2c_rh_wl (i2c_rh_wl), .init_done (cam_init_done) ); //I2C驱动模块i2c_dri #( .SLAVE_ADDR (SLAVE_ADDR), //参数传�?? .CLK_FREQ (CLK_FREQ ), .I2C_FREQ (I2C_FREQ ) ) u_i2c_dri( .clk (CLK100MHZ ), .rst_n (ck_rst ), //i2c interface .i2c_exec (i2c_exec ), .bit_ctrl (BIT_CTRL ), .i2c_rh_wl (i2c_rh_wl ), .i2c_addr (i2c_data[23:8]), .i2c_data_w (i2c_data[7:0]), .i2c_data_r (i2c_data_r), .i2c_done (i2c_done ), .i2c_ack (), .scl (cam_scl ), .sda (cam_sda ), //user interface .dri_clk (i2c_dri_clk) //I2C操作时钟);可以配置摄像头的LED等点亮
|