ov5640分辨率调整傻瓜攻略verilog版
某verilog菜狗最近开始研究摄像头了,查了很多资料说的都太高级了,这里记录一下一些非常简单的傻瓜都能看懂的ov5640调整分辨率的方式
在你的代码中找到如下字段(长得差不多就行),主要是看后面的24位数据。
在这24位数据里面,其中前16位为你需要调整的参数的地址(不同参数的具体地址可以通过查询ov5640的datasheet得到,在这里我们只列出需要调整的参数地址),后8位为你需要调整的数值。
-
10'd223: lut_data <= {8'h78 , 24'h38080A};//水平宽度高字节[11:8],默认值为0A
-
10'd224: lut_data <= {8'h78 , 24'h380920};//水平宽度低字节[7:0],默认值为20
-
10'd225: lut_data <= {8'h78 , 24'h380a07};//垂直高度高字节[10:8],默认值为07
-
10'd226: lut_data <= {8'h78 , 24'h380b98};//垂直高度低字节[7:0],默认值为98
如上所示,0x3808,0x3809,0x380a,0x380b分别为需要的视频分辨率的水平和垂直高低字节。
ov5640的分辨率默认值为QSXGA,即2592x1944
(注1:这里垂直高度比水平宽度的高位字节要少一位,大概是因为一般需求的都是横屏吧,注意调整数值的时候不要超过上限)
(注2:ov5640的这四个参数的默认值为该硬件支持的最大分辨率,只要调整的时候不要超过默认值就行。)
举个例子,假设现在我们需要调整ov5640的分辨率至640x480,在某些例程里都会有这个调整,但是很多人可能跟我一样一开始看着那一堆十六进制数压根不知道到底是怎么搞的。
事实上,只需要将所需要的分辨率从十进制转换为十六进制的数后,再根据高低位分别填入上面的四个参数对应的数值中就行了。
eg:
十进制 |
十六进制 |
640 |
0280 |
480 |
01e0 |
然后我们将上面的代码每个参数的后两位的0A改成02,20改成80,07改成01,98改成e0:
-
10'd223: lut_data <= {8'h78 , 24'h380802};//水平宽度高字节[11:8],默认值为0A
-
10'd224: lut_data <= {8'h78 , 24'h380980};//水平宽度低字节[7:0],默认值为20
-
10'd225: lut_data <= {8'h78 , 24'h380a01};//垂直高度高字节[10:8],默认值为07
-
10'd226: lut_data <= {8'h78 , 24'h380be0};//垂直高度低字节[7:0],默认值为98
即将原来的0A20x0798(2592x1944)变为0280x01e0(640x480)
其他的分辨率也可以按照这个方式修改,只要不超出硬件的最大分辨率就行。
现在你已经学会了如何修改ov5640的分辨率大小了,快去写一个在lcd板上显示ov5640图像的工程吧(?)
下附ov5640的datasheet里面的原理图(要说还是datasheet好使,查了半天没搞懂的问题翻了下datasheet十分钟就解决了)
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgfakgi
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01