嵌入式开发者社区

标题: USB2.0发送数据到PC机不稳定,仅能发送几包数据 [打印本页]

作者: silent    时间: 2015-8-15 14:37
标题: USB2.0发送数据到PC机不稳定,仅能发送几包数据
自己设计的板卡,DSP使用6748的usb_dev_bulk程序修改而成,PC机程序使用bulk_test_ui修改而成,
DSP程序将usblib中的FIFO大小修改为512byte,接口使用USB2.0模式,PC机程序将buffer大小修改为512byte,通过点击bulk_test_ui界面中的读写测试按钮,能够正确发送数据到DSP,并从DSP收到数据校验正确,
但是读写测试只能点击几次(一般为两三次)测试,之后就会出现PC机读不到数据,
这时候查看DSP的USB寄存器,DSP发送端点的 PERI_TXCSR 寄存器值为 0x0003,指示DSP程序写入数据到USB PHY的FIFO,并且启动了发送,但是没有发送完成。


这样做的最终目的是为了测试DSP通过usb_bulk传输数据到PC的速率,这套程序在创龙的开发板能够正确运行。

请教各位出现这种情况的原因,以及解决办法。

作者: 2532609929    时间: 2015-8-20 00:44
有可能是硬件问题,请检查!
作者: silent    时间: 2015-8-20 08:45
2532609929 发表于 2015-8-20 00:44
有可能是硬件问题,请检查!

新的测试情况,使用 bushound 抓数据包,DSP能够发送几包数据,然后就抓到一个 USTS 错误状态,错误码为 0xC0000011,这个错误码的意思是 The device returned a transaction error ,从这个能不能确定是什么问题呢

作者: silent    时间: 2015-8-22 10:13
DSP的USB PHY中,将FIFO大小设置为 512Byte,每次发送数据时,向FIFO写入512Byte字节数据,然后使能TXRDY,使用创龙开发板,能够稳定传输数据,数据速率为7~8MB/s,使用我的板子一般只能发送几包数据,然后就出现上面的错误,不能继续发送。
将FIFO大小设置为512Byte,每次发送数据时,向FIFO写入256Byte字节数据,然后使能TXRDY,使用创龙开发板,能够稳定传输数据,数据速率却降低到1.7MB/s左右,使用我的板子也能稳定传输数据,速率也只有1.7MB/s左右。
各位大侠分析一下我的板子每次传512Byte为啥不行?
每次传输256Byte为啥速率降低的如此多,这种情况下有没有提速的办法?




欢迎光临 嵌入式开发者社区 (https://www.51ele.net/) Powered by Discuz! X3.4