打印
[圈圈教你玩USB]

CY7C68013的速率提不上去

[复制链接]
2641|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wjxcom|  楼主 | 2010-11-23 10:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位好:
我现在在做usb方面的东西,到的问题是CY7C68013的速率提不上去。

测试系统结构:FPGA =>  CY7C68013  =>  PC
    1、FPGA以16M/s连续产生16位并行测试数据至CY7C68013,即16M bytes/s
    2、CY7C68013配置为SLAVE FIFO工作模式,端点2接受PC发出的命令,启动FPGA开始计数,接着端点8接受FPGA的计数器发出的数据。


测试过程及问题:将CY7C68013的端点缓冲区分别配置为双缓冲和四缓冲,用quartusii的SignalTap观察端点8的full信号,发现PC在接收数据的过程中,full信号由高变为低了。因此估计是PC未及时从FIFO中读取数据,但PC应用层只是执行了接收数据操作,不知是否低层驱动的问题。

其实我遇到的这个问题与https://bbs.21ic.com/viewthread.php?tid=114226&highlight=CY7C68013%E7%9A%84%E9%80%9F%E7%8E%87%E6%8F%90%E4%B8%8D%E4%B8%8A%E5%8E%BB是一样的,我看见版主computer00提出驱动在取数据时,最好一时提交很大量的数据

我是写硬件的,不知道如何写软件,所以向大家请教一下,该如何写这个驱动呢?

相关帖子

沙发
computer00| | 2010-12-15 12:10 | 只看该作者
你先把你的应用软件的请求的数据包增大试试看吧。那个帖子里都说得很详细了,找做这个软件的兄弟帮忙看看。

使用特权

评论回复
板凳
wjxcom|  楼主 | 2010-12-24 14:21 | 只看该作者
你好computer00:你说的应用软件是指什么?是产生驱动程序的软件吗?还是USB设备上位机的程序?

使用特权

评论回复
地板
brucedd| | 2010-12-28 10:37 | 只看该作者
当然是PC

使用特权

评论回复
5
brucedd| | 2010-12-28 10:37 | 只看该作者
PC端的缓冲区增大

使用特权

评论回复
6
wjxcom|  楼主 | 2010-12-28 16:00 | 只看该作者
感谢brucedd的回复,您说的PC端的缓冲区增大是如何实现的?在DS3.2产生的驱动程序理这样写吗?

        m_Interface.Initialize(
                                        m_Lower, //KUsbLowerDevice
                                        0,                 //InterfaceNumber
                                        1,                 //ConfigurationValue
                                        0                 //Initial Interface Alternate Setting
                                        );

        // Initialize each Pipe object
        Ep1In.Initialize(m_Lower, 0x81, 65536);       
        Ep1Out.Initialize(m_Lower, 0x01, 65536);       
        Ep2In.Initialize(m_Lower, 0x82, 65536);       
        Ep2Out.Initialize(m_Lower, 0x02, 65536);       
        Ep4In.Initialize(m_Lower, 0x84, 65536);       
        Ep4Out.Initialize(m_Lower, 0x04, 65536);       
        Ep6In.Initialize(m_Lower, 0x86, 65536);       
        Ep6Out.Initialize(m_Lower, 0x06, 65536);       
        Ep8In.Initialize(m_Lower, 0x88, 65536);       
        Ep8Out.Initialize(m_Lower, 0x08, 65536);

使用特权

评论回复
7
wjxcom|  楼主 | 2010-12-28 18:24 | 只看该作者
感谢brucedd的回复,我还是不明白您说的PC是指产生驱动的程序还是指USB设备上位机的程序?

使用特权

评论回复
8
wjxcom|  楼主 | 2011-1-12 16:30 | 只看该作者
本帖最后由 wjxcom 于 2011-1-17 10:16 编辑

可以了  如果收取字节数小于2^21,速度达到30MByte/s。但如果收取的字节数达到2^29,则速度只有15MByte/s了。
结贴!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

26

帖子

1

粉丝