当前位置: 首页 > news >正文

Tang Prime 20K板OV5640例程

Tang Primer 20K是由开源硬件厂商SiPEED矽速科技推出,是一款以 GW2A-LV18PG256C8/I7 为主芯片的核心板,准备了 2 个扩展板,Dock 和 Lite。板卡包含有HDMI输出,DVP接口(外接OV2640/OV5640摄像头)。另外JTAG下载器已集成在板上,只需一根USB Type-C的线就可以实现下载调试,板卡供电也是依靠这条Type-C的线。板卡相关资料可参考官方网址:https://wiki.sipeed.com/hardware/en/tang/tang-primer-20k/primer-20k.html
在这里插入图片描述

运行camera_hdmi例程
(1)程序主要结构框图
在这里插入图片描述
在这里插入图片描述

(2)OV5640摄像头和OV2640摄像头接口一样,但寄存器配置存在不同。
在这里插入图片描述

主要是I2c寄存器设置发生改变,OV2640的寄存器地址是8bit,OV5640的寄存器地址是16bit。
以下是OV5640的寄存器设置,RGB565输出。

module sccb_Registers #
(parameter HACT 		= 12'd1280,parameter VACT 		= 12'd720 ,parameter HTOL  	= 13'd1892,parameter VTOL  	= 13'd740 
)
(input 			clk, input 			rst, input 			advance, output [23:0] 	command, output 			finished
);// Internal signals
reg [23:0] sreg;
reg finished_temp;
reg [9:0] address = 10'd0;// Assign values to outputs
assign command = sreg; 
assign finished = finished_temp;// When register and value is FFFF
// a flag is asserted indicating the configuration is finished
always @ (sreg) beginif(sreg == 24'hFFFFFF) beginfinished_temp <= 1'b1;endelse beginfinished_temp <= 1'b0;end
end// Get value out of the LUT
always @ (posedge clk) beginif(rst == 1'b1) begin           // reset the configurationaddress <= 10'd0;endelse if(advance == 1'b1) begin     // Get the next valueaddress <= address+1'b1;endcase (address) 000     : sreg <= 24'h3008_02;001     : sreg <= 24'h3103_02;002     : sreg <= 24'h3017_ff;003     : sreg <= 24'h3018_ff;004     : sreg <= 24'h3037_13;005     : sreg <= 24'h3108_01;006     : sreg <= 24'h3630_36;007     : sreg <= 24'h3631_0e;008     : sreg <= 24'h3632_e2;009     : sreg <= 24'h3633_12;010     : sreg <= 24'h3621_e0;011     : sreg <= 24'h3704_a0;012     : sreg <= 24'h3703_5a;013     : sreg <= 24'h3715_78;014     : sreg <= 24'h3717_01;015     : sreg <= 24'h370b_60;016     : sreg <= 24'h3705_1a;017     : sreg <= 24'h3905_02;018     : sreg <= 24'h3906_10;019     : sreg <= 24'h3901_0a;020     : sreg <= 24'h3731_12;021     : sreg <= 24'h3600_08;022     : sreg <= 24'h3601_33;023     : sreg <= 24'h302d_60;024     : sreg <= 24'h3620_52;025     : sreg <= 24'h371b_20;026     : sreg <= 24'h471c_50;027     : sreg <= 24'h3a13_43;028     : sreg <= 24'h3a18_00;029     : sreg <= 24'h3a19_f8;030     : sreg <= 24'h3635_13;031     : sreg <= 24'h3636_03;032     : sreg <= 24'h3634_40;033     : sreg <= 24'h3622_01;034     : sreg <= 24'h3c01_34;035     : sreg <= 24'h3c04_28;036     : sreg <= 24'h3c05_98;037     : sreg <= 24'h3c06_00;038     : sreg <= 24'h3c07_07;039     : sreg <= 24'h3c08_00;040     : sreg <= 24'h3c09_1c;041     : sreg <= 24'h3c0a_9c;042     : sreg <= 24'h3c0b_40;043     : sreg <= 24'h3810_00;044     : sreg <= 24'h3811_10;045     : sreg <= 24'h3812_00;046     : sreg <= 24'h3708_64;047     : sreg <= 24'h4001_02;048     : sreg <= 24'h4005_1a;049     : sreg <= 24'h3000_00;050     : sreg <= 24'h3004_ff;051     : sreg <= 24'h4300_61;052     : sreg <= 24'h501f_01;053     : sreg <= 24'h440e_00;054     : sreg <= 24'h5000_a7;055     : sreg <= 24'h3a0f_30;056     : sreg <= 24'h3a10_28;057     : sreg <= 24'h3a1b_30;058     : sreg <= 24'h3a1e_26;059     : sreg <= 24'h3a11_60;060     : sreg <= 24'h3a1f_14;061     : sreg <= 24'h5800_23;062     : sreg <= 24'h5801_14;063     : sreg <= 24'h5802_0f;064     : sreg <= 24'h5803_0f;065     : sreg <= 24'h5804_12;066     : sreg <= 24'h5805_26;067     : sreg <= 24'h5806_0c;068     : sreg <= 24'h5807_08;069     : sreg <= 24'h5808_05;070     : sreg <= 24'h5809_05;071     : sreg <= 24'h580a_08;072     : sreg <= 24'h580b_0d;073     : sreg <= 24'h580c_08;074     : sreg <= 24'h580d_03;075     : sreg <= 24'h580e_00;076     : sreg <= 24'h580f_00;077     : sreg <= 24'h5810_03;078     : sreg <= 24'h5811_09;079     : sreg <= 24'h5812_07;080     : sreg <= 24'h5813_03;081     : sreg <= 24'h5814_00;082     : sreg <= 24'h5815_01;083     : sreg <= 24'h5816_03;084     : sreg <= 24'h5817_08;085     : sreg <= 24'h5818_0d;086     : sreg <= 24'h5819_08;087     : sreg <= 24'h581a_05;088     : sreg <= 24'h581b_06;089     : sreg <= 24'h581c_08;090     : sreg <= 24'h581d_0e;091     : sreg <= 24'h581e_29;092     : sreg <= 24'h581f_17;093     : sreg <= 24'h5820_11;094     : sreg <= 24'h5821_11;095     : sreg <= 24'h5822_15;096     : sreg <= 24'h5823_28;097     : sreg <= 24'h5824_46;098     : sreg <= 24'h5825_26;099     : sreg <= 24'h5826_08;100     : sreg <= 24'h5827_26;101     : sreg <= 24'h5828_64;102     : sreg <= 24'h5829_26;103     : sreg <= 24'h582a_24;104     : sreg <= 24'h582b_22;105     : sreg <= 24'h582c_24;106     : sreg <= 24'h582d_24;107     : sreg <= 24'h582e_06;108     : sreg <= 24'h582f_22;109     : sreg <= 24'h5830_40;110     : sreg <= 24'h5831_42;111     : sreg <= 24'h5832_24;112     : sreg <= 24'h5833_26;113     : sreg <= 24'h5834_24;114     : sreg <= 24'h5835_22;115     : sreg <= 24'h5836_22;116     : sreg <= 24'h5837_26;117     : sreg <= 24'h5838_44;118     : sreg <= 24'h5839_24;119     : sreg <= 24'h583a_26;120     : sreg <= 24'h583b_28;121     : sreg <= 24'h583c_42;122     : sreg <= 24'h583d_ce;123     : sreg <= 24'h5180_ff;124     : sreg <= 24'h5181_f2;125     : sreg <= 24'h5182_00;126     : sreg <= 24'h5183_14;127     : sreg <= 24'h5184_25;128     : sreg <= 24'h5185_24;129     : sreg <= 24'h5186_09;130     : sreg <= 24'h5187_09;131     : sreg <= 24'h5188_09;132     : sreg <= 24'h5189_75;133     : sreg <= 24'h518a_54;134     : sreg <= 24'h518b_e0;135     : sreg <= 24'h518c_b2;136     : sreg <= 24'h518d_42;137     : sreg <= 24'h518e_3d;138     : sreg <= 24'h518f_56;139     : sreg <= 24'h5190_46;140     : sreg <= 24'h5191_f8;141     : sreg <= 24'h5192_04;142     : sreg <= 24'h5193_70;143     : sreg <= 24'h5194_f0;144     : sreg <= 24'h5195_f0;145     : sreg <= 24'h5196_03;146     : sreg <= 24'h5197_01;147     : sreg <= 24'h5198_04;148     : sreg <= 24'h5199_12;149     : sreg <= 24'h519a_04;150     : sreg <= 24'h519b_00;151     : sreg <= 24'h519c_06;152     : sreg <= 24'h519d_82;153     : sreg <= 24'h519e_38;154     : sreg <= 24'h5480_01;155     : sreg <= 24'h5481_08;156     : sreg <= 24'h5482_14;157     : sreg <= 24'h5483_28;158     : sreg <= 24'h5484_51;159     : sreg <= 24'h5485_65;160     : sreg <= 24'h5486_71;161     : sreg <= 24'h5487_7d;162     : sreg <= 24'h5488_87;163     : sreg <= 24'h5489_91;164     : sreg <= 24'h548a_9a;165     : sreg <= 24'h548b_aa;166     : sreg <= 24'h548c_b8;167     : sreg <= 24'h548d_cd;168     : sreg <= 24'h548e_dd;169     : sreg <= 24'h548f_ea;170     : sreg <= 24'h5490_1d;171     : sreg <= 24'h5381_1e;172     : sreg <= 24'h5382_5b;173     : sreg <= 24'h5383_08;174     : sreg <= 24'h5384_0a;175     : sreg <= 24'h5385_7e;176     : sreg <= 24'h5386_88;177     : sreg <= 24'h5387_7c;178     : sreg <= 24'h5388_6c;179     : sreg <= 24'h5389_10;180     : sreg <= 24'h538a_01;181     : sreg <= 24'h538b_98;182     : sreg <= 24'h5580_06;183     : sreg <= 24'h5583_40;184     : sreg <= 24'h5584_10;185     : sreg <= 24'h5589_10;186     : sreg <= 24'h558a_00;187     : sreg <= 24'h558b_f8;188     : sreg <= 24'h501d_40;189     : sreg <= 24'h5300_08;190     : sreg <= 24'h5301_30;191     : sreg <= 24'h5302_10;192     : sreg <= 24'h5303_00;193     : sreg <= 24'h5304_08;194     : sreg <= 24'h5305_30;195     : sreg <= 24'h5306_08;196     : sreg <= 24'h5307_16;197     : sreg <= 24'h5309_08;198     : sreg <= 24'h530a_30;199     : sreg <= 24'h530b_04;200     : sreg <= 24'h530c_06;201     : sreg <= 24'h5025_00;202     : sreg <= 24'h3035_11; //系统时钟分频 //41:15fps, 21:30Fps, 11:60Fps203     : sreg <= 24'h3036_69; //PLL倍频 , 4:3 use 69 , else 72204     : sreg <= 24'h3c07_08;205     : sreg <= 24'h3820_41; //Sensor vflip, 47=N, 41=T, 上下翻转206     : sreg <= 24'h3821_01; //Sensor mirror, 01=N, 07=T, 左右翻转207     : sreg <= 24'h3814_31; // timing X inc208     : sreg <= 24'h3815_31; // timing Y inc209     : sreg <= 24'h3800_00;	//TIMING HS start210     : sreg <= 24'h3801_00;211     : sreg <= 24'h3802_00;212     : sreg <= 24'h3803_fa;	//4:3 use 04 , else fa213     : sreg <= 24'h3804_0a;214     : sreg <= 24'h3805_3f;215     : sreg <= 24'h3806_06;	//4:3 use 07 , else 06216     : sreg <= 24'h3807_a9; //4:3 use 9b , else a9217     : sreg <= {16'h3808, 4'd0, HACT[11:8]};	//DVP 输出水平像素点数高4位218     : sreg <= {16'h3809, HACT[7:0]};		//DVP 输出水平像素点数低8位219     : sreg <= {16'h380a, 4'd0, VACT[11:8]};	//DVP 输出垂直像素点数高3位220     : sreg <= {16'h380b, VACT[7:0]};		//DVP 输出垂直像素点数低8位221     : sreg <= {16'h380c, 3'd0, HTOL[12:8]};	//水平总像素大小高5位222     : sreg <= {16'h380d, HTOL[7:0]};			//水平总像素大小低8位223     : sreg <= {16'h380e, 3'd0, VTOL[12:8]};	//垂直总像素大小高5位224     : sreg <= {16'h380f, VTOL[7:0]};			//垂直总像素大小低8位225     : sreg <= 24'h3813_04;	//4:3 use 06 , else 04226     : sreg <= 24'h3618_00;227     : sreg <= 24'h3612_29;228     : sreg <= 24'h3709_52;229     : sreg <= 24'h370c_03;230     : sreg <= 24'h3a02_17;231     : sreg <= 24'h3a03_10;232     : sreg <= 24'h3a14_17;233     : sreg <= 24'h3a15_10;234     : sreg <= 24'h4004_02;235     : sreg <= 24'h4713_03; 236     : sreg <= 24'h4407_04;237     : sreg <= 24'h460c_20;238     : sreg <= 24'h4837_22;239     : sreg <= 24'h3824_02;240     : sreg <= 24'h5001_83;//4:3 use a3 , else 83241     : sreg <= 24'h3b07_0a;242     : sreg <= 24'h503d_00; //彩条测试使能 //0x00:正常模式 0x80:彩条显示243     : sreg <= 24'h3016_00;	//闪光灯禁用 //Disable244     : sreg <= 24'h301c_00;245     : sreg <= 24'h3019_00;//关闭闪光灯246     : sreg <= 24'h3031_08;//Bypass regulator247     : sreg <= 24'h302c_C2;//output drive 4x248     : sreg <= 24'hffff_ff;default : sreg <= 24'hFFFF_FF;    // End configurationendcase  
end endmodule
http://www.dtcms.com/a/308556.html

相关文章:

  • 【软件架构】八大架构解析
  • 点控云数据洞察智能体:让汽车行业决策有据可循,让业务增长稳健前行
  • OpenCV 的 Mat 类详解
  • 亚马逊自然流量增长密码:从算法逻辑到运营体系的全维度解析
  • WSL配置网络说明
  • 太阳光模拟器测试包装材料的耐候性
  • SUID/SGID是啥?如何让普通用户拥有root的能力?
  • WinForm之CheckBox 控件
  • Conda环境下配置的基本命令
  • 【Android】PopupWindow实现长按菜单
  • 难以逾越的夏天
  • 小架构step系列31:处理异常
  • documentPictureInPicture API 教程
  • IK 字段级别词典的升级之路
  • 14day-ai入门-人工智能基础学习-OpenCV-图像预处理4
  • 2683. 相邻值的按位异或
  • GXHT30温湿度传感器可兼容SHT30
  • NMOS防反接电路分析
  • [特殊字符] 数字孪生 + 数据可视化:实战经验分享,让物理世界数据 “会说话”
  • ubuntu18.04 部署nfs服务
  • 第15届蓝桥杯C++青少组中级组选拔赛(STEMA)2024年3月10日真题
  • Java与MySQL AES加密解密实战指南
  • pytest vs unittest: 区别与优缺点比较
  • #C语言——学习攻略:深挖指针路线(五)--回调函数,qsort函数,qsort函数的模拟实现
  • ACOSRAR改进连续蚁群算法用于优化复杂环境下无人机路径规划,Matlab代码实现
  • 中烟创新参编的《软件和信息技术服务行业企业环境社会治理信息披露指南》标准正式发布
  • 树形DP-核心基础
  • 《质光相济:Three.js中3D视觉的底层交互逻辑》
  • 直击WAIC | 百度袁佛玉:加速具身智能技术及产品研发,助力场景应用多样化落地
  • 虚幻基础:模型穿模