cancel
Showing results for 
Search instead for 
Did you mean: 

USB Superspeed Peripherals

xixi_3447666
New Contributor II

pastedImage_3.png

在如图架构中, fireware用的是cypress提供的SlaveFifoSync.img,把cypress的control center工具略作修改,在PC机上不断进行BULK IN 传输测试,总是报BULK IN transfer failed with Error Code:997. 然后再也收不到任何数据,CYUSB3014的FLAG标志FLAGA=0、FLAGB=1。

易发生错误时的情况是:

     1、当FPGA里fifo变空时必报;

     2、上电后,FPGA里fifo有数据,刚开始BULKL IN测试偶尔报,

     3、当出错是,示波器观察发现总是BULK IN 3次后停止,但PC机未收到任何成功的数据

文档AN65974里说添加CyU3PUsbLPMDisable()函数,但SlaveFifoSync固件工程里已经添加这个函数了。

文档FX3_SDK_TroubleShooting_Guide.pdf的2.3的II建议添加CyU3PDmaChannelResume (chHandle, CyFalse, CyTrue)和

CyU3PDmaChannelSetSuspend (chHandle,CY_U3P_DMA_SCK_SUSP_NONE, CY_U3P_DMA_SCK_SUSP_EOP),添加后也没有效果,不知添加的位置是否正确。

请问这是什么原因呢?Error Code的含义是什么?在哪里能查到?谢谢

附件是SlaveFifoSync工程。

0 Likes
1 Solution
xixi_3447666
New Contributor II

找到原因了。

在c#中,host在每次BULK IN时调用 XferData(ref buffer, ref bytes)后,都会修改bytes值,导致bytes值可能小于512。所以在调用XferData(ref buffer, ref bytes)之前,先让bytes=512就解决了

View solution in original post

0 Likes
4 Replies