阅读:3747回复:8
关于cy7c68013的fifo的flag位的问题
我在进行slave fifo的调试,现在的数据已经可以正确的写到fpga内了,但是遇到一个问题,就是只向ep2内写一个字节的时候,它的empty标志为不发生变化,而我的外部读控制是通过这个标志位来控制的。所以现在就被卡在这了。我经过验证怀疑是,第一个字节写入后,empty就是没有变化的。
不知道有没有谁懂这方面的问题,是不是只写一个字节,empty标志位不变化,如果是有没有办法通过设置一下,可以改变这种情况呢。 多谢!!!!! |
|
|
沙发#
发布于:2003-06-16 10:42
好象是68013芯片版本的问题。E版下的问题已经修正!试试看! :)
|
|
|
板凳#
发布于:2003-06-16 11:06
你说的是芯片的版本?还是芯片说明的版本呀?
|
|
|
地板#
发布于:2003-06-16 16:11
请参考,不只是否是此原因
68013 的4个large data fifos有一个特性是 “Quantum fifo”见其参考手册1。19章 ....“when an empty flag goes from 1 to 0(not empty), the number of bytes in the fifo jumps to a usb packet size,rather than just one byte.” 我没有验证,提供参考 :D 有知道的大虾请指教 ;) |
|
|
地下室#
发布于:2003-06-16 19:50
zhange1的说法很有道理,D版本的错误校正pdf里第7条标明:在16位传输情况下full标志是无效的,而empty和pf有效。在E版本里改正了。既然是这种情况,不能确认是否是芯片版本问题,建议还是用其他引脚来代替empty,full和pf。kilroy_guo大虾的那段话似乎是指自动打包功能,对外围逻辑是不可见不可控的。
|
|
5楼#
发布于:2003-06-16 20:22
zhange1的说法很有道理,D版本的错误校正pdf里第7条标明:在16位传输情况下full标志是无效的,而empty和pf有效。在E版本里改正了。既然是这种情况,不能确认是否是芯片版本问题,建议还是用其他引脚来代替empty,full和pf。kilroy_guo大虾的那段话似乎是指自动打包功能,对外围逻辑是不可见不可控的。 看到了错误校正:) 自动打包功能是什么?是指SIE从EPX buffer抓数据么? :o对外围逻辑不可见么? :(我在书上没有找到相关的说法 |
|
|
6楼#
发布于:2003-06-16 20:43
你说的是autoin autoout么?
|
|
|
7楼#
发布于:2003-06-17 08:48
page 1-25,line 22
this is invisible to the outside interface. 应该指的是对数据自动打包,一个字节也自动打成一个usb packet那么样的大小,可以直接用于传输。但是后头又说明了可用于错误校正,这就令人费解了。难道fifo的倍数用于校正?还是这里的意思和slave fifo设置的倍数大小是两回事? |
|
8楼#
发布于:2003-06-17 15:55
情况1: 我记得有一个寄存器是用来跟踪写入端点的数据的吧,如果你写数据量不是端点最大包大小,可以把本次要传输的数量写到这个寄存器里(比如写1个字节),然后它会自动跟踪你写到端点中的数据,达到这个之后端点会自动生效,如果用16位总线,但你写的数据量是奇数个字节,那么最后一个字的高位会被舍弃!
情况2: 对应每个端点还应该有个控制寄存器,它的某一位是管理端点的,针对in端点这一位的功能是使能端点,如果你写的是个不满包(比如写1个字节),应该可以通过写某个寄存器来强制使这个包生效的,这个功能和写满512个字节端点自动生效是一样的(如果你在配置端点的时候八端点设置程512个字节的话)。对应out端点有一位是强制清空端点的。 上面的是我根据我用的isp1581做出的推测,但我想68013也应该有这个功能的,你们再看看吧。 |
|