Content originally posted in LPCWare by mch0 on Wed Sep 10 08:55:15 MST 2014
Hi Sonam,
the HID class allows both IN and OUT pipes for an interface simultaneously. I have used that often.
Right now I have that configuration active in a LPC4370 project (using the ROM API).
Make sure you have:
a) both interrupt endpoints defined in the configuration descriptor
b) both IN and OUT reports defined in the HID specific report descriptor
c) used the correct call on the host side to write data. With windows sth. like "WriteFile()", not "HidD_SetOutputReport()"
The latter sends the OUT-Report to EP0, the former to the interrupt EP you have defined. Since you get data on the control pipe, windows has decided not to use the OUT EP, either because none was defined or because of the wrong call.
There is a freeware program called USBVIEW which shows you a lot of useful information about the enumerated USB devices. I'd recommend to run it and first check, whether your device shows the HID interface with both EP as you expect them.
One last pit I managed to fall in once: Don't send more data in a report than you have advertised in the report descriptor.
Regards,
Mike