tag 标签: mt9e001

相关博文
  • 热度 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