This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

LPC2148HID

I need to send more data on lpc214 (USBHID Class). give me for example. How HIDclass can send more data?
I need up to 5 Mbps

  • I originally thought your question was how to create larger packets (something that has been discussed in earlier threads on this forum and should be possible to search for), but then you start to talk about number of bytes/second. USB can only transfer using predefined speed classes (baudrates), and then it is up to the programmer to decide how much of the available bandwidth of a speed class to actually use.

  • The maximum speed of HID is 64 byte/ 1msec USB frame (512kbps) on Full-Speed (FS) bus. It is the limitation of interrupt transfer, on which HID is established. Apply bulk transfer instead.

    It is easy to modify the HID firmware to bulk one, just modify the descriptors. You'll see an example in LPCUSB main_custom.c

    Configuration desc
    - wTotalLength = 0x0020
    Interface desc
    - bInterfaceClass = 0xFF
    - bInterfaceSubClass = 0x00
    - bInterfaceProtocol = 0x00
    HID desc
    - delete all
    Endpoint descs
    - bmAttributes = 0x02 (bulk)
    - wMaxPacketSize = 0x0040
    - bInterval = 0

    LPCUSB
    " from MS WHDC
    www.microsoft.com/.../default.mspx
    Find "Download the Windows Server 2003 SP1 DDK [236 MB ISO file]" link

    New WinUSB device driver from MS has problems on stability and performance. It'll take long time until MS fixes it.

    I don't think it is a good idea to measure USB transfer speed in bps. Instead of UART, USB bus clock is always constant, 12Mbps for FS bus. USB is a bus scheduled in every USB frame (1msec in FS). Then, byte/frame is better unit.

    Tsuneo