新技能丨FETA40i-C核心板实现高清模拟摄像头720P方案

飞凌嵌入式搭载全志A40i处理器FETA40i-C核心板,可支持4路模拟摄像头PAL(720x576)/NTSC(720x480)。而实际使用过程中,PAL或者NTSC格式的分辨率无法满足实际需求,经常有客户提出,是否可支持高清模拟摄像头?高清摄像头分辨率能否支持720P或者1080P?针对此需求,小编整理编辑了FETA40i-C核心板Linux/Android 系统支持720P高清模拟摄像头解决思路。


一、方案评估


根据A40i CPU手册描述,CSI0支持最大到1080p@30fps,支持8-bit BT656接口。


A40i CPU手册CSI0描述


根据上述信息,硬件选择RN6752芯片,支持2路CVBS转BT656高清视频解码芯片,输入为2路不同时输入的CVBS,输出为BT656格式,自动检测NTSC/PAL输入,720P和1080P解码,其中ADC采样率高达72MHz,可实现最佳色彩和图像瞬态响应。



二、参考原理图


VINA与VINB为不同时输入,默认采用VINA输入。内部有寄存器可控制通道切换。


RN6752 原理图


三、驱动移植


■ 将对应驱动放入如下路径:drivers/media/platform/sunxi-vfe/device/rn6752.c

■ 修改Makefile文件obj-y +=rn6752.o 

■ 驱动编译

■ 修改sys_config1024x600.fex中csi0对应csi0_dev0_mname,csi0_dev0_twi_addr等参数

■ 编译内核并重新打包镜像,烧写


驱动移植时,需要注意:

1.摄像头所用引脚的复用需要去掉。

2.CSI接口采用BT656,输入格式为YUV422,输出为NV21/NV12。

3.RN6752采用V4L2_MBUS_FMT_UYVY8_2X8格式。

4.RN6752 采用的晶振为72MHz。


四、Linux和Android上显示效果


1、Linux上


在Linux上可采用默认出厂的Cameratest进行测试。

预览效果如下:


Linux的Cameratest测试结果


2、Android上


在Android上可采用 Multiple Camera 进行测试。

预览效果如下:


Android Multiple Camera 测试结果


拓展阅读  

目前Android上行车记录仪APP只支持video4对应的模拟摄像头,其他3路未做支持。可采用Multiple Camera预览4路模拟摄像头图像。具体如图:

因手头摄像头有限,测试采用2个摄像头:(默认支持NTSC格式的模拟摄像头)


Multiple Camera预览结果


总结


最后总结一下FETA40i-C核心板支持HD摄像头方案:

■ 目前调试了RN6752 的支持。其它解码芯片方案,可考虑项目定制。

■ 目前只调试了720P@30fps 的支持。

■ Multiple Camera为简单测试DEMO,旨在验证摄像头通路可预览,不做其它支持。

■ 其中RN6752驱动与配置,以及Multiple Camera测试程序,后续如果客户如有需要此方案可联系销售工程师。