OV7725+OMAPL138开发板调试(从选型到出图像)

bitrain 2015-06-01 03:16:58
最近项目需要做一个精巧的小设备,需要一个体积小巧,功能较强大的cpu核心板。考虑到后期开发过程中可能会遇到比较多的问题,客服给不给力也是一个重要的考虑方面。CPU的选型上,因为后期视频帧率需要达到50帧以上,而且要做视频处理,所以一般的arm(如stm32,2410)也不予考虑。有了以上指导原则,开始在各大论坛及网店搜罗符合要求的核心板,首先备选的是树莓派,最终由于以下几个方面的原因放弃了该方案:1、针对驱动开发的开放性较差(也可能是由于本人的技术不过关,呵呵);2、当时选的时候没有还没有针对树莓派的屏可以使用,尝试使用网上的方法将帧率提高,会造成偏色,CPU占用率过高等问题;3、最重要的选配摄像头使用preview的帧率只能到10帧左右,多方调试未果。后来又考虑了我们之前用的9x35的平台,由于核心板尺寸的问题,也放弃了。后来锁定了TI的omapl138的cpu,双核,运算速度也行,做简单的图像处理绰绰有余。在电商搜索基于该芯片的核心板,不是很多,就那几款。最终考虑尺寸的因素选了创龙的,其核心板大小只有两个一元硬币那么大(当然,因为尺寸小,后面做底板的时候也是累煞我们的硬件工程师,此为后话)。

摄像头的选型,因为产品有体积的限制,所以最终需要显示的图像分辨率不是很高,但是帧率要求高,所以低分辨率,高帧率是指标。选来选去最终锁定在ov7725上,给予该sensor的摄像头电商也有不少,前前后后共有4款摄像头被我拿来试用。分别是蓝宙的,火眼的,鹰眼的,还有一个不知名的反正是一个带晶振的ov7725。因为对图像的实时性还有一点要求,所以不能带fifo,还有因为接口电路的问题(这个比较关键,后面会说),前几款摄像头在创龙OMAPL138的平台上无法使用。最后使用的是哪个不知名的ov7725.

LCD的选型,体积还是体积,选择了一个2.2寸的分辨率为320*240,RGB+SPI接口的小屏。

首先需要搭建开发环境,这个是现成的,OMAPL138的开发环境是CCS,这个大家都知道。虽然本人平时安装软件无数,自认不算是个高手但也差不多了,但是装CCS的时候还是出了问题,调试器不识别啊,我用的创龙自带的v3的调试器,相应的驱动也装了,必要库也装了。几番折腾未果,求助客服,通过qq远程协助,问题完美解决,这个种客服应该点赞。

开发环境好了,其次就需要搭个程序的框架,我是拿来主义者,有现成的就用,没有现成的,改改用。我们的东西就是图像采集+视频处理,就开始在开发板提供的几千个例程中搜索(几千个例程啊,而且打开就能用……这绝对不是吹的)。最终选定了四个例程,其中创龙例程堆里的有人脸识别,ov2640,imageprocess;还有ti的vpif_loopback。规划如下,在现有平台上及例程中验证算法和处理流程,其次更改优化程序框架,再次开发目标器件的驱动和硬件,最后联调出图。首先在创龙OMAPL138的开发板上验证我们的算法和思路,例程是现成的,摄像头模块也是创龙的ov2640,这一步很顺利,验证的过程也没有出什么大问题。有几个小问题,也是创龙工程师通过qq和论坛给解决的,很及时。主要问题是在更换摄像头的过程中出现的,理论上不应该有这么多的问题,但是问题还是不少。图像出现的问题及解决办法罗列如下,没有图片见谅:

1)图片颜色不对

由于需要摄像头输出YUV的图像,而屏幕又是RGB的,需要做色彩空间转换,我遇到的第一个问题是没有做色彩空间转换(别拍砖),第二个问题由于我在做色彩空间转换加速的时候,表有问题,导致部分偏色,第三个问题线路问题,这也是硬件上很难确定的问题,这个问题的主要原因是摄像头接口不兼容,我们用杜邦线接的。

2)图像有等高线

这个是硬件接线的问题比较多一些,好好检查一下线问题一般能解决,还有线如非必要,不要太长。

3)图像像水洗的油画一样

这个问题困扰了好久,也问了创龙的工程师,但是最终都没有解决该问题。后来在不断的试验中发现,摄像头接口和创龙板子的接口的电阻不匹配,换了电阻,就好了。这个问题最终的解决办法可以参考一下我在www.51dsp.net的帖子。

4)直方图不太好看



据说是要调动态范围,但是ov7725怎么调,没有找到,有知道的高手,告知一下,谢谢。

5)图像显示不完整,还闪

说白了,这个问题是一个很弱智的问题,就是buffer的问题。

最后出图像是这样的



焦距没有对上,请忽略。

最后列两篇神级文章供大家参考:

CMOS图像传感器调试问题汇总(百度文库里找)

榨干OV7725寄存器

其次就是结合上述文章仔细看ov7725的手册,这个应该好找.

最后,由于时间问题就写这么多,关键的问题都写到了,有不清楚的可以留言。

PS:感谢创龙的工程师们,技术服务到位,例程丰富,解答及时。
...全文
2974 2 打赏 收藏 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_37938325 2017-08-08
  • 打赏
  • 举报
回复
刚到手7725,现在找资料中
mecy 2015-08-17
  • 打赏
  • 举报
回复
可不可以发下例程给我,找了好久都没有找到,谢谢!!!
代码下载链接: https://pan.quark.cn/s/a4b39357ea24 用户账户控制(UAC)白名单的配置 Windows7环境中 UAC(User Account Control,用户帐户控制)是由微软在Windows Vista版本中推的一项旨在增强系统安全性的创新技术,该技术强制要求用户在执行可能干扰计算机正常运作的操作或进行更改会波及其他用户设置的变动前,必须提供相应的权限或管理员密码进行验证。通过对这些操作启动前进行授权确认,UAC能够有效阻止恶意软件及间谍软件在未获授权的状态下于计算机内进行安装或实施修改。 自从Vista版本问世以来,微软便开始推行这一全新的安全机制,可视为对系统安全防护的显著提升。尽管UAC确实能够在一定程度上对某些非法程序起到防御作用,但与此同时,这一功能也给众多用户带来了诸多不便。 因此,许多用户开始探寻是否存在类似于白名单的功能,以便将那些值得信赖的程序直接赋予运行权限。事实上,这类功能确实存在,不过微软并未将其作为标准配置提供。 网络上关于此问题的绝大多数建议都是建议禁用UAC,这种说法显然缺乏针对性,因为若用户希望禁用此功能,本就不会提相关疑问。 通过运用微软官方发布的Microsoft Application Compatibility Toolkit 5.6版本,可以将信任的程序纳入系统白名单范畴。 获取Application Compatibility Toolkit 安装程序成功后会现三个可执行文件 以管理员身份启动Compatibility Administrator 在Custom DataBases部分创建新的数据库,并添加一个Application Fix(在下方空白处点击右键,选择...

1,076

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧