ov5640是FPGA用来做图像处理最常用的摄像头,网上的资料也很多
OV5640在淘宝卖的比较贵正点的需要150多块,但是现在资源很多,摄像头和底板都可以单买价格在30左右,大大减少了学习成本,当然也可以买现成的只是没有闪光灯(这个现成的是自带晶振的引脚和正点的是一样的)
摄像头采集工作步骤:
摄像头配置——》数据采集——》DMA——》HDMI显示
这篇主要介绍配置和驱动摄像头采集数据
初步认识一下OV5640,下图箭头标出了我们需要关注的基本信息来源手册(OV5640_CSP3_DS_2.01_Ruisipusheng)
再之后是需要关注的寄存器:
0x4000 图像数据输出格式
0x3808,0x3809 对应的是一行像素有效个数(0x3808配置高位,0x3809配置地位)
0x380a,0x380b 对应有多少行有效
0x380c,0x380d 对应一行总输出的像素个数(具体参数需查手册)
0x3803,0x3803 对应总的有多少行输出
//8位数据转16位RGB565数据
always @(posedge cam_pclk or negedge rst_n) begin
if(!rst_n) begin
cmos_data_t <= 16'd0;
cam_data_d0 <= 8'd0;
byte_flag <= 1'b0;
end
else if(cam_href) begin
byte_flag <= ~byte_flag;
cam_data_d0 <= cam_data;
if(byte_flag)
cmos_data_t <= {cam_data_d0,cam_data};
else;
end
else begin
byte_flag <= 1'b0;
cam_data_d0 <= 8'b0;
end
end