2011-04-21 01:02 AM
HID + MSD composite device
2011-05-17 05:32 AM
Hi,
Everything you mentioned to change. I did it. I've monitored the usb with usbmonitor and the host is sending info to the right endpoint. It look like the device is not triggered by this. The callback function is not called. Not even the low priority interrupt routine. The usb hid demonstrator is here: sincerely, Giuseppe2011-05-17 05:32 AM
Hi,
I try to debug your problem, but i can't find usb hid demonstrator GUI on ST.com to download anymore, so I didn't try this code in practice, on the STM3210C eval board.
I have also modified custom hid example from st, and try to used EP3 not EP1 like in example. I think you have to change:
in usb_desc.c file: bEndpointAddress from 0x81(EP1_IN) to 0x83(EP3_IN)
and from
0x81(EP1_OUT) to 0x83(EP3_OUT)in usb_conf.h file: uncomment line #define EP1_OUT_Callback NOP_Process
and comment line // #define EP3_OUT_Callback NOP_Process
in usb_endp.c file: use callback void EP3_OUT_Callback(void) and read like
USB_SIL_Read(0x03, Receive_Buffer); //read from EP3_OUT endpoint
On 2 projects I have worked with hid device. In the first project I had composite device (ISO + HID) and I have used endpoints EP2_IN and EP2_OUT for HID, and on the second(only HID) I've used EP1_IN and EP1_OUT. So I have never used EP3 and I can't tell you does it works with HID.
Regards,
Dragan
2011-05-17 05:32 AM
Hi,
I've changed the endpoint HID from 3 to 4. Now it all works. I have MSD on endpoint 1 and 2 and HID on 4. I don't understand why it didn't work on endpoint 3. Do you have any clue? Thanks. Giuseppe2011-05-17 05:32 AM
Hi,
Sorry for the delay I was on holiday :)
Great....
I'm not sure, maybe it is a bug in the st library. Also in usb_prop.c file we must change endpoint configuration in void CustomHID_Reset(void), but still I can not try this, now because I don't have USB micro cable for my STM3210C eval board :)
If I have time i will try this later.
Regards,
Dragan