预览加载中,请您耐心等待几秒...
1/7
2/7
3/7
4/7
5/7
6/7
7/7

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

CAM调试总结 Vvv TOC\o"1-3"\h\z\uHYPERLINK\l"_Toc273297522"一、原理 PAGEREF_Toc273297522\h1 HYPERLINK\l"_Toc273297523"二、实现 PAGEREF_Toc273297523\h2 HYPERLINK\l"_Toc273297524"三、CAM驱动调试时遇到的问题 PAGEREF_Toc273297524\h4 HYPERLINK\l"_Toc273297525"四、总结 PAGEREF_Toc273297525\h4  一、原理 调试F7camera:只有一个后置摄像头OV7675。F7为6085平台。首先看6085平台的camera接口。 CAMIF通过I2C和CameraSensor通信,提供CLK和RST信号给CameraSensor。CameraSensor将8bit或者10bit的数据以及水平同步、帧同步、PCLK输出给CAMIF.CAMIF接受的数据类型为BayerRAW和YCbCr4:2:2。VSYNC,HSYNC,PCLK的极性是可以改变的。 本次用的是OV7675的Sensor。OV7675兼容OV7670。 硬件线路图D:\Project\F7\E-COOL_MB1022T100_SCH_091118.sch OV7670的内部图如下 它里面有一个656*488的imagearray,其中的640*480是激活的。DSP可以将RAWRGB转化为YCBCR,通过D[7:0]输出到CAMIF。这个DSP还可以做黑白像素点的纠正,去噪,镜头阴影的纠正等等。Imagescaler可以将输出的图像从VGA(640X480)向下裁剪。SCCBinterface是一个I2C的接口,通过SIO_C,SIO_D来和I2Cbus通信。 下面是它的timing图: 对于一个RAWdata,一个像素点是一个BYTE,所以Tp=Tpclk,对于YUV/RGBdata,一个像素点是2个byte,所以Tp=2Tpclk。 下面为OV7670的上电图 通过reset由low到high来给OV7670上电。 下面的是数据的流通图: 下图为camera的各个状态及其之间的转换 二、实现 1.打开相机,首先进入的是priveiw模式: AEEClsCreateInstance开始建一个instance。 QCam_InitData开始初始化数据。 QCam_HandleEvent开始处理event。 QCam_OnAppStart开始 QCam_HorScreen开始 Qcamera_ReadSetting,设置结束。 QCam_CreateCamera,这个函数调用ISHELL_CreateInstance。 ISHELL_CreateInstance会调用camera_get_sensors来得到camera的个数camera_number_of_sensors。这个camera_number_of_sensors由camera_svcs_init来改变。这个函数会在开机上电的时候被调用。 camera_svcs_select_sensor来选择sensor。 camera_svcs_start开始,同时camera_process_start开始。 camera_process_start首先会调用camsensor_power_on,camsensor_power_up。 camsensor_power_on主要调用camsensor_config_camclk_po来设置时钟,然后调用camsensor_select_camera来选择sensor,并设置camsensor_id。 camsensor_power_up主要调用camsensor_init来初始化sensor。 camsensor_init主要执行 这个camsensor_detect_table[0]=camsensor_ov7670_init,执行7670的init了 camsensor_ov7670_init: 首先对sensor输出MCLK: 然后硬件的reset:将resetpin由low变high,将PWDNpin由low变high。 然后是SWreset:ov7670_i2c_write_byte(0x12,0x80) 然后调用initialize_ov7670_registers初始化7670的各个寄存器,写入FAE提供的初始值。 然后读sensor的id和版本号,如果正确,初始化完成。 然后调用camsen