骁龙820A是专用的汽车处理器,处理器的设计可满足严苛的汽车行业标准,是一款集成芯片组解决方案,在汽车中也能实现和先进的智能手机一样的多媒体、导航、连接性和语音品质与控制功能。
骁龙820A上配备的CPU采用Qualcomm的Kyro CPU架构,Kryo 架构基于ARMv8 指令集,支持64 位运算。主频可以达到2.2GHz,制造工艺是三星的14nm FinFET,还配备4颗核心。
骁龙820A超越了台积电的16nm工艺技术,有效解决了发热的问题。与骁龙810相比,它充分权衡了性能和功耗,在性能和效率方面均有双倍提升。使用 Qualcomm® Symphony System Manager 作为骁龙智能资源管理工具,将对任务调度和功率管理的控制延伸至整个处理器。虽然只有四核,但是发挥了别的CPU八核的性能。如此优异的性能为820A的上的摄像头数据获取提供了极大的便利。
笔者所在公司正好有一个利用820A开发项目,主要是对820A上支持raw data数据的ov5647摄像头进行数据获取。本文承接上篇的驱动移植,重点是介绍抓取和调试raw数据。
检查各种指标
上篇小编讲到驱动移植,在确认驱动移植没有大的问题之后,还要确认电压和时钟是否正确。笔者所在的项目组成员用万有表和示波器进行测试,发现结果正常。
检查i2c的数据,示波器也显示正常,结果如下图所示。
但是小编发现还是有写数据是不正常的,为了确认数据输出是正确的,将ov5647初始化寄存器修改成测试模式。
测试模式
测试模式是一种特殊的输出模式,在此模式下,ov5647固定输出特殊的数据,呈现给我们的是彩色条纹,对于解析和判断输出输出比较方便。为此,小编查阅datasheet 发现是要修改其中一个寄存器的值就可以了。但是还需要专门的工具来捕获图像数据帧。为此小编所在部门专门写了一个调试工具捕获图像数据帧。
从测试模式得到正常的彩色条纹图像,如下图所示:
获取图像帧
由于笔者所在的公司采购的820A没有自带屏幕,没有办法从屏幕上获得图片呈现,因此采用上面获取图像帧的方式将图片保存成raw格式,然后在windows用专门的raw图查看工具查看,发现获取的图像都是光圈。如下图所示:
ov5647摄像头特性
上文说到获取的图像都是光圈。小编觉得奇怪,后来又抓过几次,发现结果大同小异, 变得只是光圈的位置和大小。
小编没有办法,只好请教公司有经验的做tuning的老员工。原来,ov5647是可以调焦距的,出现光圈是因为焦距不对,下面是成果图:
本文就到这里,后续小编还会针对实际调试中遇到RAW格式解析问题进行详细说明。