阅读:1743回复:7
请教:各位大侠看过来阿!关于68013的AUTO传输问题。
我的68013采用SLAVE模式,外接一个CPLD,以实现端点2的AUTOOUT传输。不断的向SLAVE发送包大小为512的数据流,CPLD在外面读数据。但是一段时间之后(时好时坏,可以正常工作的时间也不等),有可能出错。GetLastError()函数提示说我的USB设备没有行使功能,不知道为什么,各位请指教哈:)
|
|
沙发#
发布于:2004-11-03 16:29
没有遇到你所说的问题,可能是你的Slave FIFO方式与CPLD时钟不匹配。可以考虑使用从68013的时钟输出引脚引出供CPLD作时钟信号,这样就可以时钟匹配了,应该不会发生丢数据的情况。我使用FPGA/CPLD时,都是用的68013的时钟,没有用外接晶振。
|
|
板凳#
发布于:2004-11-04 09:27
我接的也是68013的IFCLK引脚啊,48MHZ。
|
|
地板#
发布于:2004-11-04 09:38
我想到一个问题,就是在我的固件程序中 REVCTL = 0x01; 的时候才能够传输数据,按照Cypress的资料上面说得是REVCTL = 0x03才可以的啊?但是我把REVCTL 设置成 0x03的时候就不行了,是不是因为这个原因啊?各位做过的你们的固件程序是怎么设置的呢?
|
|
地下室#
发布于:2004-11-04 14:25
应该是REVCTL = 0x03,可能初始化配置有问题。空满标志也要用,引到逻辑中,否则会数据溢出或丢失的。
|
|
5楼#
发布于:2004-11-04 14:54
我认为 应该 REVCTL = 0x00。
|
|
|
6楼#
发布于:2004-11-04 15:18
空满标志都用了,我认为控制逻辑上面的时序应该是对的了。就是那个控制限定数据传输量的PF标志我虽然在固件程序中间设置了,但是没有在控制逻辑中间用到(好像也不需要用吧?),只是用了EF喝FF。我再论坛上面看到好多人设置的REVCTL = 0x03。资料中间说一定得把他设置成0x03。是不是还有什么设置我没有做啊?
|
|
7楼#
发布于:2004-11-05 14:37
自己顶一下!
|
|