CY3014 SLAVEFIFO

1、基于CYPRESS AN65974
2、FPGA内部例化数据输出,每帧数据(52B)header+204810244B+(32B)tailer,间隔4096个系统时钟。
3、固件
(1)修改测试模式
(2)修改传输模式
CY3014 SLAVEFIFO_第1张图片
理由不解释,可以自己测着看效果,可根据手册来修改其他参数。
4、再cypress安装目录下,找到streamer的源码,用VS2015打开,编译,根据报错的提示去修改配置环境,基本改改都能通过。
5、测试传输速率,且在bus hound上可以抓取到bulkin的数据。
CY3014 SLAVEFIFO_第2张图片
6、通过修改数据大小与间隔,上位机队列个数,可提升性能。测试最高速率可达380MB。
7、在streamer.h的文件中,在接收数据时,调用三个函数,
(1)BeginDataXfer
(2)WaitForXfer
(3)FinishDataXfer
(4)只要修改QueueSize的值,保证len*QueueSize的大小足够每帧数据的大小,则在i==QueueSize时,可以正确接收完一帧数据。但是要考虑,当数据速率很快,数据较短,开辟的QueueSize就会较少,此时接收的数据就会有问题。
8、保证每帧数据头+数据+尾不能时16KB的整数倍,否则,驱动处无法正确区分两帧数据。
9、bug
在长时间发送过程中,突然有一时刻,芯片会死掉,必须对cy3014芯片的bulkin通道进行复位。此时FPGA的信号抓取,FLAGA为高,FLAGB持续为低。按照正常理论来说,都应该为高,才可以继续往下写。这个问题困扰我很久,有清楚的可以留言,一起讨论。

你可能感兴趣的:(USB3.0,VIVADO)