热度 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