21ic电子技术开发论坛

标题: CY7C68013的速率提不上去 [打印本页]

作者: wjxcom    时间: 2010-11-23 10:47
标题: CY7C68013的速率提不上去
各位好:
我现在在做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
作者: brucedd    时间: 2010-12-28 10:37
PC端的缓冲区增大
作者: 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);
作者: wjxcom    时间: 2010-12-28 18:24
感谢brucedd的回复,我还是不明白您说的PC是指产生驱动的程序还是指USB设备上位机的程序?
作者: wjxcom    时间: 2011-1-12 16:30
本帖最后由 wjxcom 于 2011-1-17 10:16 编辑

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




欢迎光临 21ic电子技术开发论坛 (https://bbs.21ic.com/) Powered by Discuz! X3.5