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

USB HID IN Report time lag

I have designed code for our 64 byte xfer USB HID device.
It works great most of the time.
On Occasion, I can see an 8 (time varies) second lag between reading the
IN report data, and actually getting it.
With a USB analyzer, the data gets back into windows in the proper amount of
time, but occasionally (once/20 minutes) the data won't get back to my windows app
for 8 or so seconds. Any clues?

  • Report format error?

    HID exchanges reports, whose format is defined in the report descriptor.
    - The size of the report is greater or less than defined.
    - The report doesn't start with report ID, when your report descriptor defines any report ID.

    Sniffer can catch such a report with format error, sent by device. But PC HID driver blocks the report.

    > HID IN Report

    If it were read by HidD_GetInputReport(), this call returns with error after timeout of five seconds or so.

    Tsuneo

  • Don't think it is a format error - thousands and thousands of packets are
    transferred, and occasionally, a time lag occurs. The data does eventually get
    back, and is always correct.

  • Hmm..
    Is your PC application blocked by any heavy (background) process?
    typeperf commandline tool takes log of performance of your application at every second.

    typeperf "\your_PC_application\% processor time" > a_log.txt

    CTRL-C stops the log.
    Do you see any low-performance of your application, while the long delay occurs?

    typeperf
    technet.microsoft.com/.../bb490960.aspx

    Tsuneo