tag 标签: mt9f001

相关博文
  • 热度 22
    2015-5-2 19:45
    1639 次阅读|
    0 个评论
           良子USB2.0摄像头开发板上使用的芯片是CYPRESS公司的CY7C68013A,是用途最为广泛的高速USB2.0芯片,如果用户要了解更多关于此芯片的开发板,请查看我的店铺。在测试CY7C68013A芯片之前,用户需要先安装配套的USB开发包,并且用户要清楚的知道,如何安装USB固件对应的驱动程序(用户可以参考配套开发板的用户开发手册)。 1、如何下载USB芯片的固件程序。        安装完USB芯片的开发包后,里面有一个USB Control Center程序(以下简称控制台程序),用户主要应用这个控制台程序,完成USB固件程序的下载,调试等工作。固件程序可以下载到CY7C68013A芯片内部的SRAM中,也可以下载到CY7C68013A芯片外部的EEPROM中。这里先对第一种下载方式做详细说明,后面会介绍如何下载固件程序到EEPROM中。       打开控制台程序(以WIN7,64位为例),单击桌面左下角的开始按钮,找到控制台程序组,如下图,        打开控制台程序如下,插入开发板(为了学习方便,需要拔掉开发板上的EEPROM),        此时USB显示的设备名称是Cypress EZ-USB FX2LP No EEPROM,这个名称是默认的名称,如果CY7C68013A加载了具体的固件程序,名字可能就变化了,不是这个默认的名字了。窗口中还显示了其它一些USB设备,如键盘、鼠标等,由于和CY7C68013A无关,这里不做说明。 接下来开始下载固件程序到片内SRAM中。单击控制台程序菜单栏中的“Program FX2”,按下图操作,   弹出对话框如下,       找到电脑中的配套例程bulkloop.hex文件,最后点“打开”按钮,就可以将固件程序下载到CY7C68013A芯片内部了。 下载完固件后,在控制台窗口中的USB设备名称会发生变化,变成了如下所示的样子(在固件重新枚举的过程中,可能会需要重新安装新的固件对应的驱动程序,这个过程请参考前面的驱动程序安装一节),        如上图,USB设备名称已经变成了“Cypress EZ-USB Example Device”了,并且固件程序包含有4个大端点,分别是2、4、6、8。前两个是OUT端点,后两个是IN端点。 3、 测试bulkloop固件。       下载完固件后,可以进行数据传输,具体的过程是:上位机一次向OUT端点发送2048个数据,固件程序再将OUT端点收到的数据转发到IN端点,再返回到上位机。CY7C68013A内部的FIFO固件配置成4X512=2048字节,所以上位机一次最多可以发送2048个字节(上位机没有从USB芯片中读走数据)。按如下进行操作,向OUT端点发送2K的数据A,       固件bulkloop共含有4个大端点,需要成对使用,OUT端点2是和IN端点6配对的;OUT端点4是和IN端点8配对使用的。操作时,1先选择OUT端点0x02,2是输入要发送的数据A,3是要发送数据的数量,4是命令执行按钮,5是实际发送的数据。在操作时,记得要选择Data Transfers选项。 接收数据和上面的发送过程相似,按下图进行操作,       操作时1是要选择IN端点6,2是输入要读取的数量,3是命令执行按钮,4是实际读取的内容。可以看出,读出的数据和之前写入的数据是完全一样的。     (另公布一群号178338109,CYUSB3014开发专业讨论区)   淘宝店铺: http://liangziusb.taobao.com 良子.2015年    承接USB开发工程   QQ:2687652834
  • 热度 28
    2015-4-29 23:27
    1471 次阅读|
    0 个评论
           前面分别介绍了良子USB2.0摄像头开发上的FPGA和USB2.0芯片,FPGA可以用跑马灯程序来测试,USB2.0芯片可以用BULKLOOP例程来测试。这里介绍另外一个例程,将FPGA和USB2.0芯片连起来,用FPGA控制USB2.0芯片,工作在SLAVE FIFO模式。具体是FPGA产生递增的数据,写给USB2.0芯片,上位机再接收USB数据。通过查看接收的数据,可以看数据是否对齐,是否有数据丢失,或者有重复的数据。       有一点需要说明,这个例程没有SDRAM参与,只是FPGA和USB2.0芯片之间的数据传输。另外专门有一个例程有SDRAM参与,FPGA产生的递增数据先写入SDRAM,再从SDRAM读出写进USB2.0芯片,具体的功能和这个例程是一致的,可以查看下一篇文章。       FPGA的程序很简单。第一个模块当然是PLL,用来输出FPGA的同步时钟IFCLK,摄像头开发板上的晶振是48M,经过PLL之后也是48M ,加载到IFCLK引脚上。48M是CY7C68013A的最大同步时钟,在IFCLK是48M的情况下,数据的传输速度最快,带席最高。另个一个模块就是产生递增数据的模块,每一个时钟,16总线上的数据都增加1。       CY7C68013A内的固件程序也不复杂。固件工作在AUTO模式,只是实现了两个大端点2和6,清除了另外两个大端点4和8,FIFO大小是512字节,4倍模式。       测试时要先下载FPGA程序,再下载USB固件程序。原因很简单,FPGA要先产生IFCLK输送给USB芯片。当然,你也可以反过来下载固件,测试一下。用上位机采集数据如下:              测试时1是要选择IN端点,一次采集的数量量2大些,我这里设置的是51200字节,默认的值是512字节,比较小。3是示例的一个数据,显示的数据是7A 77,实际的数据是0x777A,是反的。数据传输到底有没有少数,多数,可以查看上图中的4,多采集几次,这里的数据是规律的,不会有变化。如果数据不是X3或者XB,那么需要仔细检查程序了,数据有错误了。   正在更新,,,,     未完,待续,,,,,,。   (另公布一群号178338109,USB3.0开发专业讨论区)     淘宝店铺: http://liangziusb.taobao.com 良子.2015年    承接USB开发工程   QQ:2687652834
  • 热度 26
    2015-4-17 22:15
    3136 次阅读|
    0 个评论
           这里介绍一下摄像头开发板上的USB2.0芯片部分。CY7C68013A是一款支持USB2.0 HIGH SPEED的芯片,传输速度可以达到40M字节每秒,是应用最为广泛的芯片。CY7C68013A工作在SLAVE FIFO模式,从控制的角度可以看做是普通的FIFO,控制起来非常简单。电路图如下:       上面的原理图是标准的,应用在我的多个USB2.0项目上。56引脚的CY7C68012只有三个8组GPIO,其中两个8组共计16位IO用来做16位SLAVE FIFO模式的数据总线,仅剩下1组8位控制线,略微有些少。这8位控制线除了SLAVE FIFO必须的SLOE#、FIFOADDR1、FIFOFADDR0、PKTEND#、SLCS#这5个信号后,最后只剩下3根用户可以用的GPIO。当然这些硬件上的缺点可以通过其它方式弥补。       CY7C68013A这三组GPIO都与FPGA相连,受FPGA控制,电路板工作在SLAVE FIFO模式。这种工作模式能简化USB协议的复杂性,降低开发难度。实际上在固件中设置68013A为AUTO IN模式后,可以将USB芯片看作是一片普通的FIFO,控制起来很简单。   未完,待续,,,,,,。   (另公布一群号178338109,USB3.0开发专业讨论区)     淘宝店铺: http://liangziusb.taobao.com 良子.2015年    承接USB开发工程   QQ:2687652834
  • 热度 21
    2015-3-5 21:56
    1440 次阅读|
    0 个评论
          接上一篇,测试USB芯片的控制传输功能。      USB的 控制传输功能,主要用来传输一些数量较小的指令,一般几个字节,到64个字节都可以,当然,大于64字节的命令,可以发起多个控制指令,如摄像头的配置数据。摄像头的配置数据都是通过I2C接口,用控制传输功能实现的。作为开发板的测试例程,可以用I2C接口测试一下板子上的EEPROM芯片。       还是用前面介绍的固件程序,用命令0xb1来向24LC64的地址0x0230,写入值0xa5(这些值可以任意改变)。操作是否成功,可以通过示波器或者逻辑分析仪查看波形确认。先通过控制台程序,执行0xb1命令,如下:       在位置1处输入命令0xb1,在位置2处指定数据传输的方向为OUT,3是要单击控制传输按钮,4是显示的信息。下图是用逻辑分析测得的数据波形,      上图中1是24LC64的器件地址162(16进制是0xA2),2是固件程序设定寄存器地址0x0230,3为寄存器的内容165(16进制是0xA5)。仔细看一下,和固件程序中设置的是一样的,所以操作是成功的。       如果将EEPROM换成SENSOR,那么就是对摄像头进行寄存器配置了,开发过程序也是一样的。       (另公布一群号178338109,CYUSB3014开发专业讨论区)   淘宝店铺: http://liangziusb.taobao.com 良子.2015年    承接USB开发工程   QQ:2687652834
  • 热度 21
    2015-3-4 21:17
    2609 次阅读|
    0 个评论
           CMOS摄像头芯片都有用于配置功能的I2C接口,现在通用的接法有两种,一种是用FPGA来驱动CMOS的I2C接口;另一种是用68013的I2C模块驱动CMOS的I2C接口。用FPGA驱动I2C接口,上位机需要将配置数据先发到68013芯片内,68013芯片再将配置数据发送给FPGA,FPGA再发给CMOS;用68013驱动I2C,则在信号流中省去了FPGA,比较方便,这也是现在比较通用的做法。        68016芯片提供了对I2C的支持,配套有相应的软件函数。在开发包的目录C:\Program Files\Cypress\CY3684-FX2LP DVK\Target\Lib\LP下,有文件i2c_rw.c,定义了I2C读写的两个函数EZUSB_ReadI2C( )和EZUSB_WriteI2C( )。在文件i2c.c里,定义了I2C的初始化函数EZUSB_InitI2C(void)。用户可以使用这些函数,不需要自己重新编写寄存器一级的I2C驱动函数。以下简单介绍了在固件程序中增加I2C功能的过程。 1、在函数TD_Init(void)中增加I2C的初始化函数。 EZUSB_InitI2C();// Initialize I2C Bus 2、两个库函数,一个为读,一个为写。对I2C进行写操作的函数为EZUSB_WriteI2C(BYTE addr,BYTE length,BYTE xdata*dat),其中addr用于指定I2C设备地址;length为传送数据长度;*dat为发送数据缓冲区的起始地址。 3、 在FW.C文件前部增加两个控制传输指令的宏定义,如下: #define I2C_READ       0xb0 // #define I2C_WRITE      0xb1 // 在同一个文件的函数SetupCommand()中增加对这两个命令的具体执行部分,如下:  case I2C_READ://Liangzi   0xb0 //I2CTL |= bm400KHZ; EP0BUF = 0x0F; EP0BUF = 0xF0; EP0BCH = 0; EP0BCL = 2; EP0CS |= bmHSNAK; // Acknowledge handshake phase of device request break;    case I2C_WRITE://Liangzi   0xb1 i2c_str =0x09; i2c_str =0x02; i2c_str =0x84; EZUSB_WriteI2C(0xBA,3,i2c_str); //EP0BCH = 0; //EP0BCL = 0; break;       以上部分用控制台程序发送b0、b1这两个自定义命令。命令I2C_READ实现的是IN传输,向位机返回两个字节,如下,测试是成功的。(按照前一节介绍的下载固件程序到芯片内SRAM的方法下载固件)。       上图中1是要选择控制端点;2是选择数据传输的方向为IN ;3是自定义命令;4是自定义命令为0xb0;5是单击”Transfer Data“命令按钮后采集到的数据是0x0F,0xF0,这和KEIL程序中的设定是完全一致的。       上面只测试了一个命令0xb0,程序中还有一个命令0xb1,是对EEPROM进行写操作的,具体的操作见下一篇文章。   (另公布一群号178338109,CYUSB3014开发专业讨论区)   淘宝店铺: http://liangziusb.taobao.com 良子.2015年    承接USB开发工程   QQ:2687652834
相关资源
  • 所需E币: 5
    时间: 2020-1-16 13:51
    大小: 3.72MB
    上传者: quw431979_163.com
    MT9F001_DSAptinaConfidentialandProprietaryAdvanceMT9F001:1/2.3-Inch14MpCMOSDigitalImageSensorFeatures1/2.3-Inch14MpCMOSDigitalImageSensorMT9F001DataSheetForthelatestdatasheet,refertoAptina’sWebsite:www.aptina.comFeaturesDigitalClarityCMOSimagingtechnology1.4μmpixelwithAptinaA-PixtechnologySimpletwo-wireserialinterfaceAutoblacklevelcalibrationFullHDsupportat60fpsformaximumvideoperformance20percentextraimagearrayareainfullHDtoenabledigitalimagestabilization(EIS).SupportforexternalmechanicalshutterSupportforexternalLEDorxenonflashHighframeratepreviewmodewitharbitrarydownsizescalingfrommaximumresolutionProgrammablecontrols:gain,horizontalandverticalblanking,framesize/rate,exposure,……