接上一篇。
除了前面介绍的8位数据线、行有效LV和场有效FV、像素时钟PCLK、复位信号RESET外,还有几根线要特别注意,1是I2C的两根线SDA和SCK,先看摄像头的接口电路,如下:
上面的第1、2脚SCK和SCL要和USB3.0的对应引脚相连。25脚是输入给摄像头的时钟,频率是48M,这个时钟信号需要摄像头子板提供。24脚是掉电控制引脚,之前此引脚是由FPGA直接控制,这里需要将这个引脚直接接高电平,不起作用。最后一个是11引脚电源引脚,需要由USB3.0开发板提供给摄像头子板。上面接口中,17脚不用、22脚和26脚不用。
另外要说明的是,MT9M001的分辨率为12位,这个测试只取高8位信号,低4位放弃不用。高8位信号在现在的阶段也不需要连接到USB3.0开发板上,以方便我们测试。
硬线连接好后,我们可以给开发板上电,用示波器测量LV、FV和PCLK信号,均有正常的波形输出。
接下来我们测试用USB3.0的I2C总线控制摄像头。文件sensor.c都是一些控制SENSOR的操作指令,都是通过I2C总线的,如单字节读写、双字节读写等。在测试I2C之前,最好对摄像头进行初始化。USB3.0初始化的引脚是GPIO22,可以看下面的下定义:
实现初始化的操作是先将GPIO22设置成低电平,10mS延时,再将GPIO22恢复为高电平,完成初始化操作。代码如下:
以上内容被封装成一个函数void SensorReset(void),在文件SENSOR.C文件中。这个函数只被调用了一次,是在UVC初始化函数中调用的,在文件UVC.C中。由于这个摄像头复位操作不受我们控制,我们不能随意操作这个函数。接下来,我们创建一个单独的命令(控制传输指令),来控制复位这个函数。
在继续移植前,我们先看一下AN75779下载到USB3.0开发板后是什么样子的。下载完固件后,需要重新安装驱动(此处以后会详述),以便在Control Center中能够查看到两个调试用的端点,如下:
上图中红色框中的就是两个调试用的端点,一个是OUT,一个是IN。另外,下载完固件后,设备管理器中有两个设备,如下:
未完,待续,接下一篇文章。
(另公布一群号178338109,CYUSB3014开发专业讨论区)
淘宝店铺:http://liangziusb.taobao.com
良子.2015年 承接USB开发工程
QQ:2687652834
文章评论(0条评论)
登录后参与讨论