Strange USB behavior regarding BlockSize and DataSize

Started by mbergmann, February 28, 2013, 11:58:43 AM

Previous topic - Next topic



I'm working on an USB Device Mass Storage driver for my iMX233-OLinuXino-MICRO Board. The software is all done ourselfe. No Linux or other BSP.
Currently I've problems answering READ-10 Command Transports.

If I set the wMaxPacketSize to 512 Byte I can send data up to 768 bytes. With this Data size in the dTD I get the USB interrupt on complete after sending the data. But if I try to send more than 768 Bytes with one dTD I can see the first 512 Bytes in one IN txn packet on the bus, but other packages/the rest of the data is missing. Thus I do not get any interrupt. Furthermore the status:Active bit in the dTD is not cleared and no other status bit is set. It seems that the cell is hanging after the first package.

If I set the wMaxPacketSize to 256 or below I'm able to transfer up to 2K of data via one dTD. If I try to send more the transfer hangs after 2K.

Is there something special with the iMX233 USB regarding and data size and wMaxPacketSize. The code I'm using is working fine on my STMP3650 board (nearly same USB Cell).

Any idea?




Mike, hopefully someone here can help ... but I'd suggest you're better off posting this on the Freescale forums.