This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

C6748的USB,bulk传输不稳定,每包数据量为FIFO满包和半包速率相差极大的问题

Other Parts Discussed in Thread: TMS320C6748

我自己设计的板子,参考的TI官方DEMO和创龙开发板,使用的DSP 是 TMS320C6748,内核版本2.3,。

USB使用的USB0通道。

DSP的USB PHY中,将FIFO大小设置为 512Byte,每次发送数据时,向FIFO写入512Byte字节数据,然后使能TXRDY,使用创龙开发板,能够稳定传输数据,数据速率为7~8MB/s,使用我的板子一般只能发送几包数据,然后就出现上面的错误,不能继续发送。
PERI_TXCSR 寄存器值为 0x0003,指示DSP程序写入数据到USB PHY的FIFO,并且启动了发送,但是没有发送完成。
使用 bushound 抓数据包,DSP能够发送几包数据,然后就抓到一个 USTS 错误状态,错误码为 0xC0000011,这个错误码的意思是 The device returned a transaction error。


将FIFO大小设置为512Byte,每次发送数据时,向FIFO写入256Byte字节数据,然后使能TXRDY,使用创龙开发板,能够稳定传输数据,数据速率却降低到1.7MB/s左右,使用我的板子也能稳定传输数据,速率也只有1.7MB/s左右。

在我做的板子上做了一下几种情况的实验

情况1、如果我设置FIFO为512Byte,每次向FIFO写入512Byte,然后启动发送,这种情况下只能发送几包数据。
情况2、如果我设置FIFO为512Byte,每次向FIFO写入256Byte,然后启动发送,这种情况下能够稳定的传输数据。
情况3、如果我设置FIFO为64Byte,每次向FIFO写入64Byte,然后启动发送,这种情况下也只能发送几包数据。

各位大侠分析一下我的板子每次传满FIFO为啥不行?


每次传输256Byte为啥速率降低的如此多,这种情况下有没有提速的办法?