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.

MSP432E401Y: USB HID interface with Packetsize longer than 64 bytes

Part Number: MSP432E401Y

Hello Everyone,

For one of our use case, we wanted to use vendor defined HID interface for large data transfer as well. I believe the current Usblib built with the sdk is restricted to the size of 64 bytes per packet. Any inputs where could I find the source files and how to rebuild to support the packet size up to 512/1024 bytes.

Thanks

Uthrakumar

  • Hi UTHRAKUMAR,

    For high speed USB,  HID is limited to 64 bytes (ref).  This is why the USB stack SDK is limited to 64.  Searching the internet I find lots of folks asking the same.  Reading through the responses it doesn't look like there is a workaround.

    Is there a technical reason why the 64 bytes won't work for you?

  • Hi Denis,

    Thank you for the response. I understand it is limited to 64 bytes spec.

    Why We wanted to do this : Ultimately to increase the speed of the communication. When we use Highspeed interface, The packet size will be 512 bytes but the useful data we are transmitting will obly be 64 bytes and the rest will be padded by zero. Please correct me if it is wrong.

    To increase the overall throughput HID packet size is supposed to be increased and so the question is.

    One loop hole I thinking possible and looking for the source code is, The definition allows to send multiple reports in a single packet, If we can split a large data into multiple report s and send it in a single packet it may work.

    I am still unaware how this would affect the HOST drivers, Any thoughts on this will be greatly helpful :)

    Thanks

    Uthrakumar

  • Hi Uthrakumar,

    I'm reaching out to our SW team to see if they have any suggestions.

  • Uthrakumar,

    Here is one suggestion from our SW team.

    One option to ramp up bandwidth is to have multiple HID interfaces over different endpoints. This still isn’t done in a single transfer, but it should give some improvement in bandwidth.

  • Dennis Lehman said:

    Uthrakumar,

    Here is one suggestion from our SW team.

    One option to ramp up bandwidth is to have multiple HID interfaces over different endpoints. This still isn’t done in a single transfer, but it should give some improvement in bandwidth.

    They also can add extra CDC for 1 MByte/sec (even on full speed). Or just use CDC that can be anyway automatically enumerated on any OS (except old windows version) without drivers.

  • Hi Uthrakumar,

    Were you able to get this working?

  • Hi Dennis,

    We haven't tried this yet to move forward But I understand what you try to mean by multiple endpoints. I also see the PC software has to become intelligent to handle the multi-endpoint data when we go with this approach.

    But I do have one more basic question which may help to resolve my problem in better way. We use USB2.0 High speed in out application with ULPI. So the USB Packet size will turn to 64 useful bytes and rest being unused or zero padded by HID protocol. If we can fill all 512 bytes with useful data that woud bring-up the overall throughput. Does Multi-Report help in anyway here?

    Do you have anyother thoughts on this?

    Thanks

    Uthrakumar

  • Hi Dennis, I missed to notice this comment...

    Actually we have CDC implemented with our application as of now..  We do have an another requirement of accessing the same hardware from multiple applications concurrently. CDC limits this operation and we want to move to HID operation to enable this. We wanted to retain the same throughput while we move to HID and so this question popped-up :)

    Thank you for your continued support on this request :)

    Thanks

    Uthrakumar

  • Hi Uthrakumar,

    We tracked down our resident MSP432 expert and here is his comments/suggestions:

    So it looks like they are using USB High Speed with HID mode? I haven’t run into that before honestly. Usually high speed is used more with CDC or bulk. I’ve honestly never heard of high speed for HID. I poked around a bit and the consensus seems to be High Speed and HID are a terrible idea to mix and if high speed is needed, use other interfaces.

    We don’t really have support for this because it is a niche application.

     Library wise, the packet size for 512 probably can be supported for HID by changing some #define’s. But I am not sure because I am not as familiar with HID library setup.

    So it doesn't appear he has a solution for you either.  I'm sorry, but unless someone in the community can offer some suggestions I'm out of ideas.

  • Hi Uthrakumar,

    I was given one more suggestion for you.

    Try taking a look at the TM4C TivaWare USB software stack.

  • Hi Uthrakumar,

    Have you made any progress?  Was the TM4C TivaWare helpful?

**Attention** This is a public forum