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.

BIOSUSB fails when reading >256 byte packets

If I post core_read_data requests to the BIOSUSB stack with sizes greater than 256 bytes, I am able to receive a single transfer, but no further transfers occur, from my perspective I see a single call back even though I have successfully queued 10 reads, and send more than one block of data from the Host to the DSP.

In my program I am setting up a function driver for CDC-ACM, with a single interrupt end-point 0 and two bulk end points for IN and OUT, with both having a maximum sized packet of 512. On the DSP->Host I am able to send >256 byte data, but from the Host to the DSP I cannot send data in chunks greater than 256. I also have a problem whereby the read call back will return with an error if I queue multiple 256 byte reads, and send a block of data greater than 256, and so although I should be able to create an endpoint with 512 byte packets, the BIOSUSB does not allow me to transfer from Host->DSP packets of this size!

Is there anything I may have missed from my set up. I can transfer at 256 byte packets and below successfully many times, but not above? is this a simple error associated with storing a byte count in a 8bit value or some other bug in the BIOSUSB, or is there further calls I need to be making to ensure I can receive 512 packets.

Peter

  • Peter,

    Currently only MSC and HID apps have been verified with BIOSUSB stack.  BIOSUSB as of today does not support custom class development and is not tested in that scenario.

    Are you using the latest BIOSUSB stack ? If so you configure DMA settings to see if it helps to fix the issue you are observing.  Pl. refer to the BIOSUSB user guide.

    regards

    swami

  • I have set up the BIOSUSB to use the DMA, and I am only changing the size of the read value in the call to core_read_data, the application on the host is not being changed at all, and with this simple change I see the DSP stop reading after just one read,

    Peter

     

    Ps."BIOSUSB as of today does not support custom class development..." is this stating that you are no longer going to offer support for customers developing custom drivers that are based on the BIOSUSB stack?

     

  • Peter,

    You could try configuring the DMA parameters for short packet handling.  That might help.

    As I mentioned "as of today" we do not support this use case.  We continuously take feedback from customers (directly and on the forum) and a custom class support request seems to stand out so far.  Pl. forward this request to you local TI FAE and we will get back to you at the earliest.

    regards

    swami

  • Swami,

    I may have misunderstood your previous comment, and my previous response may have been a little harsh as I thought that you had meant that TI was withdrawing support for this type of development, where as a co-worker has suggested that you more meant that if I talked to my FAE that more support for this topic could be more forth coming, but that it is more appropriate to talk my FAE rather than post directly on this forum,

    So my apologies if I have jumped the gun, and I will try and contact my FAE,

    Peter