OV5640摄像头配置(1)上电复位配置

OV5640摄像头配置(1)上电复位配置

1.引脚信息

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

OV5640 的视频输出接口共有10位,D[9:0]。当输出为10-bit RGB raw格式时,使用D[9:0]。当输出格式为8-bit YCbCr或8-bit RGB raw 和 8-bit RGB 565 时, 使用 D[9:2]。同步信号Href和Hsync使用同一引脚 Href。通过I2C设置可选择此引脚为Href或Hsync信号。SIO_C 以及 SIO_D 总线需外接上拉电阻,标准上拉电阻阻值为5.1K欧姆。RESETB引脚低有效,且内置上拉电阻。RESETB引脚需由后端芯片控制以得到合适的上电时序。PWDN引脚高有效,且内置下拉电阻。PWDN 引脚需由后端芯片控制以得到合适的上电时序。
在这里插入图片描述

t0:≥0毫秒,从DOVDD 到 AVDD 。
t2:≥5毫秒, 从 AVDD 到传感器上电。
t3:≥1毫秒, 摄像头上电到 ResetB 拉高。
t4:≥20毫秒, ResetB到 SCCB 初始化。(至此才可以开始对摄像头进行配置)

D0VDD&AVDD在硬件内部已经配置好了的,固定了状态,我们只需要配置PWDN和RESETB就可以了
感光矩阵:光信号在这里转化为电信号,经过各种处理后,这些电信号会转化为数字信号,然后存储成由一个个像素点表示的数字图像。
控制信号及时钟:控制PWD、RESET两个信号按上电时序要求变化,进而完成寄存器的配置。PCLK、HREF及VSYNC分别是像素同步时钟、行同步信号和帧同步信号,XCLK是外部时钟,由FPGA中的锁相环产生,而PCLK是OV5640输出数据时的同步时钟。

3. 代码

module power_ctrl(
input           sclk,
input           s_rst_n,

output   wire   ov5640_pwdn,
output   wire   ov5640_rst_n,

output  wire    power_done//上电复位完成信号,可以开始配置了
);





localparam  DELAY_6MS=30_0000;
localparam  DELAY_2MS=10_0000;
localparam  DELAY_21MS=105_0000;

reg [18:0]  cnt_6ms;
reg [16:0]  cnt_2ms;
reg [20:0]  cnt_21ms;

always@(posedge sclk or negedge s_rst_n)begin
    if(!s_rst_n)
        cnt_6ms<=    'd0;
    else if(ov5640_pwdn)
        cnt_6ms<=   cnt_6ms+1'b1;
end
assign ov5640_pwdn  =   (cnt_21ms>=DELAY_6MS)?      1'b1:1'b0;

always@(posedge sclk or negedge s_rst_n)begin
    if(!s_rst_n)
        cnt_2ms<=    'd0;
    else if(ov5640_rst_n==1'b0  &&  ov5640_pwdn==1'b0)
        cnt_2ms<=   cnt_2ms+1'b1;
end
assign ov5640_rst_n =   (cnt_21ms>=DELAY_2MS)?      1'b1:1'b0;

always@(posedge sclk or negedge s_rst_n)begin
    if(!s_rst_n)
        cnt_21ms<=    'd0;
    else if(ov5640_rst_n==1'b1)
        cnt_21ms<=   cnt_21ms+1'b1;
end

assign power_done   =   (cnt_21ms>=DELAY_21MS)?     1'b1:1'b0;

endmodule

4.验证

`timescale  1ns/1ns

module tb_power_ctrl;

reg sclk;
reg s_rst_n;

initial begin
    sclk    =   1;
    s_rst_n =   0;
    
    #1000
    
    s_rst_n =   1;
end

always  #10  sclk=   ~sclk;

power_ctrl power_ctrl_inst(
.sclk           (sclk),
.s_rst_n        (s_rst_n),

.ov5640_pwdn    (),
.ov5640_rst_n   (),

.power_done     ()
);


endmodule

仿真结果出的太慢了,图太密集,不放了。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值