FPGA如何以50MHz的时钟读取CYUSB3014的数据?该如何修改FX3的代码?

公告

大中华汽车电子生态圈社区并入开发者社区- 更多资讯点击此

Tip / 登入 to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
tahuc_4098261
Level 1
Level 1
5 replies posted First question asked First reply posted

我参考的是CYPRESS官方例程AN65974。FPGA以100MHz的时钟读取CYUSB3014的数据没问题。但由于后续存储器比较慢,现在想以50MHz的时钟读取CYUSB3014的数据,数据线仍然保持为32位。不知道该如何修改FX3的代码来匹配FPGA的50MHz读取频率。请问各位工程师,我需要在EZ USB Suite中修改哪些代码来?GPIF II配置要不要修改?

EZ USB Suite的部分时钟代码如下,供您参考:

/* setSysClk400 clock configurations */

        clkCfg.setSysClk400 = CyTrue;   /* FX3 device's master clock is set to a frequency > 400 MHz */

        clkCfg.cpuClkDiv = 2;           /* CPU clock divider */

        clkCfg.dmaClkDiv = 2;           /* DMA clock divider */

        clkCfg.mmioClkDiv = 2;          /* MMIO clock divider */

        clkCfg.useStandbyClk = CyFalse; /* device has no 32KHz clock supplied */

        clkCfg.clkSrc = CY_U3P_SYS_CLK; /* Clock source for a peripheral block  */

0 点赞
1 解答

你不需要改FX3的代码。

在原帖中查看解决方案

0 点赞
4 回复数
tahuc_4098261
Level 1
Level 1
5 replies posted First question asked First reply posted

PC机向CYUSB3014的传输速率也可降低。

0 点赞

你不需要改FX3的代码。

0 点赞

就是说FPGA可以直接以50MHz的频率读取CYUSB3014的数据?我试过,但跟100MHz的结果不一样,以为是FX3的代码有问题。我再调调FPGA这边的代码。

0 点赞

我测试了一下,如果FPGA以50MHz读取CYUSB3014的数据,容易发生FIFO溢出导致发送数据失败,因为PC到CYUSB3.0是非常高速的。

那现在问题变成了:如何在FX3中设置代码,使得电脑传递到CYUSB3014的速度降低?

这个问题可能不常见,但我手里确实只有这一块CYUSB3014的控制板,必须用这个。所以想通过USB3014的限速来提高后续存储的可靠性。

0 点赞