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 ZLP

Thanks in Advance.
I am using keil HID example and win-api to make a usb hid device for sending and receiving data using interrupt transfer. I define the package size as 64 bytes, and of cause if the data sended by the device less than 64 bytes, the host(Overlapped mode) will come up with a timeout error. And I do search in the forum, everybody says I should send a ZLP(zero length package), but I could not find any detail about what ZLP real is, and how to send a ZLP by the device or by the host. So I will appreciate if anybody tell me what can I do. Forgive my fool.
Thanks again.

Parents Reply Children
  • Sorry for my mistake.

    Now I realize that my previous post was incorrect.

    http://www.keil.com/forum/13037/
    Tsuneo Chinzei, 20-Aug-2008 21:05 GMT
    Report descriptor declares the report format(s). HID device driver doesn't accept any report out of this format. ie. it drops such a report whose size doesn't match to any report on the report descriptor. Then, padding is required to fit to (one of) declared report size.

    www.tracesystemsinc.com/.../sbook2.htm

    It seems that for a HID class, there are several types of reports.?

    • Input Report
    • Output Report
    • Feature Report
    • HID Report

  • "HID report" is general term, which collects input / output / feature reports.

    The report type is determined by the place where the report passes.
    Interrupt IN endpoint - input report
    Interrupt OUT endpoint - output report
    EP0 IN (Get_Report request) - input / feature report
    EP0 OUT (Set_Report request) - output / feature report

    Tsuneo