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.

CSL USB Examples: Can´t enumerate with a Configuration Descriptor > 64 byte

Other Parts Discussed in Thread: TMS320C5535

Hi there!

Using the CSL_USB_PollExample, i am trying to transform it into a Full-Speed MIDI device software. First step I did, was to change the descriptors, especially the configuration descriptor including all interfaces, endpoints and MIDI Jack descriptors.

I am using a descriptor from a project i developed on an SiLabs C8051F320 microcontroller which works perfectly fine there.

To my surprise, the CSL_USB_PollExample, as also the other CSL_USB examples, cannot send datablocks longer than 64 bytes over endpoint 0. Actually all examples have configiration descriptors shorter than 64 bytes, so i assume transfering blocks > 64 bytes on EP0 was not planned to do with these examples.

Can someone give me some hints where to find information how to make the necessary changes to transfer blocks >64 bytes over EP0?

Thanks in advance! 

  • Hello Michael,

    As far as I know, EP0 is used for control transfers. All examples have descriptors shorter than 64 bytes since maximum data payload for control transfers is determined as 64 bytes according to USB 2.0 specification. More data payload limits can be used for data transfers through the other endpoints. I hope that helps.

    Yusuf

  • Dear Yusuf,

    i´m sorry, but of course there are configuration descriptors much longer than 64 bytes, else composite devices, which can have configuration descriptors of several hundred bytes, wouldn´t be possible at all. 

    A single payload is of maximum 1023 bytes for a FullSpeed device, regardless which EP. Certain microcontrollers can even transport only 8 bytes at once over EP0, so a single payload, greater than EP_size, must be split into several transactions.

    It is exactly that mechanism, of several chained transactions, that has not been inbuilt into the CSL examples.

    But thank you anyway, any clarification is a good one! :-)

    Michael

    P.S.: I forgot to mention, I´m using the TMS320c5535 eZdsp USB Kit and CCS 4. My project will use Full-Speed only (i need the longer cable).