1、参考文档
查看SDK中相应文档,重点是SoC对Sensor的支持。
Hi3518E V200R001C01SPC030\00.hardware\chip\document_cn\Hi3518EV200经济型HD IP Camera SoC产品简介.pdf。
2、更换板子上的摄像头为OV9712
首先先要将摄像头更换为ov9712,排线插到板子上的排座的时候,要固定好。
3、配置脚本。
这里更换摄像头的时候并不需要对内核和uboot进行修改。当内核挂载根文件系统之后,再去执行文件系统的配置文件时,就需要我们关注了,在系统执行load3518e脚本的时候,会传入sensor的类型。
load3518e是被根文件系统中的/etc目录下的profile所调用,至于这个文件是做啥的,不懂的小伙伴可以百度一下。
profile中会进入到/ko文件夹中,执行load3518e并传入相应的参数,启动不同的摄像头。
将来load3518e脚本中的SNS_TYPE就被配置成了ar0130,那么SNS_TYPE在脚本中的insert_sns()函数会判断SNS_TYPE来配置相应的摄像头参数。配置的方法是调用海思自带的hinm工具来对寄存器进行配置(如配置管脚复用功能)。
所以将ar0130改成ov9712,就可以完成对配置脚本的修改。
4、程序测试
可以使用上一章测试ORTP库的移植的代码来测试摄像头,但是还是需要进行修改。
修改/mpp/sample目录下的makefile.param文件,将里面的SENSOR_TYPE修改成OV9712
一开始画面应该是糊的,主要是镜头没有调整。这时候通过旋转镜头来调整摄像头成像效果。
接下来了解一下Sensor接口引脚复用设置。
5、查看引脚定义框图
Hi3518E V200R001C01SPC030\00.hardware\chip\document_cn\Hi3518EV20X/Hi3516CV200经济型HD IP Camera Soc用户指南.pdf。
查看第二章的的硬件-273LD-TFBGA
在load3518e的配置文件里面,当insert_sns()函数判断完sensor类型之后,就好调用himm工具来配置管脚复用。
例如:如果配置I2C0_SCL?
首先查看用户手册,找到复用寄存器这一章,了解到找到复用寄存器基地址为 0x200F_0000,然后再找到I2C0_SCL管脚复用寄存器。发现需要将0x200F0000地址配置为0x2即可。
注:除了调整管脚复用以外,还需要注意sensor clk寄存器的设置。